Index: chrome/browser/resources/bug_report.js |
=================================================================== |
--- chrome/browser/resources/bug_report.js (revision 0) |
+++ chrome/browser/resources/bug_report.js (revision 0) |
@@ -0,0 +1,152 @@ |
+// Copyright (c) 2010 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; |
+ 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'); |
+ innerDiv.className = 'image-thumbnail'; |
+ |
+ var thumbnail = document.createElement('img'); |
+ thumbnail.id = thumbnailDiv.id + '-image'; |
+ thumbnail.src = screenshot; |
+ innerDiv.appendChild(thumbnail); |
+ |
+ var largeImage = document.createElement('img'); |
+ largeImage.src = screenshot; |
+ |
+ var popupDiv = document.createElement('div'); |
+ popupDiv.appendChild(largeImage); |
+ innerDiv.appendChild(popupDiv); |
+ |
+ 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; |
+ } |
+ |
+ var imagePath = ''; |
+ if (selectedThumbnailId) |
+ imagePath = $(selectedThumbnailId + '-image').src; |
+ |
+ // Note, categories are based from 1 in our protocol buffers, so no |
+ // adjustment is needed on selectedIndex. |
+ var reportArray = [String($('issue-with-combo').selectedIndex), |
+ $('page-url-text').value, |
+ $('description-text').value, |
+ imagePath]; |
+ |
+ // Add chromeos data if it exists. |
+ if ($('user-email-text') && $('sys-info-checkbox')) { |
+ reportArray = reportArray.concat([$('user-email-text').value, |
+ 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() { |
+ $('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'; |
+ $('saved-screenshots').style.display = 'block'; |
+ |
+ if (selectedThumbnailDivId != 'saved-screenshots') |
+ selectImage('saved-screenshots', savedThumbnailIds['saved-screenshots']); |
+ |
+ return true; |
+} |
+ |
+/** |
+ * Unselect all screenshots divs. |
+ */ |
+function noneSelected() { |
+ $('current-screenshots').style.display = 'none'; |
+ if ($('saved-screenshots')) |
+ $('saved-screenshots').style.display = 'none'; |
+ |
+ selectedThumbnailDivId = ''; |
+ selectedThumbnailId = ''; |
+ return true; |
+} |
Property changes on: chrome/browser/resources/bug_report.js |
___________________________________________________________________ |
Name: svn:eol-style |
+ LF |