Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2229)

Unified Diff: dashboard/dashboard/pinpoint/elements/new-job-dialog.html

Issue 2960873002: WIP - Pinpoint - New Page.
Patch Set: . Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dashboard/dashboard/pinpoint/elements/new-job-dialog.html
diff --git a/dashboard/dashboard/pinpoint/elements/new-job-dialog.html b/dashboard/dashboard/pinpoint/elements/new-job-dialog.html
new file mode 100644
index 0000000000000000000000000000000000000000..b28dc174efc4753ea569ea7a889787b9bd6fb7be
--- /dev/null
+++ b/dashboard/dashboard/pinpoint/elements/new-job-dialog.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<!--
+Copyright 2017 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<link type="text/css" rel="stylesheet" href="/dashboard/static/base.css">
+
+<link rel="import" href="/components/app-route/app-route.html">
+<link rel="import" href="/components/iron-form/iron-form.html">
+<link rel="import" href="/components/paper-button/paper-button.html">
+<link rel="import" href="/components/paper-checkbox/paper-checkbox.html">
+<link rel="import" href="/components/paper-dialog/paper-dialog.html">
+<link rel="import" href="/components/paper-input/paper-input.html">
+<link rel="import" href="/components/paper-radio-button/paper-radio-button.html">
+<link rel="import" href="/components/paper-radio-group/paper-radio-group.html">
+<link rel="import" href="/components/paper-spinner/paper-spinner.html">
+<link rel="import" href="/components/polymer/polymer.html">
+
+<link rel="import" href="/dashboard/static/simple_xhr.html">
+
+<dom-module id="new-job-dialog">
+ <template>
+ <style>
+ form > paper-button {
+ margin-top: 20px;
+ }
+ form > paper-button:not([disabled]) {
+ background: var(--paper-green-700);
+ color: white;
+ }
+ .error {
+ color: #dd4b39;
+ }
+ </style>
+
+ <paper-dialog id="container" autoCloseDisabled="true">
+ <form>
+ <paper-input id="bug-id" label="Bug ID" value="{{bugId::input}}" required auto-validate></paper-input>
+ <paper-input id="configuration" label="configuration" value="{{configuration::input}}" required auto-validate></paper-input>
+ <paper-input id="test_suite" label="test_suite" value="{{test_suite::input}}" required auto-validate></paper-input>
+ <paper-input id="test" label="test" value="{{test::input}}" required auto-validate></paper-input>
+ <paper-input id="metric" label="metric" value="{{metric::input}}" required auto-validate></paper-input>
+ <paper-input id="start_repository" label="start_repository" value="{{start_repository::input}}" required auto-validate></paper-input>
+ <paper-input id="start_git_hash" label="start_git_hash" value="{{start_git_hash::input}}" allowed-pattern="[A-Fa-f0-9]" required auto-validate prevent-invalid-input></paper-input>
+ <paper-input id="end_repository" label="end_repository" value="{{end_repository::input}}" required auto-validate></paper-input>
+ <paper-input id="end_git_hash" label="end_git_hash" value="{{end_git_hash::input}}" allowed-pattern="[A-Fa-f0-9]" required auto-validate prevent-invalid-input></paper-input>
+ <paper-radio-group id="bisect-mode" selected="performance">
+ <paper-radio-button id="performance" name="performance" on-change="onBisectModeChanged">Performance</paper-radio-button>
+ <paper-radio-button id="functional" name="functional" on-change="onBisectModeChanged">Functional</paper-radio-button>
+ </paper-radio-group>
+ <paper-checkbox id="auto_explore" checked>Automatically explore</paper-checkbox><br>
+ <div>
+ <paper-button raised disabled disabled$="{{create_disabled}}" on-click="onCreateJob">Create</paper-button>
+ <paper-button raised on-click="close">Close</paper-button>
+ </div>
+ <p class="error">{{error}}</p>
+ </form>
+
+ <template is="dom-if" if="{{loading}}">
+ <div id="loading">
+ <paper-spinner active></paper-spinner>
+ </div>
+ </template>
+ </paper-dialog>
+ </template>
+ <script>
+ 'use strict';
+ Polymer({
+ is: 'new-job-dialog',
+
+ properties: {
+ bugId: {
+ type: Number,
+ },
+ configuration: {
+ type: String,
+ value: 'Mac Pro 10.11 Perf',
+ },
+ test_suite: {
+ type: String,
+ value: 'speedometer',
+ },
+ test: {
+ type: String,
+ value: '',
+ },
+ metric: {
+ type: String,
+ value: '',
+ },
+ start_repository: {
+ type: String,
+ value: 'chromium',
+ },
+ start_git_hash: {
+ type: String,
+ value: '',
+ },
+ end_repository: {
+ type: String,
+ value: 'chromium',
+ },
+ end_git_hash: {
+ type: String,
+ value: '',
+ },
+ create_disabled: {
+ type: Boolean,
+ value: false,
+ notify: true
+ },
+ error: {
+ type: String,
+ value: '',
+ notify: true
+ },
+ ENDPOINT: {
+ type: String,
+ value: '/start_pinpoint_job',
+ notify: true
+ }
+ },
+
+ computeIsDisabled(e) {
+ return !!e;
+ },
+
+ onBisectModeChanged(e) {
+ if (e.target.name == this.$.performance.name) {
+ this.$.metric.hidden = false;
+ } else {
+ this.$.metric.hidden = true;
+ }
+ },
+
+ async onCreateJob(e) {
+ const params = {
+ configuration: this.configuration,
+ test_suite: this.test_suite,
+ test: this.test,
+ metric: this.metric,
+ auto_explore: this.auto_explore ? '1' : '0',
+ start_repository: this.start_repository,
+ start_git_hash: this.start_git_hash,
+ end_repository: this.end_repository,
+ end_git_hash: this.end_git_hash
+ }
+
+ try {
+ this.create_disabled = true;
+ const results = await simple_xhr.asPromise(this.ENDPOINT, params);
+ this.fire('pinpoint-new-response', {
+ 'text': 'Job Started: ' + results['jobId'],
+ });
+ this.close();
+ } catch(e) {
+ this.error = e;
+ }
+ this.create_disabled = false;
+ },
+
+ ready() {
+ },
+
+ /**
+ * Initializes and shows the bisect form.
+ */
+ show() {
+ this.create_disabled = false;
+ this.error = '';
+ this.open();
+ },
+
+ open() {
+ this.$.container.open();
+ },
+
+ close() {
+ this.$.container.close();
+ }
+
+ });
+ </script>
+</dom-module>
« no previous file with comments | « dashboard/dashboard/elements/bisect-button.html ('k') | dashboard/dashboard/pinpoint/elements/new-page.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698