• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE HTML>
2<html i18n-values="dir:textdirection;">
3<head>
4<meta charset="utf-8"/>
5<title i18n-content="page-title"></title>
6<!-- We want to keep our style in sync with the options page. -->
7<link rel="stylesheet" href="chrome://resources/css/button.css">
8<link rel="stylesheet" href="webui.css">
9<link rel="stylesheet" href="options/options_page.css">
10<link rel="stylesheet" href="bug_report.css">
11
12<script src="shared/js/local_strings.js"></script>
13<script src="shared/js/util.js"></script>
14<script src="bug_report.js"></script>
15<script>
16
17///////////////////////////////////////////////////////////////////////////////
18// Document Functions:
19/**
20 * Window onload handler, sets up the page.
21 */
22function load() {
23  if ($('sysinfo-url')) {
24    $('sysinfo-url').onclick = function(event) {
25      chrome.send('openSystemTab');
26    };
27  }
28
29  var menuOffPattern = /(^\?|&)menu=off($|&)/;
30  var menuDisabled = menuOffPattern.test(window.location.search);
31  document.documentElement.setAttribute('hide-menu', menuDisabled);
32
33
34  // textContent on description-text textarea seems to default
35  // to several spaces, this resets it to empty.
36  $('description-text').textContent = '';
37
38  // Get a list of issues that we allow the user to select from.
39  // Note, the order and the issues types themselves are different
40  // between Chromium and Chromium OS, so this code needs to be
41  // maintained individually between in these two sections.
42  var issueTypeText = [];
43  issueTypeText[0] = localStrings.getString('issue-choose');
44<if expr="not pp_ifdef('chromeos')">
45  issueTypeText[1] = localStrings.getString('issue-page-formatting');
46  issueTypeText[2] = localStrings.getString('issue-page-load');
47  issueTypeText[3] = localStrings.getString('issue-plugins');
48  issueTypeText[4] = localStrings.getString('issue-tabs');
49  issueTypeText[5] = localStrings.getString('issue-sync');
50  issueTypeText[6] = localStrings.getString('issue-crashes');
51  issueTypeText[7] = localStrings.getString('issue-extensions');
52  issueTypeText[8] = localStrings.getString('issue-phishing');
53  issueTypeText[9] = localStrings.getString('issue-other');
54</if>
55<if expr="pp_ifdef('chromeos')">
56  issueTypeText[1] = localStrings.getString('issue-connectivity');
57  issueTypeText[2] = localStrings.getString('issue-sync');
58  issueTypeText[3] = localStrings.getString('issue-crashes');
59  issueTypeText[4] = localStrings.getString('issue-page-formatting');
60  issueTypeText[5] = localStrings.getString('issue-extensions');
61  issueTypeText[6] = localStrings.getString('issue-standby');
62  issueTypeText[7] = localStrings.getString('issue-phishing');
63  issueTypeText[8] = localStrings.getString('issue-other');
64</if>
65  // Add all the issues to the selection box.
66  for (var i = 0; i < issueTypeText.length; i++) {
67    var option = document.createElement('option');
68    option.className = 'bug-report-text';
69    option.textContent = issueTypeText[i];
70    $('issue-with-combo').add(option);
71  }
72
73  chrome.send('getDialogDefaults', []);
74  chrome.send('refreshCurrentScreenshot', []);
75};
76
77function setupCurrentScreenshot(screenshot) {
78  addScreenshot('current-screenshots', screenshot);
79}
80
81function setupSavedScreenshots(screenshots) {
82  if (screenshots.length == 0) {
83    $('saved-screenshots').innerText =
84        localStrings.getString('no-saved-screenshots');
85
86    // Make sure we make the display the message
87    $('saved-screenshots').style.display = 'block';
88
89    // In case the user tries to send now; fail safe, do not send a screenshot
90    // at all versus sending the current screenshot.
91    selectedThumbnailDivId = '';
92    selectedThumbnailId = '';
93  } else {
94    for (i = 0; i < screenshots.length; ++i)
95      addScreenshot('saved-screenshots', screenshots[i]);
96
97    // Now that we have our screenshots, try selecting the saved screenshots
98    // again.
99    savedSelected();
100  }
101}
102
103
104function setupDialogDefaults(defaults) {
105  if (defaults.length > 0) {
106    $('page-url-text').value = defaults[0];
107    if (defaults[0] == '')
108      $('page-url-checkbox').checked = false;
109
110    if (defaults.length > 2) {
111      // We're in Chromium OS.
112      $('user-email-text').textContent = defaults[2];
113      if (defaults[2] == '') {
114        // if we didn't get an e-mail address from cros,
115        // disable the user email display totally
116        $('user-email-table').style.display = 'none';
117
118        // this also means we are in privacy mode, so no saved screenshots
119        $('screenshot-link-tosaved').style.display = 'none';
120      }
121    }
122  }
123}
124
125window.addEventListener('DOMContentLoaded', load);
126</script>
127</head>
128<body i18n-values=".style.fontFamily:fontfamily;.style.fontSize:fontsize">
129<div id="main-content">
130  <div id="navbar-container">
131    <h1 id="settings-title" i18n-content="page-title">
132    </h1>
133  </div>
134  <div id="mainview" class>
135    <!-- Even though we really don't need these many nested DIV's, we're staying
136    as close to the settings page layout as possible, re-using all our styles
137    from options_page.css -->
138    <div id="mainview-content">
139      <div class="page">
140        <h1 i18n-content="title"></h1>
141        <table id="main-table">
142          <!--  Issue type dropdown -->
143          <tbody>
144            <tr>
145              <th id="issue-with" class="bug-report-label"
146                  i18n-content="issue-with"></th>
147            </tr>
148            <tr>
149              <td>
150                <select id="issue-with-combo" class="bug-report-text">
151                </select>
152              </td>
153            </tr>
154            <!--  Description -->
155            <tr>
156              <th id="description" colspan="2" class="bug-report-label"
157                  i18n-content="description"></th>
158            </tr>
159            <tr>
160              <td colspan="2">
161                <textarea id="description-text" rows="10"
162                    class="bug-report-text"></textarea>
163              </td>
164            </tr>
165            <tr>
166              <td>
167                <table style="-webkit-border-vertical-spacing: 0px;">
168                  <!--  Page URL -->
169                  <tr>
170                    <td>
171                      <table class="bug-report-table">
172                        <tr>
173                          <td class="bug-report-fieldlabel">
174                            <input id="page-url-checkbox" type="checkbox"
175                                value="pageurl" checked>
176                            <span id="page-url-label" i18n-content="page-url">
177                            </span>
178                          </td>
179                          <td>
180                            <input id="page-url-text" class="bug-report-field"
181                                maxlength="200">
182                          </td>
183                        </tr>
184                      </table>
185                    </td>
186                  </tr>
187<if expr="pp_ifdef('chromeos')">
188                  <!--  User e-mail -->
189                  <tr>
190                    <td>
191                      <table id="user-email-table" class="bug-report-table">
192                        <tr>
193                          <td class="bug-report-fieldlabel">
194                            <input id="user-email-checkbox" type="checkbox"
195                                checked>
196                            <span id="user-email-label"
197                                i18n-content="user-email"></span>
198                          </td>
199                          <td>
200                            <label id="user-email-text"
201                                class="bug-report-field"></label>
202                          </td>
203                        </tr>
204                      </table>
205                    </td>
206                  </tr>
207                  <!--  System Information -->
208                  <tr>
209                    <td>
210                      <table class="bug-report-table">
211                        <tr>
212                          <td class="bug-report-fieldlabel">
213                            <input id="sys-info-checkbox" type="checkbox"
214                                checked>
215                            <span id="sysinfo-label">
216                              <a id="sysinfo-url" href="#"
217                                  i18n-content="sysinfo"></a>
218                            </span>
219                          </td>
220                        </tr>
221                      </table>
222                    </td>
223                  </tr>
224</if>
225                  <!--  Screenshot -->
226                  <tr>
227                    <td>
228                      <table class="bug-report-table">
229                        <tr>
230                          <td class="bug-report-fieldlabel">
231                            <input id="screenshot-checkbox" type="checkbox">
232                            <span id="screenshot-label-current"
233                                i18n-content="current-screenshot">
234                            </span>
235<if expr="pp_ifdef('chromeos')">
236                            <span id="screenshot-label-saved"
237                                style="display: none;"
238                                i18n-content="saved-screenshot">
239                            </span>
240                            <a id="screenshot-link-tosaved" href="#"
241                                onclick="changeToSaved()"
242                                i18n-content="choose-different-screenshot">
243                            </a>
244                            <a id="screenshot-link-tocurrent" href="#"
245                                style="display: none;"
246                                onclick="changeToCurrent()"
247                                i18n-content="choose-original-screenshot">
248                            </a>
249</if>
250                          </td>
251                        </tr>
252                      </table>
253                    </td>
254                  </tr>
255                  <tr>
256                    <td>
257<if expr="pp_ifdef('chromeos')">
258                      <div id="saved-screenshots" style="display: none;"
259                          class="thumbnail-list"></div>
260</if>
261                      <div id="current-screenshots" class="thumbnail-list">
262                      </div>
263                    </td>
264                  </tr>
265                </table>
266              </td>
267            </tr>
268            <tr>
269              <td>
270                <div id="buttons-pane">
271                  <!--  Buttons -->
272                  <input id="send-report-button" type="submit"
273                      class="bug-report-button" onclick="sendReport()"
274                      i18n-values="value:send-report">
275                  <input id="cancel-button" type="submit"
276                      class="bug-report-button" i18n-values="value:cancel"
277                      onclick="cancel()">
278                </div>
279                <div id="privacy-note" i18n-values=".innerHTML:privacy-note">
280                </div>
281              </td>
282            </tr>
283          </tbody>
284        </table>
285      </div>
286    </div>
287  </div>
288</div>
289</body>
290</html>
291