1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/** 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Requests the list of uploads from the backend. 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochfunction requestUploads() { 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch chrome.send('requestWebRtcLogsList'); 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch/** 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * Callback from backend with the list of uploads. Builds the UI. 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @param {array} uploads The list of uploads. 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch * @param {string} version The browser version. 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch */ 178bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)function updateWebRtcLogsList(uploads, version) { 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('log-banner').textContent = loadTimeData.getStringF('webrtcLogCountFormat', 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch uploads.length); 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 21eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var logSection = $('log-list'); 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Clear any previous list. 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logSection.textContent = ''; 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch for (var i = 0; i < uploads.length; i++) { 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var upload = uploads[i]; 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var logBlock = document.createElement('div'); 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch var title = document.createElement('h3'); 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch title.textContent = 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getStringF('webrtcLogHeaderFormat', 34effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['capture_time'].length != 0 ? 35effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['capture_time'] : 36effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['upload_time']); 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logBlock.appendChild(title); 38effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var localFileLine = document.createElement('p'); 40effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch if (upload['local_file'].length == 0) { 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch localFileLine.textContent = 42effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getString('noLocalLogFileMessage'); 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } else { 44effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch localFileLine.textContent = 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getString('webrtcLogLocalFileLabelFormat') + ' '; 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var localFileLink = document.createElement('a'); 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch localFileLink.href = 'file://' + upload['local_file']; 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch localFileLink.textContent = 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getStringF('webrtcLogLocalFileFormat', 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['local_file']); 51effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch localFileLine.appendChild(localFileLink); 52eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 53effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch logBlock.appendChild(localFileLine); 54effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 55effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var uploadLine = document.createElement('p'); 56effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch if (upload['id'].length == 0) { 57effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch uploadLine.textContent = 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getString('webrtcLogNotUploadedMessage'); 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } else { 60effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch uploadLine.textContent = 61effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getStringF('webrtcLogUploadTimeFormat', 62effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['upload_time']) + '. ' + 63effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch loadTimeData.getStringF('webrtcLogReportIdFormat', 64effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch upload['id']) + '. '; 65effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var link = document.createElement('a'); 66effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var commentLines = [ 67effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'Chrome Version: ' + version, 68effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch // TODO(tbreisacher): fill in the OS automatically? 69effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'Operating System: e.g., "Windows 7", "Mac OSX 10.6"', 70effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 71effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'URL (if applicable) where the problem occurred:', 72effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 73effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'Can you reproduce this problem?', 74effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 75effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'What steps will reproduce this problem? (or if it\'s not ' + 76effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'reproducible, what were you doing just before the problem)?', 77effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 78effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '1.', '2.', '3.', 79effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 80effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '*Please note that issues filed with no information filled in ' + 81effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'above will be marked as WontFix*', 82effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '', 83effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch '****DO NOT CHANGE BELOW THIS LINE****', 84effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 'report_id:' + upload.id 85effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ]; 86effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var params = { 87effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch template: 'Defect report from user', 88effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch comment: commentLines.join('\n'), 89effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch }; 90effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch var href = 'http://code.google.com/p/chromium/issues/entry'; 91effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch for (var param in params) { 92effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch href = appendParam(href, param, params[param]); 93effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 94effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch link.href = href; 95effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch link.target = '_blank'; 96effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch link.textContent = loadTimeData.getString('bugLinkText'); 97effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch uploadLine.appendChild(link); 98effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch } 99effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch logBlock.appendChild(uploadLine); 100effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 101eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch logSection.appendChild(logBlock); 102eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch } 103eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 104eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch $('no-logs').hidden = uploads.length != 0; 105eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 106eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 107eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochdocument.addEventListener('DOMContentLoaded', requestUploads); 108