Commit c34f226a authored by Grand Francois's avatar Grand Francois
Browse files

#64 : ajout d'un composant LogEntryComponent pour gérer les entrées du journal

Showing with 85 additions and 24 deletions
+85 -24
......@@ -41,6 +41,7 @@ import { CalculatorListComponent } from './components/calculator-list/calculator
import { ApplicationSetupComponent } from './components/app-setup/app-setup.component';
import { BaseParamInputComponent } from './components/base-param-input/base-param-input.component';
import { SingleResultComponent } from './components/single-result/single-result.component';
import { LogEntryComponent } from './components/log-entry/log-entry.component';
const appRoutes: Routes = [
{ path: 'list', component: CalculatorListComponent },
......@@ -73,7 +74,7 @@ const appRoutes: Routes = [
ParamFieldLineComponent, NgParamMinComponent, NgParamMaxComponent, NgParamStepComponent,
ParamValuesComponent, ValueListComponent,
SelectFieldLineComponent, CheckFieldLineComponent,
LogComponent,
LogComponent, LogEntryComponent,
CalculatorListComponent,
ApplicationSetupComponent,
BaseParamInputComponent,
......
<div class="row entry">
<div class="col-1" style="text-align: center;">
<i *ngIf="levelInfo" class="fa fa-check" style="color:green"></i>
<i *ngIf="levelWarning" class="fa fa-exclamation" style="color:orange"></i>
<i *ngIf="levelError" class="fa fa-exclamation-triangle" style="color:red"></i>
</div>
<div class="col-11">
<!-- on utilise [innerHTML] pour que les codes HTML comme &nbsp; soient interprétés correctement -->
<span [innerHTML]="text"></span>
</div>
</div>
\ No newline at end of file
import { Component, Input, OnChanges } from "@angular/core";
import { Message, MessageSeverity } from 'jalhyd';
import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
import { ApplicationSetupService } from '../../services/app-setup/app-setup.service';
@Component({
selector: "log-entry",
templateUrl: "./log-entry.component.html",
styles: [`
.entry {
margin-left: 1em;
margin-right: 1em;
margin-top: 0.5em;
margin-bottom: 0.5em;
}
`]
})
export class LogEntryComponent implements OnChanges {
@Input("message")
private _message: Message;
/**
* message mis en forme
*/
private _text: string;
constructor(
private intlService: InternationalisationService,
private appSetupService: ApplicationSetupService
) { }
/**
* appelé quand les @Input changent
*/
ngOnChanges() {
this.updateText();
}
private updateText() {
const nDigits = this.appSetupService.displayDigits;
this._text = this.intlService.localizeMessage(this._message, nDigits);
}
private get text(): string {
return this._text;
}
private get levelInfo(): boolean {
return this._message.getSeverity() == MessageSeverity.INFO;
}
private get levelWarning(): boolean {
return this._message.getSeverity() == MessageSeverity.WARNING;
}
private get levelError(): boolean {
return this._message.getSeverity() == MessageSeverity.ERROR;
}
}
<div class="row" *ngIf="hasEntries">
<div class="col-12">
<div class="hyd_log">
<!-- titre -->
<div class="titre">{{uitextTitreJournal}}</div>
<ul *ngFor="let r of _logEntries">
<!-- on utilise [innerHTML] pour que les codes HTML comme &nbsp; soient interprétés correctement -->
<li [innerHTML]="r"></li>
</ul>
<!-- entrées du journal -->
<ng-template ngFor let-m [ngForOf]="messages">
<log-entry [message]=m></log-entry>
</ng-template>
</div>
</div>
</div>
\ No newline at end of file
import { Component } from "@angular/core";
import { Message, cLog } from 'jalhyd';
import { cLog, Message } from 'jalhyd';
import { NgParameter } from "../../formulaire/ngparam";
import { InternationalisationService } from "../../services/internationalisation/internationalisation.service";
import { ApplicationSetupService } from '../../services/app-setup/app-setup.service';
@Component({
selector: "log",
......@@ -37,14 +34,8 @@ export class LogComponent {
*/
private _log: cLog;
/**
* entrées du journal mises en forme
*/
private _logEntries: string[];
constructor(
private intlService: InternationalisationService,
private appSetupService: ApplicationSetupService
) { }
private get uitextTitreJournal() {
......@@ -52,20 +43,14 @@ export class LogComponent {
}
private get hasEntries(): boolean {
return this._logEntries != undefined && this._logEntries.length != 0;
return this._log != undefined && this._log.messages.length != 0;
}
private generateEntries() {
this._logEntries = [];
if (this._log != undefined) {
const nDigits = this.appSetupService.displayDigits;
for (let m of this._log.messages)
this._logEntries.push(this.intlService.localizeMessage(m, nDigits));
}
private get messages(): Message[] {
return this._log.messages;
}
public set log(log: cLog) {
this._log = log;
this.generateEntries();
}
}
Supports Markdown
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