2 <html ng-app="feedbackApp" ng-controller="FeedbackCtrl"
3 ng-csp xmlns="http://www.w3.org/1999/xhtml" lang="top.language">
6 Chrome Media Router feedback
8 <link rel="stylesheet" type="text/css" href="feedback.css">
9 <link rel="stylesheet" type="text/css" href="material_css_min.css">
10 <script src="angular.js"></script>
11 <script type="text/javascript" src="common.js"></script>
12 <script type="text/javascript" src="feedback_script.js"></script>
15 <div id="header-banner"></div>
20 <angular-message key="MEDIA_ROUTER_FEEDBACK_HEADER"
21 desc="Header of the Media Router feedback page.">
22 Tell us what's happening with Google Cast.
25 <div id="description" class="informative">
26 <angular-message key="MEDIA_ROUTER_FEEDBACK_FORM_DESCRIPTION"
27 desc="Text to describe the feedback form.">
28 Your feedback helps us to improve Google Cast and is appreciated.
29 For help troubleshooting issues with cast, please refer to the
30 <a href="https://support.google.com/chromecast/troubleshooter/2995236">
34 <div id="required-legend" class="informative required-message">
35 <angular-message key="MEDIA_ROUTER_FEEDBACK_REQUIRED"
36 desc="Text in a legend to indicate required field.">
41 <div id="feedback-type-toggle">
42 <div class="subheading">
43 <angular-message key="MEDIA_ROUTER_FEEDBACK_TYPE_QUESTION"
44 desc="Text for the feedback type question.">
45 What kind of feedback are you providing?
48 <md-radio-group ng-model="top.feedbackType">
49 <md-radio-button ng-repeat="type in feedbackTypes"
50 value="{{type.value}}">
55 <div ng-switch="feedbackType">
56 <div ng-switch-default>
57 <div class="question">
58 <span class="subheading">
59 <angular-message key="MEDIA_ROUTER_FEEDBACK_PROMPT"
60 desc="Text for the feedback input box in the feedback form.">
61 Please enter your feedback here:
62 <span class="required-message"
63 ng-show="!top.sufficientFeedback">*</span>
66 <md-input-container class="md-block">
68 <textarea ng-model="top.feedbackDescription" rows="8" cols="60"
69 placeholder="{{top.yourAnswerText}}"></textarea>
73 <div ng-switch-when="MirroringQuality" id="mirroring-quality">
74 <div class="question">
75 <span class="subheading">
76 <angular-message key="MEDIA_ROUTER_MIRRORING_QUALITY_SUBHEADING"
77 desc="Text for audio quality question.">
78 Mirroring Quality Details
79 <span class="required-message"
80 ng-show="!top.sufficientFeedback">*</span>
83 <div id="table-container">
85 <div class="table-row odd">
86 <span class="table-cell subheading">
87 <angular-message key="MEDIA_ROUTER_VIDEO_SMOOTHNESS"
88 desc="Text for video smoothness question.">
92 <md-radio-group ng-model="top.videoSmoothness">
93 <md-radio-button ng-repeat="r in videoSmoothnessRatings"
94 value="{{r.id}} ({{r.desc}})" id="vsr-{{r.id}}"
100 <div class="table-row even">
101 <span class="table-cell subheading">
102 <angular-message key="MEDIA_ROUTER_VIDEO_QUALITY"
103 desc="Text for video quality question.">
107 <md-radio-group ng-model="top.videoQuality">
108 <md-radio-button ng-repeat="r in videoQualityRatings"
109 value="{{r.id}} ({{r.desc}})" id="vqr-{{r.id}}"
115 <div class="table-row odd">
116 <span class="table-cell subheading">
117 <angular-message key="MEDIA_ROUTER_AUDIO_QUALITY"
118 desc="Text for audio quality question.">
122 <md-radio-group ng-model="top.audioQuality">
123 <md-radio-button ng-repeat="r in audioQualityRatings"
124 value="{{r.id}} ({{r.desc}})" id="aqr-{{r.id}}"
133 <div class="question">
134 <span class="subheading">
135 <angular-message key="MEDIA_ROUTER_CONTENT_QUESTION"
136 desc="Text for the question about content being cast.">
137 What content/URL were you casting?
140 <md-input-container class="md-block">
142 <input ng-model="top.projectedContentUrl"
143 placeholder="{{top.yourAnswerText}}" />
144 </md-input-container>
146 <div class="question">
147 <span class="subheading">
148 <angular-message key="MEDIA_ROUTER_ADDITIONAL_COMMENTS"
149 desc="Text for field in feedback form for other comments.">
151 <span class="required-message"
152 ng-show="!top.sufficientFeedback">*</span>
155 <md-input-container class="md-block">
157 <input type="text" ng-model="top.comments"
158 placeholder="{{top.yourAnswerText}}" />
159 </md-input-container>
162 <div ng-switch-when="Discovery">
163 <div class="question">
164 <span class="subheading">
165 <angular-message key="MEDIA_ROUTER_SETUP_VISIBILITY_QUESTION"
166 desc="Text for the question about device visibility through
168 Are you able to see your Chromecast in the
169 <a href="https://support.google.com/chromecast/answer/2998456" target="_blank">
171 <span class="required-message"
172 ng-show="!top.sufficientFeedback">*</span>
175 <md-radio-group ng-model="top.visibleInSetup" layout="column">
176 <md-radio-button value="Yes">
177 <!-- <angular-message> doesn't get localized when it's directly
178 inside a MD element, so we wrap it in a <span>. -->
180 <angular-message key="MEDIA_ROUTER_YES"
181 desc="Label for yes option.">
186 <md-radio-button value="No">
188 <angular-message key="MEDIA_ROUTER_NO"
189 desc="Label for no option.">
194 <md-radio-button value="Unknown">
196 <angular-message key="MEDIA_ROUTER_DID_NOT_TRY"
197 desc="Label for 'did not try' option.">
204 <div class="question">
205 <span class="subheading">
206 <angular-message key="MEDIA_ROUTER_SOFTWARE_QUESTION"
207 desc="Text for the question about installed software.">
208 Do you have any special VPN, proxy, firewall, or NAS software
212 <md-radio-group ng-model="top.hasNetworkSoftware" layout="column">
213 <md-radio-button value="Yes">
215 <angular-message key="MEDIA_ROUTER_YES"
216 desc="Label for yes option.">
221 <md-radio-button value="No">
223 <angular-message key="MEDIA_ROUTER_NO"
224 desc="Label for no option.">
229 <md-radio-button value="Unknown">
231 <angular-message key="MEDIA_ROUTER_UNKNOWN"
232 desc="Label for not sure option.">
239 <div class="question">
240 <span class="subheading">
241 <angular-message key="MEDIA_ROUTER_NETWORK_QUESTION"
242 desc="Text for the question describing the network.">
243 Which of the following best describes your network?
246 <md-radio-group ng-model="top.networkDescription" layout="column">
247 <md-radio-button value="SameWifi">
249 <angular-message key="MEDIA_ROUTER_NETWORK_SAME_WIFI"
250 desc="Option for describing the network with PC and
251 chromecast on the same Wi-Fi network.">
252 PC and Chromecast on the same Wi-Fi network
256 <md-radio-button value="DifferentWifi">
258 <angular-message key="MEDIA_ROUTER_NETWORK_DIFFERENT_WIFI"
259 desc="Option for describing the network with PC and
260 chromecast on different Wi-Fi networks.">
261 PC and Chromecast on different Wi-Fi networks (e.g. 2.4GHz
266 <md-radio-button value="WiredPC">
268 <angular-message key="MEDIA_ROUTER_NETWORK_WIRED_PC"
269 desc="Option for describing the network with a wired PC.">
270 PC is wired and Chromecast is on Wi-Fi
276 <div class="question">
277 <span class="subheading">
278 <angular-message key="MEDIA_ROUTER_ADDITIONAL_COMMENTS"
279 desc="Text for field in feedback form for other comments.">
281 <span class="required-message"
282 ng-show="!top.sufficientFeedback">*</span>
285 <md-input-container class="md-block">
287 <input type="text" ng-model="top.comments"
288 placeholder="{{top.yourAnswerText}}" />
289 </md-input-container>
293 <div class="question">
294 <span class="subheading">
295 <angular-message key="MEDIA_ROUTER_FEEDBACK_EMAIL_FIELD"
296 desc="Text for the email field in the feedback form.">
300 <md-input-container class="md-block">
302 <input type="email" ng-model="top.userEmail"
303 placeholder="{{top.yourAnswerText}}" />
304 </md-input-container>
305 <md-checkbox type="checkbox" ng-model="top.attachLogs"
306 ng-change="attachLogsClick()"
307 aria-label="Send debug logs (recommended)">
309 <!-- We put the click event handler on this element rather than the
310 anchor element because attributes inside <angular-message> get
311 sanitized/removed in the i18n process. -->
312 <span class="send-logs" ng-click="viewLogs()">
313 <angular-message key="MEDIA_ROUTER_SEND_LOGS"
314 desc="Text for the send logs checkbox option.">
315 Send <a href="">debug logs</a> (recommended)
318 <p class="informative">
319 <angular-message key="MEDIA_ROUTER_PRIVACY_DATA_USAGE"
320 desc="Text with details about data usage of details submitted in
322 Your Chrome version, operating system version, Cast settings,
323 mirroring performance stats, and communication channel diagnostic
324 logs will be submitted in addition to any information you choose to
325 include above. This feedback is used to diagnose problems and help
326 improve the feature. Any personal information you submit, whether
327 explicitly or incidentally, will be protected in accordance with our
328 privacy policies. By submitting this feedback, you agree that Google
329 may use feedback that you provide to improve any Google product or
334 <div id="form-buttons">
335 <md-button id="cancel" class="md-raised" ng-click="cancel()">
337 <angular-message key="MEDIA_ROUTER_CANCEL_BUTTON"
338 desc="Text for the cancel button.">
343 <md-button id="submit" class="md-raised md-primary"
344 ng-click="sendFeedback()" ng-disabled="!sufficientFeedback">
346 <angular-message key="MEDIA_ROUTER_SEND_BUTTON"
347 desc="Text for the send feedback button.">
353 <!-- This is purely for the convenience of internal users. -->
354 <p id="mr-version">v{{top.mrVersion}}</p>