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

Unified Diff: chrome/browser/resources/bug_report.js

Issue 9006003: Refactor and fix feedback (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 2011 -> 2012 Created 8 years, 12 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
« no previous file with comments | « chrome/browser/resources/bug_report.html ('k') | chrome/browser/resources/bug_report_invalid.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/bug_report.js
diff --git a/chrome/browser/resources/bug_report.js b/chrome/browser/resources/bug_report.js
deleted file mode 100644
index 6266a5f0a02bc5d6f37997ce836f0a10da71fdf9..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/bug_report.js
+++ /dev/null
@@ -1,329 +0,0 @@
-// Copyright (c) 2011 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.
-
-// Constants.
-var FEEDBACK_LANDING_PAGE =
- 'http://www.google.com/support/chrome/go/feedback_confirmation'
-
-var selectedThumbnailDivId = '';
-var selectedThumbnailId = '';
-var selectedImageUrl;
-
-var savedThumbnailIds = [];
-savedThumbnailIds['current-screenshots'] = '';
-savedThumbnailIds['saved-screenshots'] = '';
-
-var localStrings = new LocalStrings();
-
-/**
- * Selects an image thumbnail in the specified div.
- */
-function selectImage(divId, thumbnailId) {
- var thumbnailDivs = $(divId).children;
- selectedThumbnailDivId = divId;
- if (thumbnailDivs.length == 0) {
- $(divId).style.display = 'none';
- return;
- }
- for (var i = 0; i < thumbnailDivs.length; i++) {
- // If the the current div matches the thumbnail id provided,
- // or there is no thumbnail id given, and we're at the first thumbnail.
- if ((thumbnailDivs[i].id == thumbnailId) || (!thumbnailId && !i)) {
- thumbnailDivs[i].className = 'image-thumbnail-container-selected';
- selectedThumbnailId = thumbnailId;
- savedThumbnailIds[divId] = thumbnailId;
- } else {
- thumbnailDivs[i].className = 'image-thumbnail-container';
- }
- }
-}
-
-/**
- * Adds an image thumbnail to the specified div.
- */
-function addScreenshot(divId, screenshot) {
- var thumbnailDiv = document.createElement('div');
- thumbnailDiv.className = 'image-thumbnail-container';
-
- thumbnailDiv.id = divId + '-thumbnailDiv-' + $(divId).children.length;
- thumbnailDiv.onclick = function() {
- selectImage(divId, thumbnailDiv.id);
- };
-
- var innerDiv = document.createElement('div');
- if (divId == 'current-screenshots')
- innerDiv.className = 'image-thumbnail-current';
- else
- innerDiv.className = 'image-thumbnail';
-
- var thumbnail = document.createElement('img');
- thumbnail.id = thumbnailDiv.id + '-image';
- // We add the ?+timestamp to make sure the image URLs are unique
- // and Chrome does not load the image from cache.
- thumbnail.src = screenshot + '?' + Date.now();
- innerDiv.appendChild(thumbnail);
-
- thumbnailDiv.appendChild(innerDiv);
- $(divId).appendChild(thumbnailDiv);
-
- if (!selectedThumbnailId)
- selectImage(divId, thumbnailDiv.id);
-}
-
-/**
- * Send's the report; after the report is sent, we need to be redirected to
- * the landing page, but we shouldn't be able to navigate back, hence
- * we open the landing page in a new tab and sendReport closes this tab.
- */
-function sendReport() {
- if (!$('issue-with-combo').selectedIndex) {
- alert(localStrings.getString('no-issue-selected'));
- return false;
- } else if ($('description-text').value.length == 0) {
- alert(localStrings.getString('no-description'));
- return false;
- }
-
- var imagePath = '';
- if ($('screenshot-checkbox').checked && selectedThumbnailId)
- imagePath = $(selectedThumbnailId + '-image').src;
- var pageUrl = $('page-url-text').value;
- if (!$('page-url-checkbox').checked)
- pageUrl = '';
-
- // Note, categories are based from 1 in our protocol buffers, so no
- // adjustment is needed on selectedIndex.
- var reportArray = [String($('issue-with-combo').selectedIndex),
- pageUrl,
- $('description-text').value,
- imagePath];
-
- // Add chromeos data if it exists.
- if ($('user-email-text') && $('sys-info-checkbox')) {
- var userEmail= $('user-email-text').textContent;
- if (!$('user-email-checkbox').checked)
- userEmail = '';
- reportArray = reportArray.concat([userEmail,
- String($('sys-info-checkbox').checked)]);
- }
-
- // open the landing page in a new tab, sendReport will close this one.
- window.open(FEEDBACK_LANDING_PAGE, '_blank');
- chrome.send('sendReport', reportArray);
- return true;
-}
-
-function cancel() {
- chrome.send('cancel', []);
- return true;
-}
-
-/**
- * Select the current screenshots div, restoring the image that was
- * selected when we had this div open previously.
- */
-function currentSelected() {
- // TODO(rkc): Change this to use a class instead.
- $('current-screenshots').style.display = 'block';
- if ($('saved-screenshots'))
- $('saved-screenshots').style.display = 'none';
-
- if (selectedThumbnailDivId != 'current-screenshots')
- selectImage('current-screenshots',
- savedThumbnailIds['current-screenshots']);
-
- return true;
-}
-
-/**
- * Select the saved screenshots div, restoring the image that was
- * selected when we had this div open previously.
- */
-function savedSelected() {
- $('current-screenshots').style.display = 'none';
-
- if ($('saved-screenshots').childElementCount == 0) {
- // setupSavedScreenshots will take care of changing visibility
- chrome.send('refreshSavedScreenshots', []);
- } else {
- $('saved-screenshots').style.display = 'block';
- if (selectedThumbnailDivId != 'saved-screenshots')
- selectImage('saved-screenshots', savedThumbnailIds['saved-screenshots']);
- }
-
- return true;
-}
-
-
-/**
- * Change the type of screenshot we're showing to the user from
- * the current screenshot to saved screenshots
- */
-function changeToSaved() {
- $('screenshot-label-current').style.display = 'none';
- $('screenshot-label-saved').style.display = 'inline';
-
- // Change the link to say "go to original"
- $('screenshot-link-tosaved').style.display = 'none';
- $('screenshot-link-tocurrent').style.display = 'inline';
-
- savedSelected();
-}
-
-/**
- * Change the type of screenshot we're showing to the user from
- * the saved screenshots to the current screenshots
- */
-function changeToCurrent() {
- $('screenshot-label-current').style.display = 'inline';
- $('screenshot-label-saved').style.display = 'none';
-
- // Change the link to say "go to original"
- $('screenshot-link-tosaved').style.display = 'inline';
- $('screenshot-link-tocurrent').style.display = 'none';
-
- currentSelected();
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// Document Functions:
-/**
- * Window onload handler, sets up the page.
- */
-function load() {
- if ($('sysinfo-url')) {
- $('sysinfo-url').onclick = function(event) {
- chrome.send('openSystemTab');
- };
- }
-
-<if expr="pp_ifdef('chromeos')">
- $('screenshot-link-tosaved').onclick = changeToSaved;
- $('screenshot-link-tocurrent').onclick = changeToCurrent;
-</if>
- $('send-report-button').onclick = sendReport;
- $('cancel-button').onclick = cancel;
-
- var menuOffPattern = /(^\?|&)menu=off($|&)/;
- var menuDisabled = menuOffPattern.test(window.location.search);
- document.documentElement.setAttribute('hide-menu', menuDisabled);
-
- // Set default values for the possible parameters, and then parse the actual
- // values from the URL hash.
- var parameters = {
- 'description': '',
- 'issueType': 0,
- };
- var queryPos = window.location.hash.indexOf('?');
- if (queryPos !== -1) {
- // Get an array of parameters in 'name=value' form.
- var query = window.location.hash.substring(queryPos + 1).split('&');
- for (var i = 0; i < query.length; i++) {
- // Decode and store each parameter value.
- parameter = query[i].split('=');
- parameters[parameter[0]] = decodeURIComponent(parameter[1]);
- }
-
- // For a clean URL, trim the parameters from the hash.
- window.location.hash = window.location.hash.substring(0, queryPos);
- }
-
- // Set the initial description text.
- $('description-text').textContent = parameters['description'];
-
- // Get a list of issues that we allow the user to select from.
- // Note, the order and the issues types themselves are different
- // between Chromium and Chromium OS, so this code needs to be
- // maintained individually between in these two sections.
- var issueTypeText = [];
- issueTypeText[0] = localStrings.getString('issue-choose');
-<if expr="not pp_ifdef('chromeos')">
- issueTypeText[1] = localStrings.getString('issue-page-formatting');
- issueTypeText[2] = localStrings.getString('issue-page-load');
- issueTypeText[3] = localStrings.getString('issue-plugins');
- issueTypeText[4] = localStrings.getString('issue-tabs');
- issueTypeText[5] = localStrings.getString('issue-sync');
- issueTypeText[6] = localStrings.getString('issue-crashes');
- issueTypeText[7] = localStrings.getString('issue-extensions');
- issueTypeText[8] = localStrings.getString('issue-phishing');
- issueTypeText[9] = localStrings.getString('issue-other');
- var numDefaultIssues = issueTypeText.length;
- issueTypeText[10] = localStrings.getString('issue-autofill');
-</if>
-<if expr="pp_ifdef('chromeos')">
- issueTypeText[1] = localStrings.getString('issue-connectivity');
- issueTypeText[2] = localStrings.getString('issue-sync');
- issueTypeText[3] = localStrings.getString('issue-crashes');
- issueTypeText[4] = localStrings.getString('issue-page-formatting');
- issueTypeText[5] = localStrings.getString('issue-extensions');
- issueTypeText[6] = localStrings.getString('issue-standby');
- issueTypeText[7] = localStrings.getString('issue-phishing');
- issueTypeText[8] = localStrings.getString('issue-other');
- var numDefaultIssues = issueTypeText.length;
- issueTypeText[9] = localStrings.getString('issue-autofill');
-</if>
- // Add all the issues to the selection box.
- for (var i = 0; i < issueTypeText.length; i++) {
- var option = document.createElement('option');
- option.className = 'bug-report-text';
- option.textContent = issueTypeText[i];
- if (('' + i) === parameters['issueType'])
- option.selected = true;
-
- if (i < numDefaultIssues || option.selected)
- $('issue-with-combo').add(option);
- }
-
- chrome.send('getDialogDefaults', []);
- chrome.send('refreshCurrentScreenshot', []);
-};
-
-function setupCurrentScreenshot(screenshot) {
- addScreenshot('current-screenshots', screenshot);
-}
-
-function setupSavedScreenshots(screenshots) {
- if (screenshots.length == 0) {
- $('saved-screenshots').textContent =
- localStrings.getString('no-saved-screenshots');
-
- // Make sure we make the display the message.
- $('saved-screenshots').style.display = 'block';
-
- // In case the user tries to send now; fail safe, do not send a screenshot
- // at all versus sending the current screenshot.
- selectedThumbnailDivId = '';
- selectedThumbnailId = '';
- } else {
- for (i = 0; i < screenshots.length; ++i)
- addScreenshot('saved-screenshots', screenshots[i]);
-
- // Now that we have our screenshots, try selecting the saved screenshots
- // again.
- savedSelected();
- }
-}
-
-function setupDialogDefaults(defaults) {
- if (defaults.length > 0) {
- $('page-url-text').value = defaults[0];
- if (defaults[0] == '')
- $('page-url-checkbox').checked = false;
-
- if (defaults.length > 2) {
- // We're in Chromium OS.
- $('user-email-text').textContent = defaults[2];
- if (defaults[2] == '') {
- // if we didn't get an e-mail address from cros,
- // disable the user email display totally.
- $('user-email-table').style.display = 'none';
-
- // this also means we are in privacy mode, so no saved screenshots.
- $('screenshot-link-tosaved').style.display = 'none';
- }
- }
- }
-}
-
-window.addEventListener('DOMContentLoaded', load);
« no previous file with comments | « chrome/browser/resources/bug_report.html ('k') | chrome/browser/resources/bug_report_invalid.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698