This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 49d8fa74 authored by Eduard Frankford's avatar Eduard Frankford
Browse files

frontend to backend connection established

parent c9bb9a98
2 merge requests!62created achievementService and separated some functionality out of...,!45Achievements
...@@ -11,6 +11,7 @@ import { PasswordResetInitComponent } from './password-reset/init/password-reset ...@@ -11,6 +11,7 @@ import { PasswordResetInitComponent } from './password-reset/init/password-reset
import { PasswordResetFinishComponent } from './password-reset/finish/password-reset-finish.component'; import { PasswordResetFinishComponent } from './password-reset/finish/password-reset-finish.component';
import { SettingsComponent } from './settings/settings.component'; import { SettingsComponent } from './settings/settings.component';
import { accountState } from './account.route'; import { accountState } from './account.route';
import { AchievementsComponent } from './achievements.component';
@NgModule({ @NgModule({
imports: [GitSearchV2SharedModule, RouterModule.forChild(accountState)], imports: [GitSearchV2SharedModule, RouterModule.forChild(accountState)],
...@@ -22,6 +23,7 @@ import { accountState } from './account.route'; ...@@ -22,6 +23,7 @@ import { accountState } from './account.route';
PasswordResetInitComponent, PasswordResetInitComponent,
PasswordResetFinishComponent, PasswordResetFinishComponent,
SettingsComponent, SettingsComponent,
AchievementsComponent,
], ],
}) })
export class AccountModule {} export class AccountModule {}
<h2>Achievements</h2>
<ul class="list-group">
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 500 views
<span class="badge badge-primary badge-pill">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 100 views
<span class="badge badge-primary badge-pill">2</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 10 views
<span class="badge badge-primary badge-pill">1</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 500 downloads
<span class="badge badge-primary badge-pill">14</span>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 100 downloads
<fa-icon icon="check" class="greeniconcolor"></fa-icon>
</li>
<li class="list-group-item d-flex justify-content-between align-items-center">
More than 10 downloads
<fa-icon icon="times-circle" class="rediconcolor"></fa-icon>
</li>
</ul>
<button (click) = "getTotalNumberOfViews()" class="btn btn-primary"> Get number of views </button>
.greeniconcolor {
color: lightgreen;
}
.rediconcolor {
color: darkred;
}
import { Component, OnInit } from '@angular/core';
import { Injectable } from '@angular/core';
import { SearchService } from 'app/search/service/search-service';
import { AccountService } from 'app/core/auth/account.service';
import { Account } from 'app/core/user/account.model';
@Component({
selector: 'jhi-achievements',
templateUrl: './achievements.component.html',
styleUrls: ['./achievements.component.scss'],
})
@Injectable({ providedIn: 'root' })
export class AchievementsComponent implements OnInit {
account!: Account;
constructor(private accountService: AccountService, protected searchService: SearchService) {}
public getTotalNumberOfViews(): void {
// eslint-disable-next-line no-console
console.log('I have been called');
this.searchService.getStatisticsForUser(this.account.login).subscribe(
(data: number) => {
// eslint-disable-next-line no-console
console.log('Data: ' + data + ' for account ' + this.account.login);
},
() => alert('Could not load statistics for User')
);
}
ngOnInit(): void {
this.accountService.identity().subscribe(account => {
if (account) {
this.account = account;
}
});
}
}
<div> <div>
<div class="row justify-content-center"> <div class="row justify-content-center">
<div class="col-md-8"> <div class="col-md-8">
<h2 jhiTranslate="settings.title" [translateValues]="{ username: account.login }" *ngIf="account">User settings for [<b>{{ account.login }}</b>]</h2> <h2 jhiTranslate="settings.title" [translateValues]="{ username: account.login }" *ngIf="account">User
settings for [<b>{{ account.login }}</b>]</h2>
<div class="alert alert-success" *ngIf="success" jhiTranslate="settings.messages.success"> <div class="alert alert-success" *ngIf="success" jhiTranslate="settings.messages.success">
<strong>Settings saved!</strong> <strong>Settings saved!</strong>
...@@ -11,52 +12,51 @@ ...@@ -11,52 +12,51 @@
<form name="form" role="form" (ngSubmit)="save()" [formGroup]="settingsForm" *ngIf="account" novalidate> <form name="form" role="form" (ngSubmit)="save()" [formGroup]="settingsForm" *ngIf="account" novalidate>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" for="firstName" jhiTranslate="settings.form.firstname">First Name</label> <label class="form-control-label" for="firstName" jhiTranslate="settings.form.firstname">First
<input type="text" class="form-control" id="firstName" name="firstName" placeholder="{{ 'settings.form.firstname.placeholder' | translate }}" Name</label>
formControlName="firstName"> <input type="text" class="form-control" id="firstName" name="firstName"
placeholder="{{ 'settings.form.firstname.placeholder' | translate }}"
<div *ngIf="settingsForm.get('firstName')!.invalid && (settingsForm.get('firstName')!.dirty || settingsForm.get('firstName')!.touched)"> formControlName="firstName">
<small class="form-text text-danger"
*ngIf="settingsForm.get('firstName')?.errors?.required" <div
jhiTranslate="settings.messages.validate.firstname.required"> *ngIf="settingsForm.get('firstName')!.invalid && (settingsForm.get('firstName')!.dirty || settingsForm.get('firstName')!.touched)">
<small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.required"
jhiTranslate="settings.messages.validate.firstname.required">
Your first name is required. Your first name is required.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.minlength"
*ngIf="settingsForm.get('firstName')?.errors?.minlength" jhiTranslate="settings.messages.validate.firstname.minlength">
jhiTranslate="settings.messages.validate.firstname.minlength">
Your first name is required to be at least 1 character. Your first name is required to be at least 1 character.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('firstName')?.errors?.maxlength"
*ngIf="settingsForm.get('firstName')?.errors?.maxlength" jhiTranslate="settings.messages.validate.firstname.maxlength">
jhiTranslate="settings.messages.validate.firstname.maxlength">
Your first name cannot be longer than 50 characters. Your first name cannot be longer than 50 characters.
</small> </small>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="form-control-label" for="lastName" jhiTranslate="settings.form.lastname">Last Name</label> <label class="form-control-label" for="lastName" jhiTranslate="settings.form.lastname">Last
<input type="text" class="form-control" id="lastName" name="lastName" placeholder="{{ 'settings.form.lastname.placeholder' | translate }}" Name</label>
formControlName="lastName"> <input type="text" class="form-control" id="lastName" name="lastName"
placeholder="{{ 'settings.form.lastname.placeholder' | translate }}" formControlName="lastName">
<div *ngIf="settingsForm.get('lastName')!.invalid && (settingsForm.get('lastName')!.dirty || settingsForm.get('lastName')!.touched)">
<small class="form-text text-danger" <div
*ngIf="settingsForm.get('lastName')?.errors?.required" *ngIf="settingsForm.get('lastName')!.invalid && (settingsForm.get('lastName')!.dirty || settingsForm.get('lastName')!.touched)">
jhiTranslate="settings.messages.validate.lastname.required"> <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.required"
jhiTranslate="settings.messages.validate.lastname.required">
Your last name is required. Your last name is required.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.minlength"
*ngIf="settingsForm.get('lastName')?.errors?.minlength" jhiTranslate="settings.messages.validate.lastname.minlength">
jhiTranslate="settings.messages.validate.lastname.minlength">
Your last name is required to be at least 1 character. Your last name is required to be at least 1 character.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('lastName')?.errors?.maxlength"
*ngIf="settingsForm.get('lastName')?.errors?.maxlength" jhiTranslate="settings.messages.validate.lastname.maxlength">
jhiTranslate="settings.messages.validate.lastname.maxlength">
Your last name cannot be longer than 50 characters. Your last name cannot be longer than 50 characters.
</small> </small>
</div> </div>
...@@ -64,31 +64,28 @@ ...@@ -64,31 +64,28 @@
<div class="form-group"> <div class="form-group">
<label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label> <label class="form-control-label" for="email" jhiTranslate="global.form.email.label">Email</label>
<input type="email" class="form-control" id="email" name="email" placeholder="{{ 'global.form.email.placeholder' | translate }}" <input type="email" class="form-control" id="email" name="email"
formControlName="email"> placeholder="{{ 'global.form.email.placeholder' | translate }}" formControlName="email">
<div *ngIf="settingsForm.get('email')!.invalid && (settingsForm.get('email')!.dirty || settingsForm.get('email')!.touched)"> <div
<small class="form-text text-danger" *ngIf="settingsForm.get('email')!.invalid && (settingsForm.get('email')!.dirty || settingsForm.get('email')!.touched)">
*ngIf="settingsForm.get('email')?.errors?.required" <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.required"
jhiTranslate="global.messages.validate.email.required"> jhiTranslate="global.messages.validate.email.required">
Your email is required. Your email is required.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.email"
*ngIf="settingsForm.get('email')?.errors?.email" jhiTranslate="global.messages.validate.email.invalid">
jhiTranslate="global.messages.validate.email.invalid">
Your email is invalid. Your email is invalid.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.minlength"
*ngIf="settingsForm.get('email')?.errors?.minlength" jhiTranslate="global.messages.validate.email.minlength">
jhiTranslate="global.messages.validate.email.minlength">
Your email is required to be at least 5 characters. Your email is required to be at least 5 characters.
</small> </small>
<small class="form-text text-danger" <small class="form-text text-danger" *ngIf="settingsForm.get('email')?.errors?.maxlength"
*ngIf="settingsForm.get('email')?.errors?.maxlength" jhiTranslate="global.messages.validate.email.maxlength">
jhiTranslate="global.messages.validate.email.maxlength">
Your email cannot be longer than 100 characters. Your email cannot be longer than 100 characters.
</small> </small>
</div> </div>
...@@ -97,12 +94,21 @@ ...@@ -97,12 +94,21 @@
<div class="form-group" *ngIf="languages && languages.length > 0"> <div class="form-group" *ngIf="languages && languages.length > 0">
<label for="langKey" jhiTranslate="settings.form.language">Language</label> <label for="langKey" jhiTranslate="settings.form.language">Language</label>
<select class="form-control" id="langKey" name="langKey" formControlName="langKey"> <select class="form-control" id="langKey" name="langKey" formControlName="langKey">
<option *ngFor="let fileFormat of languages" [value]="fileFormat">{{ fileFormat | findLanguageFromKey }}</option> <option *ngFor="let fileFormat of languages" [value]="fileFormat">{{ fileFormat |
findLanguageFromKey }}</option>
</select> </select>
</div> </div>
<button type="submit" [disabled]="settingsForm.invalid" class="btn btn-primary" jhiTranslate="settings.form.button">Save</button> <button type="submit" [disabled]="settingsForm.invalid" class="btn btn-primary"
jhiTranslate="settings.form.button">Save</button>
</form> </form>
</div> </div>
</div> </div>
<div style="padding-top: 50px;">
<div class="row justify-content-center">
<div class="col-md-8">
<jhi-achievements></jhi-achievements>
</div>
</div>
</div> </div>
</div>
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment