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

Side by Side Diff: Tools/GardeningServer/ui/ct-failure-card.html

Issue 502293003: Allow filing a bug from the "Link Bug" dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 4 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 unified diff | Download patch
OLDNEW
1 <!-- 1 <!--
2 Copyright 2014 The Chromium Authors. All rights reserved. 2 Copyright 2014 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be 3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file. 4 found in the LICENSE file.
5 --> 5 -->
6 6
7 <link rel="import" href="ct-builder-grid.html"> 7 <link rel="import" href="ct-builder-grid.html">
8 <link rel="import" href="ct-commit-list.html"> 8 <link rel="import" href="ct-commit-list.html">
9 <link rel="import" href="ct-test-list.html"> 9 <link rel="import" href="ct-test-list.html">
10 <link rel="import" href="../bower_components/paper-dialog/paper-dialog.html"> 10 <link rel="import" href="../bower_components/paper-dialog/paper-dialog.html">
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 #failure { 55 #failure {
56 flex: 1; 56 flex: 1;
57 } 57 }
58 58
59 #buttons { 59 #buttons {
60 display: flex; 60 display: flex;
61 flex-direction: column; 61 flex-direction: column;
62 } 62 }
63 63
64 #bugReminder {
65 font-size: large;
66 color: red;
67 }
68
64 .snoozed { 69 .snoozed {
65 opacity: 0.5; 70 opacity: 0.5;
66 } 71 }
67 </style> 72 </style>
68 <ct-builder-grid failures="{{ group.failures }}"></ct-builder-grid> 73 <ct-builder-grid failures="{{ group.failures }}" id="builderGrid"></ct-build er-grid>
69 <div id="failure" class="{{ { snoozed: group.isSnoozed } | tokenList }}"> 74 <div id="failure" class="{{ { snoozed: group.isSnoozed } | tokenList }}">
70 <ct-test-list tests="{{ group.failures }}" tree="{{ tree }}"></ct-test-lis t> 75 <ct-test-list tests="{{ group.failures }}" tree="{{ tree }}"></ct-test-lis t>
71 <ct-commit-list commitList="{{ _commitList }}"></ct-commit-list> 76 <ct-commit-list commitList="{{ _commitList }}"></ct-commit-list>
72 </div> 77 </div>
73 <div id="buttons"> 78 <div id="buttons">
74 <paper-button id="examine" on-tap="{{ examine }}" label="Examine"></paper- button> 79 <paper-button id="examine" on-tap="{{ examine }}" label="Examine"></paper- button>
75 <template if="{{ !group.isSnoozed }}"> 80 <template if="{{ !group.isSnoozed }}">
76 <paper-button id="snooze" on-tap="{{ snooze }}" label="Snooze"></paper-b utton> 81 <paper-button id="snooze" on-tap="{{ snooze }}" label="Snooze"></paper-b utton>
77 </template> 82 </template>
78 <template if="{{ group.isSnoozed }}"> 83 <template if="{{ group.isSnoozed }}">
79 <paper-button id="snooze" on-tap="{{ unsnooze }}" label="Unsnooze"></pap er-button> 84 <paper-button id="snooze" on-tap="{{ unsnooze }}" label="Unsnooze"></pap er-button>
80 </template> 85 </template>
81 <paper-button id="link-bug" on-tap="{{ linkBug }}" label="Link Bug"></pape r-button> 86 <paper-button id="link-bug" on-tap="{{ linkBug }}" label="Link Bug"></pape r-button>
82 <template if="{{ group.bug !== undefined }}"> 87 <template if="{{ group.bug !== undefined }}">
83 <div> 88 <div>
84 <a href="{{ group.bug }}"> 89 <a href="{{ group.bug }}">
85 {{ group.bugLabel }}</a> 90 {{ group.bugLabel }}</a>
86 </div> 91 </div>
87 </template> 92 </template>
88 </div> 93 </div>
89 94
90 <paper-dialog heading="Enter bug number" transition="paper-transition-center " id="bugDialog"> 95 <paper-dialog heading="Enter bug number" transition="paper-transition-center " id="bugDialog">
91 <paper-input label="Bug# or URL" floatingLabel autofocus id="bug"></paper- input> 96 <paper-input label="Bug# or URL" floatingLabel autofocus id="bug"></paper- input>
97 <div><a id="fileBugLink" target="_new" on-click="{{ fileBugClicked }}">Fil e bug</a></div>
ojan 2014/08/26 03:14:17 What's _new do? I've always done _blank.
cbiesinger 2014/09/11 06:24:34 Sigh, I misremembered the name. Fixed.
98 <div style="display: hidden" id="bugReminder">
ojan 2014/08/26 03:14:17 Instead of toggling display with script, just wrap
cbiesinger 2014/09/11 06:24:34 Done.
cbiesinger 2014/09/29 21:18:06 FYI I did this but had to move the template inside
99 Remember to enter the new bug number above!
100 </div>
92 <paper-button label="Remove bug link" on-tap="{{ removeBug }}" dismissive id="dialogRemoveBug"></paper-button> 101 <paper-button label="Remove bug link" on-tap="{{ removeBug }}" dismissive id="dialogRemoveBug"></paper-button>
93 <paper-button label="OK" on-tap="{{ saveBug }}" affirmative id="dialogOk"> </paper-button> 102 <paper-button label="OK" on-tap="{{ saveBug }}" affirmative id="dialogOk"> </paper-button>
94 </paper-dialog> 103 </paper-dialog>
95 </template> 104 </template>
96 <script> 105 <script>
97 Polymer({ 106 Polymer({
98 group: null, 107 group: null,
99 commitLog: null, 108 commitLog: null,
100 tree: '', 109 tree: '',
101 _commitList: null, 110 _commitList: null,
111 _fileBugUrl: 'https://code.google.com/p/chromium/issues/entry?' +
112 'status=Available&labels=Pri-2,gardening-blink&' +
113 'summary=Build%20failure&comment=Build%20is%20broken:%0a',
ojan 2014/08/26 03:14:17 Lets leave the summary out of this. google code ha
cbiesinger 2014/09/11 06:24:34 Done.
102 114
103 observe: { 115 observe: {
104 group: '_updateCommitList', 116 group: '_updateCommitList',
105 commitLog: '_updateCommitList' 117 commitLog: '_updateCommitList'
106 }, 118 },
107 119
108 examine: function() { 120 examine: function() {
109 this.fire('ct-examine-failures', this.group); 121 this.fire('ct-examine-failures', this.group);
110 }, 122 },
111 123
112 snooze: function() { 124 snooze: function() {
113 this.group.snoozeUntil(Date.now() + 60 * 60 * 1000); 125 this.group.snoozeUntil(Date.now() + 60 * 60 * 1000);
114 }, 126 },
115 127
116 unsnooze: function() { 128 unsnooze: function() {
117 this.group.unsnooze(); 129 this.group.unsnooze();
118 }, 130 },
119 131
120 _updateCommitList: function() { 132 _updateCommitList: function() {
121 this._commitList = this.group ? 133 this._commitList = this.group ?
122 this.group.commitList(this.commitLog) : undefined; 134 this.group.commitList(this.commitLog) : undefined;
123 }, 135 },
124 136
125 linkBug: function() { 137 linkBug: function() {
138 var message = '';
ojan 2014/08/26 03:14:17 Can you move the function that generates this url
cbiesinger 2014/09/11 06:24:34 I thought about that, but I'm really not sure that
ojan 2014/09/11 23:44:25 Maybe you don't need to move the url generation to
139 for (var i = 0; i < this.group.failures.length; ++i) {
ojan 2014/08/26 03:14:17 Here and below, use forEach?
cbiesinger 2014/09/11 06:24:34 Done.
140 var failure = this.group.failures[i];
141 message += failure.step;
142 if (failure.testName) {
143 message += ' ' + failure.testName + '\n';
144 message += failure.flakinessDashboardURL(this.tree);
145 }
146 message += '\n';
147 }
148 message += '\nRevision range:\n';
149 for (i = 0; i < this._commitList.repositories.length; ++i) {
150 var repository = this._commitList.repositories[i];
151 message += repository.name + ' ' + repository.range + '\n';
152 }
153 message += '\nFailing builders:\n';
154 for (i = 0; i < this.$.builderGrid.builders.length; ++i) {
155 var builder = this.$.builderGrid.builders[i];
156 message += builder.builder + ': ' + builder.buildUrl + '\n';
157 }
158
126 this.$.bug.value = this.group.bug; 159 this.$.bug.value = this.group.bug;
160 this.$.fileBugLink.href = this._fileBugUrl + encodeURIComponent(message) ;
161 this.$.bugReminder.style.display = 'none';
162 this.$.fileBugLink.style.display = '';
127 this.$.bugDialog.toggle(); 163 this.$.bugDialog.toggle();
128 }, 164 },
129 165
130 saveBug: function() { 166 saveBug: function() {
131 this.group.setBug(this.$.bug.value); 167 this.group.setBug(this.$.bug.value);
132 }, 168 },
133 169
134 removeBug: function() { 170 removeBug: function() {
135 this.group.clearBug(); 171 this.group.clearBug();
136 }, 172 },
173
174 fileBugClicked: function() {
175 this.$.bugReminder.style.display = '';
176 this.$.fileBugLink.style.display = 'none';
177 },
137 }); 178 });
138 </script> 179 </script>
139 </polymer-element> 180 </polymer-element>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698