mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-05 20:57:40 +00:00
GUACAMOLE-773: Remove use of XHTML-style self-closing tags from normal HTML.
This is particularly important for AngularJS 1.8.x and jQuery 3.5.0+, which will no longer correct this automatically with their HTML prefilters, resulting in unexpected nesting of tags when the browser interprets something like "<div/>" as "<div>" (older versions of jQuery would have corrected "<div/>" to "<div></div>"). See: * https://docs.angularjs.org/guide/migration#migrating-from-1-7-to-1-8 * https://jquery.com/upgrade-guide/3.5/
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<!-- Sets up a dialog box that will be inserted immediately after the "version"
|
<!-- Sets up a dialog box that will be inserted immediately after the "version"
|
||||||
element. -->
|
element. -->
|
||||||
<meta name="after" content=".version" />
|
<meta name="after" content=".version">
|
||||||
|
|
||||||
<!-- An HTML div that has a class of "warning", pluss the other classes that
|
<!-- An HTML div that has a class of "warning", pluss the other classes that
|
||||||
will be applied from above. -->
|
will be applied from above. -->
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
<html>
|
<html>
|
||||||
|
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" type="text/css" href="guacamole.css"/>
|
<link rel="stylesheet" type="text/css" href="guacamole.css">
|
||||||
<title>Guacamole (EXAMPLE)</title>
|
<title>Guacamole (EXAMPLE)</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
<head>
|
<head>
|
||||||
<title>Guacamole Recording Playback (EXAMPLE)</title>
|
<title>Guacamole Recording Playback (EXAMPLE)</title>
|
||||||
<meta charset="utf-8"/>
|
<meta charset="utf-8">
|
||||||
<link rel="stylesheet" type="text/css" href="playback.css">
|
<link rel="stylesheet" type="text/css" href="playback.css">
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
<meta name="before" content=".all-connections" />
|
<meta name="before" content=".all-connections">
|
||||||
<div class="quickconnect-list-item list-item" ng-controller="quickconnectController">
|
<div class="quickconnect-list-item list-item" ng-controller="quickconnectController">
|
||||||
<div class="quickconnect-container">
|
<div class="quickconnect-container">
|
||||||
<form ng-submit="quickConnect()">
|
<form ng-submit="quickConnect()">
|
||||||
<input type=text class="quickconnect-field" placeholder="{{'QUICKCONNECT.FIELD_PLACEHOLDER_URI' |translate}}" ng-model="uri" />
|
<input type=text class="quickconnect-field" placeholder="{{'QUICKCONNECT.FIELD_PLACEHOLDER_URI' |translate}}" ng-model="uri">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="action-buttons">
|
<div class="action-buttons">
|
||||||
|
@@ -1 +1 @@
|
|||||||
<input type="hidden" ng-model="model" />
|
<input type="hidden" ng-model="model">
|
||||||
|
@@ -41,7 +41,7 @@
|
|||||||
<div class="totp-code">
|
<div class="totp-code">
|
||||||
<input type="text"
|
<input type="text"
|
||||||
placeholder="{{'TOTP.FIELD_PLACEHOLDER_CODE' |translate}}"
|
placeholder="{{'TOTP.FIELD_PLACEHOLDER_CODE' |translate}}"
|
||||||
ng-model="model" autocorrect="off" autocapitalize="off"/>
|
ng-model="model" autocorrect="off" autocapitalize="off">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -134,20 +134,20 @@
|
|||||||
|
|
||||||
<!-- No IME -->
|
<!-- No IME -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<label><input id="ime-none" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="none"/> {{'CLIENT.NAME_INPUT_METHOD_NONE' | translate}}</label>
|
<label><input id="ime-none" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="none"> {{'CLIENT.NAME_INPUT_METHOD_NONE' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-none">{{'CLIENT.HELP_INPUT_METHOD_NONE' | translate}}</label></p>
|
<p class="caption"><label for="ime-none">{{'CLIENT.HELP_INPUT_METHOD_NONE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Text input -->
|
<!-- Text input -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<div class="figure"><label for="ime-text"><img src="images/settings/tablet-keys.png" alt=""/></label></div>
|
<div class="figure"><label for="ime-text"><img src="images/settings/tablet-keys.png" alt=""></label></div>
|
||||||
<label><input id="ime-text" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="text"/> {{'CLIENT.NAME_INPUT_METHOD_TEXT' | translate}}</label>
|
<label><input id="ime-text" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="text"> {{'CLIENT.NAME_INPUT_METHOD_TEXT' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-text">{{'CLIENT.HELP_INPUT_METHOD_TEXT' | translate}} </label></p>
|
<p class="caption"><label for="ime-text">{{'CLIENT.HELP_INPUT_METHOD_TEXT' | translate}} </label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Guac OSK -->
|
<!-- Guac OSK -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<label><input id="ime-osk" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="osk"/> {{'CLIENT.NAME_INPUT_METHOD_OSK' | translate}}</label>
|
<label><input id="ime-osk" name="input-method" ng-change="closeMenu()" ng-model="menu.inputMethod" type="radio" value="osk"> {{'CLIENT.NAME_INPUT_METHOD_OSK' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-osk">{{'CLIENT.HELP_INPUT_METHOD_OSK' | translate}}</label></p>
|
<p class="caption"><label for="ime-osk">{{'CLIENT.HELP_INPUT_METHOD_OSK' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -162,18 +162,18 @@
|
|||||||
|
|
||||||
<!-- Touchscreen -->
|
<!-- Touchscreen -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<input name="mouse-mode" ng-change="closeMenu()" ng-model="client.clientProperties.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute"/>
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="client.clientProperties.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute">
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'CLIENT.NAME_MOUSE_MODE_ABSOLUTE' | translate}}"/></label>
|
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'CLIENT.NAME_MOUSE_MODE_ABSOLUTE' | translate}}"></label>
|
||||||
<p class="caption"><label for="absolute">{{'CLIENT.HELP_MOUSE_MODE_ABSOLUTE' | translate}}</label></p>
|
<p class="caption"><label for="absolute">{{'CLIENT.HELP_MOUSE_MODE_ABSOLUTE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Touchpad -->
|
<!-- Touchpad -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<input name="mouse-mode" ng-change="closeMenu()" ng-model="client.clientProperties.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative"/>
|
<input name="mouse-mode" ng-change="closeMenu()" ng-model="client.clientProperties.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative">
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'CLIENT.NAME_MOUSE_MODE_RELATIVE' | translate}}"/></label>
|
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'CLIENT.NAME_MOUSE_MODE_RELATIVE' | translate}}"></label>
|
||||||
<p class="caption"><label for="relative">{{'CLIENT.HELP_MOUSE_MODE_RELATIVE' | translate}}</label></p>
|
<p class="caption"><label for="relative">{{'CLIENT.HELP_MOUSE_MODE_RELATIVE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -186,16 +186,16 @@
|
|||||||
<h3>{{'CLIENT.SECTION_HEADER_DISPLAY' | translate}}</h3>
|
<h3>{{'CLIENT.SECTION_HEADER_DISPLAY' | translate}}</h3>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div id="zoom-settings">
|
<div id="zoom-settings">
|
||||||
<div ng-click="zoomOut()" id="zoom-out"><img src="images/settings/zoom-out.png" alt="-"/></div>
|
<div ng-click="zoomOut()" id="zoom-out"><img src="images/settings/zoom-out.png" alt="-"></div>
|
||||||
<div class="zoom-ctrl">
|
<div class="zoom-ctrl">
|
||||||
<input type="number" class="zoom-ctrl" guac-zoom-ctrl
|
<input type="number" class="zoom-ctrl" guac-zoom-ctrl
|
||||||
ng-model="client.clientProperties.scale"
|
ng-model="client.clientProperties.scale"
|
||||||
ng-model-options="{ updateOn: 'blur submit' }"
|
ng-model-options="{ updateOn: 'blur submit' }"
|
||||||
ng-change="zoomSet()" />%
|
ng-change="zoomSet()">%
|
||||||
</div>
|
</div>
|
||||||
<div ng-click="zoomIn()" id="zoom-in"><img src="images/settings/zoom-in.png" alt="+"/></div>
|
<div ng-click="zoomIn()" id="zoom-in"><img src="images/settings/zoom-in.png" alt="+"></div>
|
||||||
</div>
|
</div>
|
||||||
<div><label><input ng-model="menu.autoFit" ng-change="changeAutoFit()" ng-disabled="autoFitDisabled()" type="checkbox" id="auto-fit"/> {{'CLIENT.TEXT_ZOOM_AUTO_FIT' | translate}}</label></div>
|
<div><label><input ng-model="menu.autoFit" ng-change="changeAutoFit()" ng-disabled="autoFitDisabled()" type="checkbox" id="auto-fit"> {{'CLIENT.TEXT_ZOOM_AUTO_FIT' | translate}}</label></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -5,6 +5,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Dummy background thumbnail -->
|
<!-- Dummy background thumbnail -->
|
||||||
<img alt="" ng-src="{{thumbnail}}"/>
|
<img alt="" ng-src="{{thumbnail}}">
|
||||||
|
|
||||||
</div>
|
</div>
|
@@ -4,4 +4,4 @@
|
|||||||
ng-model="typedValue"
|
ng-model="typedValue"
|
||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
|
@@ -8,5 +8,5 @@
|
|||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
placeholder="{{'FORM.FIELD_PLACEHOLDER_DATE' | translate}}"
|
placeholder="{{'FORM.FIELD_PLACEHOLDER_DATE' | translate}}"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
</div>
|
</div>
|
||||||
|
@@ -6,6 +6,6 @@
|
|||||||
ng-hide="readOnly"
|
ng-hide="readOnly"
|
||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
<a href="mailto:{{model}}" ng-show="readOnly">{{model}}</a>
|
<a href="mailto:{{model}}" ng-show="readOnly">{{model}}</a>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -4,4 +4,4 @@
|
|||||||
ng-model="typedValue"
|
ng-model="typedValue"
|
||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
|
@@ -6,6 +6,6 @@
|
|||||||
ng-trim="false"
|
ng-trim="false"
|
||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
<div class="icon toggle-password" ng-click="togglePassword()" title="{{getTogglePasswordHelpText() | translate}}"></div>
|
<div class="icon toggle-password" ng-click="togglePassword()" title="{{getTogglePasswordHelpText() | translate}}"></div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
ng-disabled="disabled"
|
ng-disabled="disabled"
|
||||||
guac-focus="focused"
|
guac-focus="focused"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
<datalist ng-if="dataListId" ng-attr-id="{{ dataListId }}">
|
<datalist ng-if="dataListId" ng-attr-id="{{ dataListId }}">
|
||||||
<option ng-repeat="option in field.options | orderBy: option"
|
<option ng-repeat="option in field.options | orderBy: option"
|
||||||
value="{{ option }}">{{ getFieldOption(option) | translate }}</option>
|
value="{{ option }}">{{ getFieldOption(option) | translate }}</option>
|
||||||
|
@@ -8,5 +8,5 @@
|
|||||||
guac-lenient-time
|
guac-lenient-time
|
||||||
placeholder="{{'FORM.FIELD_PLACEHOLDER_TIME' | translate}}"
|
placeholder="{{'FORM.FIELD_PLACEHOLDER_TIME' | translate}}"
|
||||||
autocorrect="off"
|
autocorrect="off"
|
||||||
autocapitalize="off"/>
|
autocapitalize="off">
|
||||||
</div>
|
</div>
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
<div class="icon expand" ng-click="toggleExpanded(item)"
|
<div class="icon expand" ng-click="toggleExpanded(item)"
|
||||||
ng-if="item.expandable"></div>
|
ng-if="item.expandable"></div>
|
||||||
|
|
||||||
<ng-include src="templates[item.type]"/>
|
<ng-include src="templates[item.type]"></ng-include>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<div class="group-list-filter filter">
|
<div class="group-list-filter filter">
|
||||||
|
|
||||||
<!-- Filter string -->
|
<!-- Filter string -->
|
||||||
<input class="search-string" placeholder="{{placeholder()}}" type="text" ng-model="searchString"/>
|
<input class="search-string" placeholder="{{placeholder()}}" type="text" ng-model="searchString">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
<!-- Connection thumbnail -->
|
<!-- Connection thumbnail -->
|
||||||
<div class="thumbnail">
|
<div class="thumbnail">
|
||||||
<img alt="{{recentConnection.name}}" ng-src="{{recentConnection.entry.thumbnail}}"/>
|
<img alt="{{recentConnection.name}}" ng-src="{{recentConnection.entry.thumbnail}}">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Connection name -->
|
<!-- Connection name -->
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
<div class="filter">
|
<div class="filter">
|
||||||
|
|
||||||
<!-- Filter string -->
|
<!-- Filter string -->
|
||||||
<input class="search-string" placeholder="{{placeholder()}}" type="text" ng-model="searchString"/>
|
<input class="search-string" placeholder="{{placeholder()}}" type="text" ng-model="searchString">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
<div class="pager" ng-show="pageNumbers.length > 1">
|
<div class="pager" ng-show="pageNumbers.length > 1">
|
||||||
|
|
||||||
<!-- First / Previous -->
|
<!-- First / Previous -->
|
||||||
<div class="first-page icon" ng-class="{disabled: !canSelectPage(firstPage)}" ng-click="selectPage(firstPage)"/>
|
<div class="first-page icon" ng-class="{disabled: !canSelectPage(firstPage)}" ng-click="selectPage(firstPage)"></div>
|
||||||
<div class="prev-page icon" ng-class="{disabled: !canSelectPage(previousPage)}" ng-click="selectPage(previousPage)"/>
|
<div class="prev-page icon" ng-class="{disabled: !canSelectPage(previousPage)}" ng-click="selectPage(previousPage)"></div>
|
||||||
|
|
||||||
<!-- Indicator of the existence of pages before the first page number shown -->
|
<!-- Indicator of the existence of pages before the first page number shown -->
|
||||||
<div class="more-pages" ng-show="hasMorePagesBefore()">...</div>
|
<div class="more-pages" ng-show="hasMorePagesBefore()">...</div>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
<div class="more-pages" ng-show="hasMorePagesAfter()">...</div>
|
<div class="more-pages" ng-show="hasMorePagesAfter()">...</div>
|
||||||
|
|
||||||
<!-- Next / Last -->
|
<!-- Next / Last -->
|
||||||
<div class="next-page icon" ng-class="{disabled: !canSelectPage(nextPage)}" ng-click="selectPage(nextPage)"/>
|
<div class="next-page icon" ng-class="{disabled: !canSelectPage(nextPage)}" ng-click="selectPage(nextPage)"></div>
|
||||||
<div class="last-page icon" ng-class="{disabled: !canSelectPage(lastPage)}" ng-click="selectPage(lastPage)"/>
|
<div class="last-page icon" ng-class="{disabled: !canSelectPage(lastPage)}" ng-click="selectPage(lastPage)"></div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -36,11 +36,11 @@
|
|||||||
|
|
||||||
<input type="submit" name="login" class="login"
|
<input type="submit" name="login" class="login"
|
||||||
ng-disabled="submitted"
|
ng-disabled="submitted"
|
||||||
value="{{'LOGIN.ACTION_LOGIN' | translate}}"/>
|
value="{{'LOGIN.ACTION_LOGIN' | translate}}">
|
||||||
|
|
||||||
<input type="submit" name="login" class="continue-login"
|
<input type="submit" name="login" class="continue-login"
|
||||||
ng-disabled="submitted"
|
ng-disabled="submitted"
|
||||||
value="{{'LOGIN.ACTION_CONTINUE' | translate}}"/>
|
value="{{'LOGIN.ACTION_CONTINUE' | translate}}">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<!-- Permission checkbox -->
|
<!-- Permission checkbox -->
|
||||||
<input type="checkbox" ng-model="context.getPermissionFlags().connectionGroupPermissions.READ[item.identifier]"
|
<input type="checkbox" ng-model="context.getPermissionFlags().connectionGroupPermissions.READ[item.identifier]"
|
||||||
ng-change="context.connectionGroupPermissionChanged(item.identifier)"/>
|
ng-change="context.connectionGroupPermissionChanged(item.identifier)">
|
||||||
|
|
||||||
<!-- Connection group name -->
|
<!-- Connection group name -->
|
||||||
<span class="name">{{item.name}}</span>
|
<span class="name">{{item.name}}</span>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<!-- Permission checkbox -->
|
<!-- Permission checkbox -->
|
||||||
<input type="checkbox" ng-model="context.getPermissionFlags().connectionPermissions.READ[item.identifier]"
|
<input type="checkbox" ng-model="context.getPermissionFlags().connectionPermissions.READ[item.identifier]"
|
||||||
ng-change="context.connectionPermissionChanged(item.identifier)"/>
|
ng-change="context.connectionPermissionChanged(item.identifier)">
|
||||||
|
|
||||||
<!-- Connection name -->
|
<!-- Connection name -->
|
||||||
<span class="name">{{item.name}}</span>
|
<span class="name">{{item.name}}</span>
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
<div class="filter">
|
<div class="filter">
|
||||||
<input class="search-string" type="text"
|
<input class="search-string" type="text"
|
||||||
placeholder="{{ 'SETTINGS_USERS.FIELD_PLACEHOLDER_FILTER' | translate }}"
|
placeholder="{{ 'SETTINGS_USERS.FIELD_PLACEHOLDER_FILTER' | translate }}"
|
||||||
ng-model="filterString"/>
|
ng-model="filterString">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -12,14 +12,14 @@
|
|||||||
|
|
||||||
<!-- Abbreviated list of only the currently selected objects -->
|
<!-- Abbreviated list of only the currently selected objects -->
|
||||||
<div class="abbreviated-related-objects">
|
<div class="abbreviated-related-objects">
|
||||||
<img src="images/arrows/right.png" alt="Expand" class="expand" ng-hide="expanded" ng-click="expand()"/>
|
<img src="images/arrows/right.png" alt="Expand" class="expand" ng-hide="expanded" ng-click="expand()">
|
||||||
<img src="images/arrows/down.png" alt="Collapse" class="collapse" ng-show="expanded" ng-click="collapse()"/>
|
<img src="images/arrows/down.png" alt="Collapse" class="collapse" ng-show="expanded" ng-click="collapse()">
|
||||||
<p ng-hide="identifiers.length" class="no-related-objects">{{ emptyPlaceholder | translate }}</p>
|
<p ng-hide="identifiers.length" class="no-related-objects">{{ emptyPlaceholder | translate }}</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li ng-repeat="identifier in identifiers | filter: filterString">
|
<li ng-repeat="identifier in identifiers | filter: filterString">
|
||||||
<label><img src="images/x-red.png" alt="Remove" class="remove"
|
<label><img src="images/x-red.png" alt="Remove" class="remove"
|
||||||
ng-click="removeIdentifier(identifier)"
|
ng-click="removeIdentifier(identifier)"
|
||||||
ng-show="isEditable[identifier]"/><span class="identifier">{{ identifier }}</span>
|
ng-show="isEditable[identifier]"><span class="identifier">{{ identifier }}</span>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<li ng-repeat="identifier in identifiersAvailablePage">
|
<li ng-repeat="identifier in identifiersAvailablePage">
|
||||||
<label><input type="checkbox"
|
<label><input type="checkbox"
|
||||||
ng-model="identifierFlags[identifier]"
|
ng-model="identifierFlags[identifier]"
|
||||||
ng-change="identifierChanged(identifier)"/>
|
ng-change="identifierChanged(identifier)">
|
||||||
<span class="identifier">{{ identifier }}</span>
|
<span class="identifier">{{ identifier }}</span>
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
@@ -11,7 +11,7 @@
|
|||||||
connection-groups="rootGroups"
|
connection-groups="rootGroups"
|
||||||
templates="{
|
templates="{
|
||||||
'connection-group' : 'app/manage/templates/locationChooserConnectionGroup.html'
|
'connection-group' : 'app/manage/templates/locationChooserConnectionGroup.html'
|
||||||
}"/>
|
}"></guac-group-list>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_CONNECTION.FIELD_HEADER_NAME' | translate}}</th>
|
<th>{{'MANAGE_CONNECTION.FIELD_HEADER_NAME' | translate}}</th>
|
||||||
|
|
||||||
<td><input type="text" ng-model="connection.name" autocorrect="off" autocapitalize="off"/></td>
|
<td><input type="text" ng-model="connection.name" autocorrect="off" autocapitalize="off"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<!-- Edit connection location -->
|
<!-- Edit connection location -->
|
||||||
|
@@ -13,7 +13,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_CONNECTION_GROUP.FIELD_HEADER_NAME' | translate}}</th>
|
<th>{{'MANAGE_CONNECTION_GROUP.FIELD_HEADER_NAME' | translate}}</th>
|
||||||
|
|
||||||
<td><input type="text" ng-model="connectionGroup.name" autocorrect="off" autocapitalize="off"/></td>
|
<td><input type="text" ng-model="connectionGroup.name" autocorrect="off" autocapitalize="off"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<!-- Edit connection group location -->
|
<!-- Edit connection group location -->
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_SHARING_PROFILE.FIELD_HEADER_NAME' | translate}}</th>
|
<th>{{'MANAGE_SHARING_PROFILE.FIELD_HEADER_NAME' | translate}}</th>
|
||||||
<td><input type="text" ng-model="sharingProfile.name"
|
<td><input type="text" ng-model="sharingProfile.name"
|
||||||
autocorrect="off" autocapitalize="off"/></td>
|
autocorrect="off" autocapitalize="off"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_SHARING_PROFILE.FIELD_HEADER_PRIMARY_CONNECTION' | translate}}</th>
|
<th>{{'MANAGE_SHARING_PROFILE.FIELD_HEADER_PRIMARY_CONNECTION' | translate}}</th>
|
||||||
|
@@ -25,17 +25,17 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_USER.FIELD_HEADER_USERNAME' | translate}}</th>
|
<th>{{'MANAGE_USER.FIELD_HEADER_USERNAME' | translate}}</th>
|
||||||
<td>
|
<td>
|
||||||
<input ng-show="canEditUsername()" ng-model="user.username" type="text"/>
|
<input ng-show="canEditUsername()" ng-model="user.username" type="text">
|
||||||
<span ng-hide="canEditUsername()">{{user.username}}</span>
|
<span ng-hide="canEditUsername()">{{user.username}}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_USER.FIELD_HEADER_PASSWORD' | translate}}</th>
|
<th>{{'MANAGE_USER.FIELD_HEADER_PASSWORD' | translate}}</th>
|
||||||
<td><input ng-model="user.password" type="password" /></td>
|
<td><input ng-model="user.password" type="password"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_USER.FIELD_HEADER_PASSWORD_AGAIN' | translate}}</th>
|
<th>{{'MANAGE_USER.FIELD_HEADER_PASSWORD_AGAIN' | translate}}</th>
|
||||||
<td><input ng-model="passwordMatch" type="password" /></td>
|
<td><input ng-model="passwordMatch" type="password"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<th>{{'MANAGE_USER_GROUP.FIELD_HEADER_USER_GROUP_NAME' | translate}}</th>
|
<th>{{'MANAGE_USER_GROUP.FIELD_HEADER_USER_GROUP_NAME' | translate}}</th>
|
||||||
<td>
|
<td>
|
||||||
<input ng-show="canEditIdentifier()" ng-model="userGroup.identifier" type="text"/>
|
<input ng-show="canEditIdentifier()" ng-model="userGroup.identifier" type="text">
|
||||||
<span ng-hide="canEditIdentifier()">{{userGroup.identifier}}</span>
|
<span ng-hide="canEditIdentifier()">{{userGroup.identifier}}</span>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<!-- Permission checkbox -->
|
<!-- Permission checkbox -->
|
||||||
<input type="checkbox" ng-model="context.getPermissionFlags().sharingProfilePermissions.READ[item.identifier]"
|
<input type="checkbox" ng-model="context.getPermissionFlags().sharingProfilePermissions.READ[item.identifier]"
|
||||||
ng-change="context.sharingProfilePermissionChanged(item.identifier)"/>
|
ng-change="context.sharingProfilePermissionChanged(item.identifier)">
|
||||||
|
|
||||||
<!-- Sharing profile name -->
|
<!-- Sharing profile name -->
|
||||||
<span class="name">{{item.name}}</span>
|
<span class="name">{{item.name}}</span>
|
||||||
|
@@ -6,12 +6,12 @@
|
|||||||
ng-show="canChangeSystemPermissions()">
|
ng-show="canChangeSystemPermissions()">
|
||||||
<th>{{systemPermissionType.label | translate}}</th>
|
<th>{{systemPermissionType.label | translate}}</th>
|
||||||
<td><input type="checkbox" ng-model="permissionFlags.systemPermissions[systemPermissionType.value]"
|
<td><input type="checkbox" ng-model="permissionFlags.systemPermissions[systemPermissionType.value]"
|
||||||
ng-change="systemPermissionChanged(systemPermissionType.value)"/></td>
|
ng-change="systemPermissionChanged(systemPermissionType.value)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr ng-show="username">
|
<tr ng-show="username">
|
||||||
<th>{{'MANAGE_USER.FIELD_HEADER_CHANGE_OWN_PASSWORD' | translate}}</th>
|
<th>{{'MANAGE_USER.FIELD_HEADER_CHANGE_OWN_PASSWORD' | translate}}</th>
|
||||||
<td><input type="checkbox" ng-model="permissionFlags.userPermissions.UPDATE[username]"
|
<td><input type="checkbox" ng-model="permissionFlags.userPermissions.UPDATE[username]"
|
||||||
ng-change="userPermissionChanged('UPDATE', username)"/></td>
|
ng-change="userPermissionChanged('UPDATE', username)"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
<!-- Search controls -->
|
<!-- Search controls -->
|
||||||
<form class="filter" ng-submit="search()">
|
<form class="filter" ng-submit="search()">
|
||||||
<input class="search-string" type="text" placeholder="{{'SETTINGS_CONNECTION_HISTORY.FIELD_PLACEHOLDER_FILTER' | translate}}" ng-model="searchString" />
|
<input class="search-string" type="text" placeholder="{{'SETTINGS_CONNECTION_HISTORY.FIELD_PLACEHOLDER_FILTER' | translate}}" ng-model="searchString">
|
||||||
<input class="search-button" type="submit" value="{{'SETTINGS_CONNECTION_HISTORY.ACTION_SEARCH' | translate}}" />
|
<input class="search-button" type="submit" value="{{'SETTINGS_CONNECTION_HISTORY.ACTION_SEARCH' | translate}}">
|
||||||
<button type="button" ng-click="downloadCSV()">{{'SETTINGS_CONNECTION_HISTORY.ACTION_DOWNLOAD' | translate}}</button>
|
<button type="button" ng-click="downloadCSV()">{{'SETTINGS_CONNECTION_HISTORY.ACTION_DOWNLOAD' | translate}}</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
@@ -44,6 +44,6 @@
|
|||||||
'new-sharing-profile' : 'app/settings/templates/newSharingProfile.html',
|
'new-sharing-profile' : 'app/settings/templates/newSharingProfile.html',
|
||||||
'new-connection-group' : 'app/settings/templates/newConnectionGroup.html'
|
'new-connection-group' : 'app/settings/templates/newConnectionGroup.html'
|
||||||
|
|
||||||
}"/>
|
}"></guac-group-list>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -16,15 +16,15 @@
|
|||||||
<table class="fields">
|
<table class="fields">
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_OLD' | translate}}</th>
|
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_OLD' | translate}}</th>
|
||||||
<td><input ng-model="oldPassword" type="password" /></td>
|
<td><input ng-model="oldPassword" type="password"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW' | translate}}</th>
|
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW' | translate}}</th>
|
||||||
<td><input ng-model="newPassword" type="password" /></td>
|
<td><input ng-model="newPassword" type="password"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW_AGAIN' | translate}}</th>
|
<th>{{'SETTINGS_PREFERENCES.FIELD_HEADER_PASSWORD_NEW_AGAIN' | translate}}</th>
|
||||||
<td><input ng-model="newPasswordMatch" type="password" /></td>
|
<td><input ng-model="newPasswordMatch" type="password"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -43,19 +43,19 @@
|
|||||||
|
|
||||||
<!-- No IME -->
|
<!-- No IME -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<label><input id="ime-none" name="input-method" ng-model="preferences.inputMethod" type="radio" value="none"/> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_NONE' | translate}}</label>
|
<label><input id="ime-none" name="input-method" ng-model="preferences.inputMethod" type="radio" value="none"> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_NONE' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-none">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_NONE' | translate}}</label></p>
|
<p class="caption"><label for="ime-none">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_NONE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Text input -->
|
<!-- Text input -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<label><input id="ime-text" name="input-method" ng-model="preferences.inputMethod" type="radio" value="text"/> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_TEXT' | translate}}</label>
|
<label><input id="ime-text" name="input-method" ng-model="preferences.inputMethod" type="radio" value="text"> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_TEXT' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-text">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_TEXT' | translate}} </label></p>
|
<p class="caption"><label for="ime-text">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_TEXT' | translate}} </label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Guac OSK -->
|
<!-- Guac OSK -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<label><input id="ime-osk" name="input-method" ng-model="preferences.inputMethod" type="radio" value="osk"/> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_OSK' | translate}}</label>
|
<label><input id="ime-osk" name="input-method" ng-model="preferences.inputMethod" type="radio" value="osk"> {{'SETTINGS_PREFERENCES.NAME_INPUT_METHOD_OSK' | translate}}</label>
|
||||||
<p class="caption"><label for="ime-osk">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_OSK' | translate}}</label></p>
|
<p class="caption"><label for="ime-osk">{{'SETTINGS_PREFERENCES.HELP_INPUT_METHOD_OSK' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -70,18 +70,18 @@
|
|||||||
|
|
||||||
<!-- Touchscreen -->
|
<!-- Touchscreen -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<input name="mouse-mode" ng-model="preferences.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute"/>
|
<input name="mouse-mode" ng-model="preferences.emulateAbsoluteMouse" type="radio" ng-value="true" checked="checked" id="absolute">
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'SETTINGS_PREFERENCES.NAME_MOUSE_MODE_ABSOLUTE' | translate}}"/></label>
|
<label for="absolute"><img src="images/settings/touchscreen.png" alt="{{'SETTINGS_PREFERENCES.NAME_MOUSE_MODE_ABSOLUTE' | translate}}"></label>
|
||||||
<p class="caption"><label for="absolute">{{'SETTINGS_PREFERENCES.HELP_MOUSE_MODE_ABSOLUTE' | translate}}</label></p>
|
<p class="caption"><label for="absolute">{{'SETTINGS_PREFERENCES.HELP_MOUSE_MODE_ABSOLUTE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Touchpad -->
|
<!-- Touchpad -->
|
||||||
<div class="choice">
|
<div class="choice">
|
||||||
<input name="mouse-mode" ng-model="preferences.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative"/>
|
<input name="mouse-mode" ng-model="preferences.emulateAbsoluteMouse" type="radio" ng-value="false" id="relative">
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'SETTINGS_PREFERENCES.NAME_MOUSE_MODE_RELATIVE' | translate}}"/></label>
|
<label for="relative"><img src="images/settings/touchpad.png" alt="{{'SETTINGS_PREFERENCES.NAME_MOUSE_MODE_RELATIVE' | translate}}"></label>
|
||||||
<p class="caption"><label for="relative">{{'SETTINGS_PREFERENCES.HELP_MOUSE_MODE_RELATIVE' | translate}}</label></p>
|
<p class="caption"><label for="relative">{{'SETTINGS_PREFERENCES.HELP_MOUSE_MODE_RELATIVE' | translate}}</label></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -35,7 +35,7 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
<tr ng-repeat="wrapper in wrapperPage" class="session">
|
<tr ng-repeat="wrapper in wrapperPage" class="session">
|
||||||
<td class="select-session">
|
<td class="select-session">
|
||||||
<input ng-change="wrapperSelectionChange(wrapper)" type="checkbox" ng-model="wrapper.checked" />
|
<input ng-change="wrapperSelectionChange(wrapper)" type="checkbox" ng-model="wrapper.checked">
|
||||||
</td>
|
</td>
|
||||||
<td><guac-user-item username="wrapper.activeConnection.username"></guac-user-item></td>
|
<td><guac-user-item username="wrapper.activeConnection.username"></guac-user-item></td>
|
||||||
<td>{{wrapper.startDate}}</td>
|
<td>{{wrapper.startDate}}</td>
|
||||||
|
@@ -19,18 +19,18 @@
|
|||||||
-->
|
-->
|
||||||
<html ng-app="index" ng-controller="indexController">
|
<html ng-app="index" ng-controller="indexController">
|
||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<meta http-equiv="x-ua-compatible" content="IE=edge"/>
|
<meta http-equiv="x-ua-compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi"/>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=medium-dpi">
|
||||||
<meta name="mobile-web-app-capable" content="yes"/>
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
<meta name="apple-mobile-web-app-capable" content="yes"/>
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||||
<link rel="icon" type="image/png" href="images/logo-64.png"/>
|
<link rel="icon" type="image/png" href="images/logo-64.png">
|
||||||
<link rel="icon" type="image/png" sizes="144x144" href="images/logo-144.png"/>
|
<link rel="icon" type="image/png" sizes="144x144" href="images/logo-144.png">
|
||||||
<link rel="apple-touch-icon" type="image/png" href="images/logo-144.png"/>
|
<link rel="apple-touch-icon" type="image/png" href="images/logo-144.png">
|
||||||
|
|
||||||
<!-- Web application CSS (bundled by Webpack) -->
|
<!-- Web application CSS (bundled by Webpack) -->
|
||||||
<% for (var index in htmlWebpackPlugin.files.css) { %>
|
<% for (var index in htmlWebpackPlugin.files.css) { %>
|
||||||
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.files.css[index] %>"/>
|
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.files.css[index] %>">
|
||||||
<% } %>
|
<% } %>
|
||||||
|
|
||||||
<!-- Extension CSS (must be able to override webapp CSS) -->
|
<!-- Extension CSS (must be able to override webapp CSS) -->
|
||||||
|
Reference in New Issue
Block a user