summaryrefslogtreecommitdiff
path: root/gae/frontend/src/app/menu/dashboard/dashboard.component.ts
diff options
context:
space:
mode:
Diffstat (limited to 'gae/frontend/src/app/menu/dashboard/dashboard.component.ts')
-rw-r--r--gae/frontend/src/app/menu/dashboard/dashboard.component.ts74
1 files changed, 74 insertions, 0 deletions
diff --git a/gae/frontend/src/app/menu/dashboard/dashboard.component.ts b/gae/frontend/src/app/menu/dashboard/dashboard.component.ts
new file mode 100644
index 0000000..0157ea8
--- /dev/null
+++ b/gae/frontend/src/app/menu/dashboard/dashboard.component.ts
@@ -0,0 +1,74 @@
+/**
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * 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 { MatSnackBar } from '@angular/material';
+
+import { AppService } from '../../appservice';
+import { BuildService } from "../build/build.service";
+import { MenuBaseClass } from "../menu_base";
+import { ScheduleService } from "../schedule/schedule.service";
+
+/** Component that handles dashboard. */
+@Component({
+ selector: 'app-dashboard',
+ templateUrl: './dashboard.component.html',
+ providers: [ BuildService, ScheduleService ],
+ styleUrls: ['./dashboard.component.scss']
+})
+export class DashboardComponent extends MenuBaseClass implements OnInit {
+ lastBuildUpdateTime: any = '---';
+ lastScheduleUpdateTime: any = '---';
+
+ constructor(private buildService: BuildService,
+ private scheduleService: ScheduleService,
+ appService: AppService,
+ snackBar: MatSnackBar) {
+ super(appService, snackBar);
+ }
+
+ ngOnInit(): void {
+ this.getLatestBuild();
+ this.getLastestSchedule();
+ }
+
+ /** Fetches the most recently updated build and gets timestamp from it. */
+ getLatestBuild() {
+ this.lastBuildUpdateTime = '---';
+ this.buildService.getBuilds(1, 0, '', 'timestamp', 'desc')
+ .subscribe(
+ (response) => {
+ if (response.builds) {
+ this.lastBuildUpdateTime = response.builds[0].timestamp;
+ }
+ },
+ (error) => this.showSnackbar(`[${error.status}] ${error.name}`)
+ );
+ }
+
+ /** Fetches the most recently updated schedule and gets timestamp from it. */
+ getLastestSchedule() {
+ this.lastScheduleUpdateTime = '---';
+ this.scheduleService.getSchedules(1, 0, '', 'timestamp', 'desc')
+ .subscribe(
+ (response) => {
+ if (response.schedules) {
+ this.lastScheduleUpdateTime = response.schedules[0].timestamp;
+ }
+ },
+ (error) => this.showSnackbar(`[${error.status}] ${error.name}`)
+ );
+ }
+}