146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)var TaskLog = (function() { 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)'use strict'; 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)var nextTaskLogSeq = 1; 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)var TaskLog = {}; 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)function observeTaskLog() { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) chrome.send('observeTaskLog'); 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)/** 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * Handles per-task log event. 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @param {Object} taskLog a dictionary containing 'duration', 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * 'task_description', 'result_description' and 'details'. 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)TaskLog.onTaskLogRecorded = function(taskLog) { 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) var details = document.createElement('td'); 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) details.classList.add('task-log-details'); 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) var label = document.createElement('label'); 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) details.appendChild(label); 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) var collapseCheck = document.createElement('input'); 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) collapseCheck.setAttribute('type', 'checkbox'); 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) collapseCheck.classList.add('task-log-collapse-check'); 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) label.appendChild(collapseCheck); 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) var ul = document.createElement('ul'); 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) for (var i = 0; i < taskLog.details.length; ++i) 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ul.appendChild(createElementFromText('li', taskLog.details[i])); 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) label.appendChild(ul); 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) var tr = document.createElement('tr'); 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tr.appendChild(createElementFromText( 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 'td', taskLog.duration, {'class': 'task-log-duration'})); 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tr.appendChild(createElementFromText( 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 'td', taskLog.task_description, {'class': 'task-log-description'})); 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tr.appendChild(createElementFromText( 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 'td', taskLog.result_description, {'class': 'task-log-result'})); 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) tr.appendChild(details); 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) $('task-log-entries').appendChild(tr); 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)/** 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * Get initial sync service values and set listeners to get updated values. 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)function main() { 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) observeTaskLog(); 5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)document.addEventListener('DOMContentLoaded', main); 5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)return TaskLog; 5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)})(); 59