Chromium Code Reviews| Index: appengine/swarming/ui/res/imp/taskpage/task-page.html |
| diff --git a/appengine/swarming/ui/res/imp/taskpage/task-page.html b/appengine/swarming/ui/res/imp/taskpage/task-page.html |
| index 795e408c6ce2ac0c99a1053aa48a1ecae080a691..6dfa1241211c8089624ecb30475fb1521995b53c 100644 |
| --- a/appengine/swarming/ui/res/imp/taskpage/task-page.html |
| +++ b/appengine/swarming/ui/res/imp/taskpage/task-page.html |
| @@ -41,6 +41,7 @@ |
| <link rel="import" href="/res/imp/common/url-param.html"> |
| <link rel="import" href="task-page-data.html"> |
| +<link rel="import" href="task-retry-prompt.html"> |
| <link rel="import" href="task-disambiguation.html"> |
| <dom-module id="task-page"> |
| @@ -603,6 +604,17 @@ |
| </div> |
| </paper-dialog> |
| + <paper-dialog id="retry_task" modal on-iron-overlay-closed="_retryClosed"> |
| + <task-retry-prompt id="retry_task_prompt" |
| + task_id="[[task_id]]" |
| + task_dimensions="{{_retry_dimensions}}"> |
| + </task-retry-prompt> |
| + <div class="buttons"> |
| + <paper-button dialog-dismiss>Cancel</paper-button> |
| + <paper-button dialog-confirm>OK</paper-button> |
| + </div> |
| + </paper-dialog> |
| + |
| <interval-timer period="[[_refresh_interval]]" on-trigger="_softRefresh"> |
| </interval-timer> |
| @@ -693,6 +705,9 @@ |
| _result: { |
| type: Object, |
| }, |
| + _retry_dimensions: { |
| + type: Array, |
| + }, |
| _server_details: { |
| type: Object, |
| }, |
| @@ -889,11 +904,7 @@ |
| _promptClosed: function(e) { |
| if (e.detail.confirmed) { |
| - if (this._dialog_prompt.startsWith("cancel")) { |
| - this._cancelTask(); |
| - } else { |
| - this._retryTask(); |
| - } |
| + this._cancelTask(); |
| } |
| }, |
| @@ -903,47 +914,18 @@ |
| }, |
| _promptRetry: function() { |
| - this.set("_dialog_prompt", "retry task "+this.task_id); |
| - this.$.prompt.open(); |
| + this.$.retry_task_prompt.setDimensions(this._request.properties.dimensions); |
| + this.$.retry_task.open(); |
| }, |
| - _rawOutput: function(stdout, result) { |
| - if (stdout) { |
| - return stdout; |
| - } |
| - if (result.state === "PENDING" || result.state === "RUNNING") { |
| - return "[No output yet]"; |
| - } |
| - return "[No output received]"; |
| - }, |
| - |
| - _refresh: function() { |
| - this.$.data.reload(); |
| - }, |
| - |
| - _requestUpdated: function(request) { |
| - if (this._noMilo(request)) { |
| - this.set("_show_raw", 1); |
| - } |
| - }, |
| - |
| - _softRefresh: function() { |
| - if (this._result && this._result.state !== "RUNNING" && |
| - this._result.state !== "PENDING") { |
| - return; |
| - } |
| - this.$.data.reload(); |
| - var miloFrame = this.$$("iframe") |
| - if (miloFrame) { |
| - miloFrame.src = this._getDisplayServerLink(this._server_details.display_server_url_template,this.task_id); |
| - } |
| - }, |
| - |
| - _retryTask: function() { |
| + _retryClosed: function(e) { |
| if (!this._request) { |
| sk.errorMessage("Task not yet loaded", 3000); |
| return; |
| } |
| + if (!e.detail.confirmed) { |
| + return; |
| + } |
| var newTask = { |
| expiration_secs: this._request.expiration_secs, |
| name: this._request.name +" (retry)", |
| @@ -954,6 +936,14 @@ |
| user: this._profile.email, |
| service_account: this._request.service_account, |
| } |
| + newTask.properties.dimensions = this._retry_dimensions.filter(function(d){ |
| + return d && d.key && d.value; |
| + }); |
| + if (!newTask.properties.dimensions || !newTask.properties.dimensions.length) { |
| + sk.errorMessage("Your retried task much specify dimensions", 5000); |
|
rmistry
2017/04/10 14:36:39
much -> must
kjlubick
2017/04/10 15:02:36
http://i3.kym-cdn.com/photos/images/facebook/000/5
|
| + return; |
| + } |
| + console.log("Retrying with dimensions", newTask.properties.dimensions); |
| newTask.properties.idempotent = false; |
| swarming.postWithToast("/api/swarming/v1/tasks/new", "Retrying task " + this.task_id, |
| this._auth_headers, newTask) |
| @@ -970,6 +960,38 @@ |
| ); |
| }, |
| + _rawOutput: function(stdout, result) { |
| + if (stdout) { |
| + return stdout; |
| + } |
| + if (result.state === "PENDING" || result.state === "RUNNING") { |
| + return "[No output yet]"; |
| + } |
| + return "[No output received]"; |
| + }, |
| + |
| + _refresh: function() { |
| + this.$.data.reload(); |
| + }, |
| + |
| + _requestUpdated: function(request) { |
| + if (this._noMilo(request)) { |
| + this.set("_show_raw", 1); |
| + } |
| + }, |
| + |
| + _softRefresh: function() { |
| + if (this._result && this._result.state !== "RUNNING" && |
| + this._result.state !== "PENDING") { |
| + return; |
| + } |
| + this.$.data.reload(); |
| + var miloFrame = this.$$("iframe") |
| + if (miloFrame) { |
| + miloFrame.src = this._getDisplayServerLink(this._server_details.display_server_url_template,this.task_id); |
|
rmistry
2017/04/10 14:36:39
Nit: Breakup the long line.
kjlubick
2017/04/10 15:02:36
Done.
|
| + } |
| + }, |
| + |
| _rowspan: function(dims) { |
| dims = dims || []; |
| return dims.length + 1; |