|
1 <!DOCTYPE html> |
|
2 <html class="noVNC_loading"> |
|
3 <head> |
|
4 |
|
5 <!-- |
|
6 noVNC example: simple example using default UI |
|
7 Copyright (C) 2012 Joel Martin |
|
8 Copyright (C) 2016 Samuel Mannehed for Cendio AB |
|
9 Copyright (C) 2016 Pierre Ossman for Cendio AB |
|
10 noVNC is licensed under the MPL 2.0 (see LICENSE.txt) |
|
11 This file is licensed under the 2-Clause BSD license (see LICENSE.txt). |
|
12 |
|
13 Connect parameters are provided in query string: |
|
14 http://example.com/?host=HOST&port=PORT&encrypt=1 |
|
15 or the fragment: |
|
16 http://example.com/#host=HOST&port=PORT&encrypt=1 |
|
17 --> |
|
18 <title>noVNC</title> |
|
19 |
|
20 <meta charset="utf-8" /> |
|
21 |
|
22 <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame |
|
23 Remove this if you use the .htaccess --> |
|
24 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> |
|
25 |
|
26 <!-- Icons (see Makefile for what the sizes are for) --> |
|
27 <link rel="icon" sizes="16x16" type="image/png" href="app/images/icons/novnc-16x16.png"> |
|
28 <link rel="icon" sizes="24x24" type="image/png" href="app/images/icons/novnc-24x24.png"> |
|
29 <link rel="icon" sizes="32x32" type="image/png" href="app/images/icons/novnc-32x32.png"> |
|
30 <link rel="icon" sizes="48x48" type="image/png" href="app/images/icons/novnc-48x48.png"> |
|
31 <link rel="icon" sizes="60x60" type="image/png" href="app/images/icons/novnc-60x60.png"> |
|
32 <link rel="icon" sizes="64x64" type="image/png" href="app/images/icons/novnc-64x64.png"> |
|
33 <link rel="icon" sizes="72x72" type="image/png" href="app/images/icons/novnc-72x72.png"> |
|
34 <link rel="icon" sizes="76x76" type="image/png" href="app/images/icons/novnc-76x76.png"> |
|
35 <link rel="icon" sizes="96x96" type="image/png" href="app/images/icons/novnc-96x96.png"> |
|
36 <link rel="icon" sizes="120x120" type="image/png" href="app/images/icons/novnc-120x120.png"> |
|
37 <link rel="icon" sizes="144x144" type="image/png" href="app/images/icons/novnc-144x144.png"> |
|
38 <link rel="icon" sizes="152x152" type="image/png" href="app/images/icons/novnc-152x152.png"> |
|
39 <link rel="icon" sizes="192x192" type="image/png" href="app/images/icons/novnc-192x192.png"> |
|
40 <!-- Firefox currently mishandles SVG, see #1419039 |
|
41 <link rel="icon" sizes="any" type="image/svg+xml" href="app/images/icons/novnc-icon.svg"> |
|
42 --> |
|
43 <!-- Repeated last so that legacy handling will pick this --> |
|
44 <link rel="icon" sizes="16x16" type="image/png" href="app/images/icons/novnc-16x16.png"> |
|
45 |
|
46 <!-- Apple iOS Safari settings --> |
|
47 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> |
|
48 <meta name="apple-mobile-web-app-capable" content="yes" /> |
|
49 <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" /> |
|
50 <!-- Home Screen Icons (favourites and bookmarks use the normal icons) --> |
|
51 <link rel="apple-touch-icon" sizes="60x60" type="image/png" href="app/images/icons/novnc-60x60.png"> |
|
52 <link rel="apple-touch-icon" sizes="76x76" type="image/png" href="app/images/icons/novnc-76x76.png"> |
|
53 <link rel="apple-touch-icon" sizes="120x120" type="image/png" href="app/images/icons/novnc-120x120.png"> |
|
54 <link rel="apple-touch-icon" sizes="152x152" type="image/png" href="app/images/icons/novnc-152x152.png"> |
|
55 |
|
56 <!-- Stylesheets --> |
|
57 <link rel="stylesheet" href="app/styles/base.css" /> |
|
58 |
|
59 <!-- |
|
60 <script type='text/javascript' |
|
61 src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script> |
|
62 --> |
|
63 |
|
64 <!-- this is included as a normal file in order to catch script-loading errors as well --> |
|
65 <script type="text/javascript" src="app/error-handler.js"></script> |
|
66 |
|
67 <!-- begin scripts --> |
|
68 <!-- promise polyfills promises for IE11 --> |
|
69 <script src="js/promise.js"></script> |
|
70 <!-- ES2015/ES6 modules polyfill --> |
|
71 <script type="module"> |
|
72 window._noVNC_has_module_support = true; |
|
73 </script> |
|
74 <script> |
|
75 window.addEventListener("load", function() { |
|
76 if (window._noVNC_has_module_support) return; |
|
77 var loader = document.createElement("script"); |
|
78 loader.src = "js/modl/brloader.js"; |
|
79 document.head.appendChild(loader); |
|
80 }); |
|
81 </script> |
|
82 <!-- actual script modules --> |
|
83 <script type="module" crossorigin="anonymous" src="app/ui.js"></script> |
|
84 <!-- end scripts --> |
|
85 </head> |
|
86 |
|
87 <body> |
|
88 |
|
89 <div id="noVNC_fallback_error" class="noVNC_center"> |
|
90 <div> |
|
91 <div>noVNC encountered an error:</div> |
|
92 <br> |
|
93 <div id="noVNC_fallback_errormsg"></div> |
|
94 </div> |
|
95 </div> |
|
96 |
|
97 <!-- noVNC Control Bar --> |
|
98 <div id="noVNC_control_bar_anchor" class="noVNC_vcenter"> |
|
99 |
|
100 <div id="noVNC_control_bar"> |
|
101 <div id="noVNC_control_bar_handle" title="Hide/Show the control bar"><div></div></div> |
|
102 |
|
103 <div class="noVNC_scroll"> |
|
104 |
|
105 <h1 class="noVNC_logo" translate="no"><span>no</span><br />VNC</h1> |
|
106 |
|
107 <!-- Drag/Pan the viewport --> |
|
108 <input type="image" alt="viewport drag" src="app/images/drag.svg" |
|
109 id="noVNC_view_drag_button" class="noVNC_button noVNC_hidden" |
|
110 title="Move/Drag Viewport" /> |
|
111 |
|
112 <!--noVNC Touch Device only buttons--> |
|
113 <div id="noVNC_mobile_buttons"> |
|
114 <input type="image" alt="No mousebutton" src="app/images/mouse_none.svg" |
|
115 id="noVNC_mouse_button0" class="noVNC_button" |
|
116 title="Active Mouse Button"/> |
|
117 <input type="image" alt="Left mousebutton" src="app/images/mouse_left.svg" |
|
118 id="noVNC_mouse_button1" class="noVNC_button" |
|
119 title="Active Mouse Button"/> |
|
120 <input type="image" alt="Middle mousebutton" src="app/images/mouse_middle.svg" |
|
121 id="noVNC_mouse_button2" class="noVNC_button" |
|
122 title="Active Mouse Button"/> |
|
123 <input type="image" alt="Right mousebutton" src="app/images/mouse_right.svg" |
|
124 id="noVNC_mouse_button4" class="noVNC_button" |
|
125 title="Active Mouse Button"/> |
|
126 <input type="image" alt="Keyboard" src="app/images/keyboard.svg" |
|
127 id="noVNC_keyboard_button" class="noVNC_button" |
|
128 value="Keyboard" title="Show Keyboard" /> |
|
129 </div> |
|
130 |
|
131 <!-- Extra manual keys --> |
|
132 <div id="noVNC_extra_keys"> |
|
133 <input type="image" alt="Extra keys" src="app/images/toggleextrakeys.svg" |
|
134 id="noVNC_toggle_extra_keys_button" class="noVNC_button" |
|
135 title="Show Extra Keys"/> |
|
136 <div class="noVNC_vcenter"> |
|
137 <div id="noVNC_modifiers" class="noVNC_panel"> |
|
138 <input type="image" alt="Ctrl" src="app/images/ctrl.svg" |
|
139 id="noVNC_toggle_ctrl_button" class="noVNC_button" |
|
140 title="Toggle Ctrl"/> |
|
141 <input type="image" alt="Alt" src="app/images/alt.svg" |
|
142 id="noVNC_toggle_alt_button" class="noVNC_button" |
|
143 title="Toggle Alt"/> |
|
144 <input type="image" alt="Tab" src="app/images/tab.svg" |
|
145 id="noVNC_send_tab_button" class="noVNC_button" |
|
146 title="Send Tab"/> |
|
147 <input type="image" alt="Esc" src="app/images/esc.svg" |
|
148 id="noVNC_send_esc_button" class="noVNC_button" |
|
149 title="Send Escape"/> |
|
150 <input type="image" alt="Ctrl+Alt+Del" src="app/images/ctrlaltdel.svg" |
|
151 id="noVNC_send_ctrl_alt_del_button" class="noVNC_button" |
|
152 title="Send Ctrl-Alt-Del" /> |
|
153 </div> |
|
154 </div> |
|
155 </div> |
|
156 |
|
157 <!-- Shutdown/Reboot --> |
|
158 <input type="image" alt="Shutdown/Reboot" src="app/images/power.svg" |
|
159 id="noVNC_power_button" class="noVNC_button" |
|
160 title="Shutdown/Reboot..." /> |
|
161 <div class="noVNC_vcenter"> |
|
162 <div id="noVNC_power" class="noVNC_panel"> |
|
163 <div class="noVNC_heading"> |
|
164 <img src="app/images/power.svg"> Power |
|
165 </div> |
|
166 <input type="button" id="noVNC_shutdown_button" value="Shutdown" /> |
|
167 <input type="button" id="noVNC_reboot_button" value="Reboot" /> |
|
168 <input type="button" id="noVNC_reset_button" value="Reset" /> |
|
169 </div> |
|
170 </div> |
|
171 |
|
172 <!-- Clipboard --> |
|
173 <input type="image" alt="Clipboard" src="app/images/clipboard.svg" |
|
174 id="noVNC_clipboard_button" class="noVNC_button" |
|
175 title="Clipboard" /> |
|
176 <div class="noVNC_vcenter"> |
|
177 <div id="noVNC_clipboard" class="noVNC_panel"> |
|
178 <div class="noVNC_heading"> |
|
179 <img src="app/images/clipboard.svg"> Clipboard |
|
180 </div> |
|
181 <textarea id="noVNC_clipboard_text" rows=5></textarea> |
|
182 <br /> |
|
183 <input id="noVNC_clipboard_clear_button" type="button" |
|
184 value="Clear" class="noVNC_submit" /> |
|
185 </div> |
|
186 </div> |
|
187 |
|
188 <!-- Toggle fullscreen --> |
|
189 <input type="image" alt="Fullscreen" src="app/images/fullscreen.svg" |
|
190 id="noVNC_fullscreen_button" class="noVNC_button noVNC_hidden" |
|
191 title="Fullscreen" /> |
|
192 |
|
193 <!-- Settings --> |
|
194 <input type="image" alt="Settings" src="app/images/settings.svg" |
|
195 id="noVNC_settings_button" class="noVNC_button" |
|
196 title="Settings" /> |
|
197 <div class="noVNC_vcenter"> |
|
198 <div id="noVNC_settings" class="noVNC_panel"> |
|
199 <ul> |
|
200 <li class="noVNC_heading"> |
|
201 <img src="app/images/settings.svg"> Settings |
|
202 </li> |
|
203 <li> |
|
204 <label><input id="noVNC_setting_shared" type="checkbox" /> Shared Mode</label> |
|
205 </li> |
|
206 <li> |
|
207 <label><input id="noVNC_setting_view_only" type="checkbox" /> View Only</label> |
|
208 </li> |
|
209 <li><hr></li> |
|
210 <li> |
|
211 <label><input id="noVNC_setting_view_clip" type="checkbox" /> Clip to Window</label> |
|
212 </li> |
|
213 <li> |
|
214 <label for="noVNC_setting_resize">Scaling Mode:</label> |
|
215 <select id="noVNC_setting_resize" name="vncResize"> |
|
216 <option value="off">None</option> |
|
217 <option value="scale">Local Scaling</option> |
|
218 <option value="remote">Remote Resizing</option> |
|
219 </select> |
|
220 </li> |
|
221 <li><hr></li> |
|
222 <li> |
|
223 <div class="noVNC_expander">Advanced</div> |
|
224 <div><ul> |
|
225 <li> |
|
226 <label for="noVNC_setting_repeaterID">Repeater ID:</label> |
|
227 <input id="noVNC_setting_repeaterID" type="input" value="" /> |
|
228 </li> |
|
229 <li> |
|
230 <div class="noVNC_expander">WebSocket</div> |
|
231 <div><ul> |
|
232 <li> |
|
233 <label><input id="noVNC_setting_encrypt" type="checkbox" /> Encrypt</label> |
|
234 </li> |
|
235 <li> |
|
236 <label for="noVNC_setting_host">Host:</label> |
|
237 <input id="noVNC_setting_host" /> |
|
238 </li> |
|
239 <li> |
|
240 <label for="noVNC_setting_port">Port:</label> |
|
241 <input id="noVNC_setting_port" type="number" /> |
|
242 </li> |
|
243 <li> |
|
244 <label for="noVNC_setting_path">Path:</label> |
|
245 <input id="noVNC_setting_path" type="input" value="websockify" /> |
|
246 </li> |
|
247 </ul></div> |
|
248 </li> |
|
249 <li><hr></li> |
|
250 <li> |
|
251 <label><input id="noVNC_setting_reconnect" type="checkbox" /> Automatic Reconnect</label> |
|
252 </li> |
|
253 <li> |
|
254 <label for="noVNC_setting_reconnect_delay">Reconnect Delay (ms):</label> |
|
255 <input id="noVNC_setting_reconnect_delay" type="number" /> |
|
256 </li> |
|
257 <li><hr></li> |
|
258 <!-- Logging selection dropdown --> |
|
259 <li> |
|
260 <label>Logging: |
|
261 <select id="noVNC_setting_logging" name="vncLogging"> |
|
262 </select> |
|
263 </label> |
|
264 </li> |
|
265 </ul></div> |
|
266 </li> |
|
267 </ul> |
|
268 </div> |
|
269 </div> |
|
270 |
|
271 <!-- Connection Controls --> |
|
272 <input type="image" alt="Disconnect" src="app/images/disconnect.svg" |
|
273 id="noVNC_disconnect_button" class="noVNC_button" |
|
274 title="Disconnect" /> |
|
275 |
|
276 </div> |
|
277 </div> |
|
278 |
|
279 <div id="noVNC_control_bar_hint"></div> |
|
280 |
|
281 </div> <!-- End of noVNC_control_bar --> |
|
282 |
|
283 <!-- Status Dialog --> |
|
284 <div id="noVNC_status"></div> |
|
285 |
|
286 <!-- Connect button --> |
|
287 <div class="noVNC_center"> |
|
288 <div id="noVNC_connect_dlg"> |
|
289 <div class="noVNC_logo" translate="no"><span>no</span>VNC</div> |
|
290 <div id="noVNC_connect_button"><div> |
|
291 <img src="app/images/connect.svg"> Connect |
|
292 </div></div> |
|
293 </div> |
|
294 </div> |
|
295 |
|
296 <!-- Password Dialog --> |
|
297 <div class="noVNC_center noVNC_connect_layer"> |
|
298 <div id="noVNC_password_dlg" class="noVNC_panel"><form> |
|
299 <ul> |
|
300 <li> |
|
301 <label>Password:</label> |
|
302 <input id="noVNC_password_input" type="password" /> |
|
303 </li> |
|
304 <li> |
|
305 <input id="noVNC_password_button" type="submit" value="Send Password" class="noVNC_submit" /> |
|
306 </li> |
|
307 </ul> |
|
308 </form></div> |
|
309 </div> |
|
310 |
|
311 <!-- Transition Screens --> |
|
312 <div id="noVNC_transition"> |
|
313 <div id="noVNC_transition_text"></div> |
|
314 <div> |
|
315 <input type="button" id="noVNC_cancel_reconnect_button" value="Cancel" class="noVNC_submit" /> |
|
316 </div> |
|
317 <div class="noVNC_spinner"></div> |
|
318 </div> |
|
319 |
|
320 <!-- This is where the RFB elements will attach --> |
|
321 <div id="noVNC_container"> |
|
322 <!-- Note that Google Chrome on Android doesn't respect any of these, |
|
323 html attributes which attempt to disable text suggestions on the |
|
324 on-screen keyboard. Let's hope Chrome implements the ime-mode |
|
325 style for example --> |
|
326 <textarea id="noVNC_keyboardinput" autocapitalize="off" |
|
327 autocorrect="off" autocomplete="off" spellcheck="false" |
|
328 mozactionhint="Enter" tabindex="-1"></textarea> |
|
329 </div> |
|
330 |
|
331 <audio id="noVNC_bell"> |
|
332 <source src="app/sounds/bell.oga" type="audio/ogg"> |
|
333 <source src="app/sounds/bell.mp3" type="audio/mpeg"> |
|
334 </audio> |
|
335 </body> |
|
336 </html> |