Skip to content

Commit

Permalink
Merge pull request #36 from rubberduck-vba/p0
Browse files Browse the repository at this point in the history
Link inspections from quickfix details
  • Loading branch information
retailcoder authored Feb 4, 2025
2 parents 509a2cc + a3513b4 commit c3369ee
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,26 @@ <h5>Remarks</h5>
<small class="text-black-50">This action can be applied simultaneously for all inspection results.</small>
</div>
</div>

<div class="row">
<div *ngIf="quickFixInfo.inspections.length > 0">
<hr />
<h6>
<fa-icon [icon]="'wand-magic-sparkles'"></fa-icon>&nbsp;Inspections
</h6>
<p class="small">This action is offered as quickfix to the following inspections:</p>
<ul class="list-unstyled ms-2">
<li *ngFor="let inspection of this.quickFixInfo.inspections" class="my-1">
<a class="text-decoration-none" href="/inspections/{{inspection.name}}">
<div class="card-highlight rounded-4 p-2">
<h6><span [ngClass]="inspection.getSeverityIconClass"></span>&nbsp;{{inspection.name}}</h6>
<p class="text-black-50 small" [innerHTML]="inspection.summary"></p>
</div>
</a>
</li>
</ul>
</div>
</div>
</div>

<div *ngIf="quickFixInfo.examples && quickFixInfo.examples.length > 0" class="row my-3">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { FaIconLibrary } from "@fortawesome/angular-fontawesome";
import { fas } from "@fortawesome/free-solid-svg-icons";
import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
import { BehaviorSubject } from "rxjs";
import { XmlDocItemViewModel, QuickFixViewModel } from "../../../model/feature.model";
import { XmlDocItemViewModel, QuickFixViewModel, QuickFixViewModelClass } from "../../../model/feature.model";

@Component({
selector: 'quickfix-item-box',
Expand All @@ -12,7 +12,7 @@ import { XmlDocItemViewModel, QuickFixViewModel } from "../../../model/feature.m
export class QuickFixItemBoxComponent implements OnInit, OnChanges {

private readonly _info: BehaviorSubject<XmlDocItemViewModel> = new BehaviorSubject<XmlDocItemViewModel>(null!);
private readonly _quickFixInfo: BehaviorSubject<QuickFixViewModel> = new BehaviorSubject<QuickFixViewModel>(null!);
private readonly _quickFixInfo: BehaviorSubject<QuickFixViewModelClass> = new BehaviorSubject<QuickFixViewModelClass>(null!);

@ViewChild('quickFixDetails', { read: TemplateRef }) QuickFixDetails: TemplateRef<any> | undefined;

Expand All @@ -34,7 +34,7 @@ export class QuickFixItemBoxComponent implements OnInit, OnChanges {
if (value != null) {
this._info.next(value);

this._quickFixInfo.next(value as QuickFixViewModel);
this._quickFixInfo.next(value as QuickFixViewModelClass);
}
}

Expand All @@ -47,7 +47,7 @@ export class QuickFixItemBoxComponent implements OnInit, OnChanges {
this.modal.open(this.QuickFixDetails);
}

public get quickFixInfo(): QuickFixViewModel {
public get quickFixInfo(): QuickFixViewModelClass {
return this._quickFixInfo.value;
}
}
31 changes: 28 additions & 3 deletions rubberduckvba.client/src/app/model/feature.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,31 @@ export interface AnnotationsFeatureViewModel extends SubFeatureViewModel {

export type XmlDocOrFeatureViewModel = SubFeatureViewModel | InspectionsFeatureViewModel | QuickFixesFeatureViewModel | AnnotationsFeatureViewModel;

export interface QuickFixInspectionLinkViewModel {
name: string;
summary: string;
inspectionType: string;
defaultSeverity: string;
}

export class QuickFixInspectionLinkViewModelClass implements QuickFixInspectionLinkViewModel {
name: string;
summary: string;
inspectionType: string;
defaultSeverity: string;

constructor(model: QuickFixInspectionLinkViewModel) {
this.name = model.name;
this.summary = model.summary;
this.inspectionType = model.inspectionType;
this.defaultSeverity = model.defaultSeverity;
}

public get getSeverityIconClass(): string {
return `icon icon-severity-${this.defaultSeverity.toLowerCase()}`;
}
}

export interface QuickFixViewModel extends XmlDocViewModel {
summary: string;
remarks?: string;
Expand All @@ -139,7 +164,7 @@ export interface QuickFixViewModel extends XmlDocViewModel {
canFixProject: boolean;
canFixAll: boolean;

inspections: string[];
inspections: QuickFixInspectionLinkViewModel[];
examples: QuickFixExample[];

getGitHubViewLink(): string;
Expand Down Expand Up @@ -301,7 +326,7 @@ export class QuickFixViewModelClass extends SubFeatureViewModelClass implements
canFixModule: boolean;
canFixProject: boolean;
canFixAll: boolean;
inspections: string[];
inspections: QuickFixInspectionLinkViewModelClass[];
examples: QuickFixExample[];
tagAssetId: number;
tagName: string;
Expand All @@ -323,7 +348,7 @@ export class QuickFixViewModelClass extends SubFeatureViewModelClass implements
this.remarks = model.remarks;

this.examples = model.examples;
this.inspections = model.inspections;
this.inspections = model.inspections.map(e => new QuickFixInspectionLinkViewModelClass(e));

this.tagAssetId = model.tagAssetId;
this.tagName = model.tagName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,26 @@ <h5>Remarks</h5>
</div>
</div>

<div class="row">
<div *ngIf="info.inspections.length > 0">
<hr />
<h6>
<fa-icon [icon]="'lightbulb'"></fa-icon>&nbsp;Inspections
</h6>
<p class="small">This action is offered as quickfix to the following inspections:</p>
<ul class="list-unstyled ms-2">
<li *ngFor="let inspection of this.info.inspections" class="my-1">
<a class="text-decoration-none" href="/inspections/{{inspection.name}}">
<div class="card-highlight rounded-4 p-2">
<h6><span [ngClass]="inspection.getSeverityIconClass"></span>&nbsp;{{inspection.name}}</h6>
<p class="text-black-50 small" [innerHTML]="inspection.summary"></p>
</div>
</a>
</li>
</ul>
</div>
</div>

<div class="row">
<div *ngFor="let example of info.examples">
<example-box [quickFixExample]="example"></example-box>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { ActivatedRoute } from "@angular/router";
import { FaIconLibrary } from "@fortawesome/angular-fontawesome";
import { fas } from "@fortawesome/free-solid-svg-icons";
import { BehaviorSubject, switchMap } from "rxjs";
import { QuickFixViewModel } from "../../model/feature.model";
import { QuickFixViewModel, QuickFixViewModelClass } from "../../model/feature.model";
import { ApiClientService } from "../../services/api-client.service";

@Component({
Expand All @@ -12,12 +12,12 @@ import { ApiClientService } from "../../services/api-client.service";
})
export class QuickFixComponent implements OnInit {

private readonly _info: BehaviorSubject<QuickFixViewModel> = new BehaviorSubject<QuickFixViewModel>(null!);
private readonly _info: BehaviorSubject<QuickFixViewModelClass> = new BehaviorSubject<QuickFixViewModelClass>(null!);

public set info(value: QuickFixViewModel) {
public set info(value: QuickFixViewModelClass) {
this._info.next(value);
}
public get info(): QuickFixViewModel {
public get info(): QuickFixViewModelClass {
return this._info.getValue();
}

Expand All @@ -31,7 +31,7 @@ export class QuickFixComponent implements OnInit {
const name = params.get('name')!;
return this.api.getQuickFix(name);
})).subscribe(e => {
this.info = <QuickFixViewModel>e;
this.info = <QuickFixViewModelClass>e;
console.log(this.info);
});
}
Expand Down

0 comments on commit c3369ee

Please sign in to comment.