zuul/web/jobs/jobs.component.ts

55 lines
1.5 KiB
TypeScript

// Copyright 2017 Red Hat
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
import { Component, OnInit } from '@angular/core'
import { HttpClient } from '@angular/common/http'
import { ActivatedRoute } from '@angular/router'
import ZuulService from '../zuul/zuul.service'
import JobDetails from './details'
import Job from './job'
@Component({
template: require('./jobs.component.html')
})
export default class JobsComponent implements OnInit {
jobs: Job[]
constructor(
private http: HttpClient, private route: ActivatedRoute,
private zuul: ZuulService
) {}
async ngOnInit() {
await this.zuul.setTenant(this.route.snapshot.paramMap.get('tenant'))
this.jobsFetch()
}
jobsFetch(): void {
const remoteLocation = this.zuul.getSourceUrl('jobs')
if (remoteLocation) {
this.http.get<Job[]>(remoteLocation)
.subscribe(jobs => this.injestJobs(jobs))
}
}
injestJobs(jobs: Job[]): void {
for (const job of jobs) {
job.expanded = false
}
this.jobs = jobs
}
}