pve-manager/PVE/NoVncIndex.pm
Alexandre Derumier cf022ba085 novncindex : Renamed popupStatusPanel to popupStatus
to match
74f2ac968d

Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
2015-06-26 06:55:09 +02:00

179 lines
6.9 KiB
Perl

package PVE::NoVncIndex;
use strict;
use warnings;
sub get_index {
my ($lang, $username, $csrftoken, $console) = @_;
my $page = <<_EOD;
<!DOCTYPE html>
<html>
<head>
<title>Proxmox Console</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<!-- Apple iOS Safari settings -->
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<!-- Stylesheets -->
<link rel="stylesheet" href="/novnc/include/base.css"/>
_EOD
my $langfile = "/usr/share/pve-manager/locale/pve-lang-${lang}.js";
if (-f $langfile) {
$page .= "<script type='text/javascript' src='/pve2/locale/pve-lang-${lang}.js'></script>";
} else {
$page .= '<script type="text/javascript">function gettext(buf) { return buf; }</script>';
}
$page .= <<_EOD;
<script type="text/javascript">
if (typeof(PVE) === 'undefined') PVE = {};
PVE.UserName = '$username';
PVE.CSRFPreventionToken = '$csrftoken';
INCLUDE_URI='/novnc/include/';
</script>
</head>
<body>
<div id="noVNC-control-bar">
<!--noVNC Mobile Device only Buttons-->
<div class="noVNC-buttons-left">
<input type="image" alt="viewport drag" src="/novnc/images/drag.png"
id="noVNC_view_drag_button" class="noVNC_status_button"
title="Move/Drag Viewport">
<div id="noVNC_mobile_buttons">
<input type="image" alt="No mousebutton" src="/novnc/images/mouse_none.png"
id="noVNC_mouse_button0" class="noVNC_status_button">
<input type="image" alt="Left mousebutton" src="/novnc/images/mouse_left.png"
id="noVNC_mouse_button1" class="noVNC_status_button">
<input type="image" alt="Middle mousebutton" src="/novnc/images/mouse_middle.png"
id="noVNC_mouse_button2" class="noVNC_status_button">
<input type="image" alt="Right mousebutton" src="/novnc/images/mouse_right.png"
id="noVNC_mouse_button4" class="noVNC_status_button">
<input type="image" alt="Keyboard" src="/novnc/images/keyboard.png"
id="showKeyboard" class="noVNC_status_button"
value="Keyboard" title="Show Keyboard"/>
<!-- Note that Google Chrome on Android doesn't respect any of these,
html attributes which attempt to disable text suggestions on the
on-screen keyboard. Let's hope Chrome implements the ime-mode
style for example -->
<textarea id="keyboardinput" autocapitalize="off"
autocorrect="off" autocomplete="off" spellcheck="false"
mozactionhint="Enter" onsubmit="return false;"
style="ime-mode: disabled;"></textarea>
<div id="noVNC_extra_keys">
<input type="image" alt="Extra keys" src="/novnc/images/showextrakeys.png"
id="showExtraKeysButton" class="noVNC_status_button">
<input type="image" alt="Ctrl" src="/novnc/images/ctrl.png"
id="toggleCtrlButton" class="noVNC_status_button">
<input type="image" alt="Alt" src="/novnc/images/alt.png"
id="toggleAltButton" class="noVNC_status_button">
<input type="image" alt="Tab" src="/novnc/images/tab.png"
id="sendTabButton" class="noVNC_status_button">
<input type="image" alt="Esc" src="/novnc/images/esc.png"
id="sendEscButton" class="noVNC_status_button">
<input type="image" alt="Ctrl+Alt+Del" src="/novnc/images/ctrlaltdel.png"
id="sendCtrlAltDelButton" class="noVNC_status_button">
</div>
</div>
</div>
<div id="noVNC_status">Loading</div>
<!--noVNC Buttons-->
<div class="noVNC-buttons-right">
<input type="image" alt="Send keys" src="/novnc/images/showextrakeys.png"
id="showSendKeysButton" class="noVNC_status_button"
title="Send keys" />
<input type="image" alt="Clipboard" src="/novnc/images/clipboard.png"
id="clipboardButton" class="noVNC_status_button"
title="Clipboard" />
<input type="image" alt="Commands" src="/novnc/images/power.png"
id="pveCommandsButton" class="noVNC_status_button"
title="Commands" />
</div>
<div id="noVNC_description" class="">
</div>
<!-- Popup Status Panel -->
<div id="noVNC_popup_status" class="">
</div>
<!-- Clipboard Panel -->
<div id="noVNC_clipboard" class="triangle-right top">
<textarea id="noVNC_clipboard_text" rows=5>
</textarea>
<br />
<input id="noVNC_clipboard_clear_button" type="button"
value="Clear">
</div>
<!-- PVE command Panel -->
<div id="noVNC_pve_commands" class="triangle-right top">
<span id="noVNC_pve_command_menu">
</span>
</div>
<!-- Settings Panel -->
<div id="noVNC_settings" class="triangle-right top">
<span id="noVNC_settings_menu">
<ul>
<li><input id="noVNC_encrypt" type="checkbox"> Encrypt</li>
<li><input id="noVNC_true_color" type="checkbox" checked> True Color</li>
<li><input id="noVNC_cursor" type="checkbox"> Local Cursor</li>
<li><input id="noVNC_clip" type="checkbox" value="true"> Clip to Window</li>
<li><input id="noVNC_shared" type="checkbox"> Shared Mode</li>
<li><input id="noVNC_view_only" type="checkbox"> View Only</li>
<li><input id="noVNC_path" type="input" value="websockify"> Path</li>
<li><input id="noVNC_repeaterID" type="input" value=""> Repeater ID</li>
<li><input id="noVNC_stylesheet" type="input" value=""> Stylesheet</li>
<li><input id="noVNC_resize" type="input" value=""> Resize</li>
<li><input id="noVNC_logging" type="input" value=""> Logging</li>
</ul>
</span>
</div>
<!-- PVE Send Key Panel -->
<div id="noVNC_send_keys" class="triangle-right top">
<span id="noVNC_send_keys_panel">
</span>
</div>
<!-- Connection Panel -->
<div id="noVNC_controls" class="triangle-right top">
<ul>
<li><label><strong>Host: </strong><input id="noVNC_host" /></label></li>
<li><label><strong>Port: </strong><input id="noVNC_port" /></label></li>
<li><label><strong>Password: </strong><input id="noVNC_password" type="password" /></label></li>
<li><input id="noVNC_connect_button" type="button" value="Connect"></li>
</ul>
</div>
</div> <!-- End of noVNC-control-bar -->
<div id="noVNC_screen">
<div id="noVNC_screen_pad"></div>
<h1 id="noVNC_logo"><span>no</span><br />VNC</h1>
<!-- HTML5 Canvas -->
<div id="noVNC_container">
<canvas id="noVNC_canvas" width="640" height="400">
Canvas not supported.
</canvas>
</div>
</div>
<script src="/novnc/include/util.js"></script>
<script src="/novnc/include/pveui.js"></script>
</body>
</html>
_EOD
return $page;
}
1;