|
|
|
@@ -20,99 +20,107 @@
|
|
|
|
|
THE SOFTWARE.
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<div id="clientContainer">
|
|
|
|
|
|
|
|
|
|
<!-- Client -->
|
|
|
|
|
<guac-client
|
|
|
|
|
client-properties="clientProperties"
|
|
|
|
|
id="id"
|
|
|
|
|
connection-parameters="connectionParameters"
|
|
|
|
|
></guac-client>
|
|
|
|
|
<!-- Client view -->
|
|
|
|
|
<div class="client-view">
|
|
|
|
|
|
|
|
|
|
<!-- Text input target -->
|
|
|
|
|
<div id="text-input"><div id="text-input-field"><div id="sent-history"></div><textarea rows="1" id="target"></textarea></div><div id="text-input-buttons"><button class="key" data-keysym="0xFFE3" data-sticky="true">{{'client.ctrl' | translate}}</button><button class="key" data-keysym="0xFFE9" data-sticky="true">{{'client.alt' | translate}}</button><button class="key" data-keysym="0xFF1B">{{'client.esc' | translate}}</button><button class="key" data-keysym="0xFF09">{{'client.tab' | translate}}</button></div></div>
|
|
|
|
|
<!-- Central portion of view -->
|
|
|
|
|
<div class="client-body">
|
|
|
|
|
|
|
|
|
|
<!-- Dimensional clone of viewport -->
|
|
|
|
|
<div id="viewportClone"></div>
|
|
|
|
|
<!-- Client -->
|
|
|
|
|
<guac-client
|
|
|
|
|
client-properties="clientProperties"
|
|
|
|
|
id="id"
|
|
|
|
|
connection-parameters="connectionParameters"/></guac-client>
|
|
|
|
|
|
|
|
|
|
<!-- Menu -->
|
|
|
|
|
<div ng-class="{open: menuShown}" id="menu">
|
|
|
|
|
<h2>{{'client.clipboard' | translate}}</h2>
|
|
|
|
|
<div class="content" id="clipboard-settings">
|
|
|
|
|
<p class="description">{{'client.copiedText' | translate}}</p>
|
|
|
|
|
<textarea ng-model="clipboardData" rows="10" cols="40" id="clipboard"></textarea>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.inputMethod' | translate}}</h2>
|
|
|
|
|
<div class="content" id="keyboard-settings">
|
|
|
|
|
|
|
|
|
|
<!-- No IME -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="none"/> {{'client.none' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-none">{{'client.noneDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Text input -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<div class="figure"><label for="ime-text"><img src="images/settings/tablet-keys.png" alt=""/></label></div>
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="text"/> {{'client.textInput' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-text">{{'client.textInputDesc' | translate}} </label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Guac OSK -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="osk"/> {{'client.osk' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-osk">{{'client.oskDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.mouseMode' | translate}}</h2>
|
|
|
|
|
<div class="content" id="mouse-settings">
|
|
|
|
|
<p class="description">{{'client.mouseModeDesc' | translate}}</p>
|
|
|
|
|
|
|
|
|
|
<!-- Touchscreen -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="clientProperties.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute"/>
|
|
|
|
|
<div class="figure">
|
|
|
|
|
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'client.touchscreen' | translate}}"/></label>
|
|
|
|
|
<p class="caption"><label for="absolute">{{'client.touchscreenDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Touchpad -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="clientProperties.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative"/>
|
|
|
|
|
<div class="figure">
|
|
|
|
|
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'client.touchpad' | translate}}"/></label>
|
|
|
|
|
<p class="caption"><label for="relative">{{'client.touchpadDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.display' | translate}}</h2>
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div id="zoom-settings">
|
|
|
|
|
<div ng-click="zoomOut()" id="zoom-out"><img src="images/settings/zoom-out.png" alt="-"/></div>
|
|
|
|
|
<div id="zoom-state">{{formattedScale()}}%</div>
|
|
|
|
|
<div ng-click="zoomIn()" id="zoom-in"><img src="images/settings/zoom-in.png" alt="+"/></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div><label><input ng-model="autoFit" ng-change="changeAutoFit()" ng-disabled="autoFitDisabled()" type="checkbox" id="auto-fit"/> {{'client.autoFit' | translate}}</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- On-screen keyboard -->
|
|
|
|
|
<div class="keyboard-container" ng-class="{shown: showOSK}">
|
|
|
|
|
<guac-osk layout="'client.oskLayout' | translate"/>
|
|
|
|
|
<!-- Bottom portion of view -->
|
|
|
|
|
<div class="client-bottom">
|
|
|
|
|
|
|
|
|
|
<!-- Text input -->
|
|
|
|
|
<div class="text-input-container" ng-show="showTextInput">
|
|
|
|
|
<guac-text-input></guac-text-input>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Images which should be preloaded -->
|
|
|
|
|
<div id="preload">
|
|
|
|
|
<img src="images/action-icons/guac-close.png" alt=""/>
|
|
|
|
|
<img src="images/progress.png" alt=""/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- On-screen keyboard -->
|
|
|
|
|
<div class="keyboard-container" ng-class="{shown: showOSK}">
|
|
|
|
|
<guac-osk layout="'client.oskLayout' | translate"/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Menu -->
|
|
|
|
|
<div ng-class="{open: menuShown}" id="menu">
|
|
|
|
|
<h2>{{'client.clipboard' | translate}}</h2>
|
|
|
|
|
<div class="content" id="clipboard-settings">
|
|
|
|
|
<p class="description">{{'client.copiedText' | translate}}</p>
|
|
|
|
|
<textarea ng-model="clipboardData" rows="10" cols="40" id="clipboard"></textarea>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.inputMethod' | translate}}</h2>
|
|
|
|
|
<div class="content" id="keyboard-settings">
|
|
|
|
|
|
|
|
|
|
<!-- No IME -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="none"/> {{'client.none' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-none">{{'client.noneDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Text input -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<div class="figure"><label for="ime-text"><img src="images/settings/tablet-keys.png" alt=""/></label></div>
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="text"/> {{'client.textInput' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-text">{{'client.textInputDesc' | translate}} </label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Guac OSK -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<label><input name="input-method" ng-change="closeMenu()" ng-model="inputMethod" type="radio" value="osk"/> {{'client.osk' | translate}}</label>
|
|
|
|
|
<p class="caption"><label for="ime-osk">{{'client.oskDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.mouseMode' | translate}}</h2>
|
|
|
|
|
<div class="content" id="mouse-settings">
|
|
|
|
|
<p class="description">{{'client.mouseModeDesc' | translate}}</p>
|
|
|
|
|
|
|
|
|
|
<!-- Touchscreen -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="clientProperties.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute"/>
|
|
|
|
|
<div class="figure">
|
|
|
|
|
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'client.touchscreen' | translate}}"/></label>
|
|
|
|
|
<p class="caption"><label for="absolute">{{'client.touchscreenDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Touchpad -->
|
|
|
|
|
<div class="choice">
|
|
|
|
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="clientProperties.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative"/>
|
|
|
|
|
<div class="figure">
|
|
|
|
|
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'client.touchpad' | translate}}"/></label>
|
|
|
|
|
<p class="caption"><label for="relative">{{'client.touchpadDesc' | translate}}</label></p>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<h2>{{'client.display' | translate}}</h2>
|
|
|
|
|
<div class="content">
|
|
|
|
|
<div id="zoom-settings">
|
|
|
|
|
<div ng-click="zoomOut()" id="zoom-out"><img src="images/settings/zoom-out.png" alt="-"/></div>
|
|
|
|
|
<div id="zoom-state">{{formattedScale()}}%</div>
|
|
|
|
|
<div ng-click="zoomIn()" id="zoom-in"><img src="images/settings/zoom-in.png" alt="+"/></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div><label><input ng-model="autoFit" ng-change="changeAutoFit()" ng-disabled="autoFitDisabled()" type="checkbox" id="auto-fit"/> {{'client.autoFit' | translate}}</label></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<ng-include src="app/client/template/clientError.html"/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- Images which should be preloaded -->
|
|
|
|
|
<div id="preload">
|
|
|
|
|
<img src="images/action-icons/guac-close.png" alt=""/>
|
|
|
|
|
<img src="images/progress.png" alt=""/>
|
|
|
|
|
</div>
|
|
|
|
|