This commit is contained in:
Drew Ansbacher
2021-06-24 10:28:38 -06:00
committed by Aiden McClelland
parent 635072bf29
commit f6a351b903
4 changed files with 30 additions and 13 deletions

View File

@@ -12,6 +12,7 @@ import { pauseFor } from 'src/app/util/misc.util'
import { AvailableShow } from 'src/app/services/api/api-types'
import { PatchDbModel } from 'src/app/models/patch-db/patch-db-model'
import { PackageState } from 'src/app/models/patch-db/data-model'
import { ReleaseNoteModel } from '../app-release-notes-list/release-notes'
@Component({
selector: 'app-available-show',
@@ -41,6 +42,7 @@ export class AppAvailableShowPage {
private readonly popoverController: PopoverController,
private readonly emver: Emver,
public readonly patch: PatchDbModel,
public releaseNotesModel: ReleaseNoteModel,
) { }
async ngOnInit () {
@@ -53,6 +55,7 @@ export class AppAvailableShowPage {
this.loading = true
try {
this.pkg = await this.apiService.getAvailableShow({ id: this.pkgId, version })
this.releaseNotesModel.releaseNotes = this.pkg['release-notes']
} catch (e) {
console.error(e)
this.error = e.message

View File

@@ -8,10 +8,10 @@
</ion-header>
<ion-content>
<ion-spinner *ngIf="!pkg; else loaded" class="center" name="lines" color="warning"></ion-spinner>
<ion-spinner *ngIf="!releaseNotes; else loaded" class="center" name="lines" color="warning"></ion-spinner>
<ng-template #loaded>
<div *ngFor="let note of pkg['release-notes'] | keyvalue : asIsOrder">
<div *ngFor="let note of releaseNotes | keyvalue : asIsOrder">
<ion-button (click)="setSelected(note.key)" expand="full" color="light" style="height: 50px;" >
<p style="position: absolute; left: 10px;">{{note.key | displayEmver}}</p>
</ion-button>

View File

@@ -1,7 +1,7 @@
import { Component } from '@angular/core'
import { ActivatedRoute } from '@angular/router'
import { AvailableShow } from 'src/app/services/api/api-types'
import { ApiService } from 'src/app/services/api/api.service'
import { ReleaseNoteModel } from './release-notes'
@Component({
selector: 'app-release-notes-list',
@@ -9,32 +9,34 @@ import { ApiService } from 'src/app/services/api/api.service'
styleUrls: ['./app-release-notes-list.page.scss'],
})
export class AppReleaseNotesListPage {
loading = true
error = ''
pkgId: string
pkg: AvailableShow
releaseNotes: { [version: string]: string}
selected: string
constructor (
private readonly route: ActivatedRoute,
private readonly apiService: ApiService,
) { }
private releaseNoteModel: ReleaseNoteModel,
) {
console.log('model model', releaseNoteModel.releaseNotes)
this.releaseNotes = releaseNoteModel.releaseNotes
}
ngOnInit () {
this.pkgId = this.route.snapshot.paramMap.get('pkgId')
this.getPkg()
if (!this.releaseNotes) {
this.getReleaseNotes()
}
}
async getPkg (version?: string): Promise<void> {
this.loading = true
async getReleaseNotes (version?: string): Promise<void> {
try {
this.pkg = await this.apiService.getAvailableShow({ id: this.pkgId, version })
const pkg = await this.apiService.getAvailableShow({ id: this.pkgId, version })
this.releaseNotes = pkg['release-notes']
} catch (e) {
console.error(e)
this.error = e.message
} finally {
this.loading = false
}
}

View File

@@ -0,0 +1,12 @@
import { Injectable } from '@angular/core'
@Injectable({
providedIn: 'root',
})
export class ReleaseNoteModel {
releaseNotes: { [version: string]: string}
constructor () { }
}