GUAC-1120: Use flex layout for headers containing the user menu.

This commit is contained in:
Michael Jumper
2015-03-11 22:50:53 -07:00
parent 563a1d1af2
commit 38d3d1930c
8 changed files with 119 additions and 48 deletions

View File

@@ -24,17 +24,17 @@
<div class="connection-list-ui"> <div class="connection-list-ui">
<!-- User menu -->
<guac-user-menu permissions="permissions"></guac-user-menu>
<!-- The recent connections for this user --> <!-- The recent connections for this user -->
<h2>{{'HOME.SECTION_HEADER_RECENT_CONNECTIONS' | translate}}</h2> <div class="header">
<h2>{{'HOME.SECTION_HEADER_RECENT_CONNECTIONS' | translate}}</h2>
<guac-user-menu permissions="permissions"></guac-user-menu>
</div>
<div class="recent-connections"> <div class="recent-connections">
<guac-recent-connections root-group="rootConnectionGroup"></guac-recent-connections> <guac-recent-connections root-group="rootConnectionGroup"></guac-recent-connections>
</div> </div>
<!-- All connections for this user --> <!-- All connections for this user -->
<h2>{{'HOME.SECTION_HEADER_ALL_CONNECTIONS' | translate}}</h2> <h2 class="header">{{'HOME.SECTION_HEADER_ALL_CONNECTIONS' | translate}}</h2>
<div class="all-connections"> <div class="all-connections">
<guac-group-list <guac-group-list
connection-group="rootConnectionGroup" connection-group="rootConnectionGroup"

View File

@@ -51,12 +51,15 @@ h1 {
} }
h2 { h2 {
font-size: 1.25em; font-size: 1.25em;
font-weight: bold; font-weight: bold;
padding: 0.75em 0.5em;
text-transform: uppercase; text-transform: uppercase;
padding: 0.75em 0.5em;
margin: 0;
}
.header {
border-bottom: 1px solid rgba(0, 0, 0, 0.125); border-bottom: 1px solid rgba(0, 0, 0, 0.125);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.125);
background: rgba(0, 0, 0, 0.04); background: rgba(0, 0, 0, 0.04);
@@ -64,13 +67,47 @@ h2 {
margin-bottom: 1em; margin-bottom: 1em;
margin-top: 0; margin-top: 0;
border-top: none; border-top: none;
/* IE10 */
display: -ms-flexbox;
-ms-flex-align: stretch;
-ms-flex-direction: row;
/* Ancient Mozilla */
display: -moz-box;
-moz-box-align: stretch;
-moz-box-orient: horizontal;
/* Ancient WebKit */
display: -webkit-box;
-webkit-box-align: stretch;
-webkit-box-orient: horizontal;
/* Old WebKit */
display: -webkit-flex;
-webkit-align-items: stretch;
-webkit-flex-direction: row;
/* W3C */
display: flex;
align-items: stretch;
flex-direction: row;
} }
h2 ~ h2 { .header ~ .header {
margin-top: 1em; margin-top: 1em;
border-top: 1px solid rgba(0, 0, 0, 0.125); border-top: 1px solid rgba(0, 0, 0, 0.125);
} }
.header h2 {
-ms-flex: 1 1 auto;
-moz-box-flex: 1;
-webkit-box-flex: 1;
-webkit-flex: 1 1 auto;
flex: 1 1 auto;
}
div.section { div.section {
margin: 1em; margin: 1em;
padding: 0; padding: 0;

View File

@@ -22,10 +22,10 @@ THE SOFTWARE.
<div class="view" ng-class="{loading: !isLoaded()}"> <div class="view" ng-class="{loading: !isLoaded()}">
<!-- User menu --> <div class="header">
<guac-user-menu permissions="permissions"></guac-user-menu> <h2>{{'MANAGE.SECTION_HEADER_ADMINISTRATION' | translate}}</h2>
<guac-user-menu permissions="permissions"></guac-user-menu>
<h2>{{'MANAGE.SECTION_HEADER_ADMINISTRATION' | translate}}</h2> </div>
<!-- User management --> <!-- User management -->
<div class="settings section" ng-show="canManageUsers"> <div class="settings section" ng-show="canManageUsers">

View File

@@ -22,11 +22,11 @@ THE SOFTWARE.
<div class="view" ng-class="{loading: !isLoaded()}"> <div class="view" ng-class="{loading: !isLoaded()}">
<!-- User menu -->
<guac-user-menu permissions="permissions"></guac-user-menu>
<!-- Main property editor --> <!-- Main property editor -->
<h2>{{'MANAGE_CONNECTION.SECTION_HEADER_EDIT_CONNECTION' | translate}}</h2> <div class="header">
<h2>{{'MANAGE_CONNECTION.SECTION_HEADER_EDIT_CONNECTION' | translate}}</h2>
<guac-user-menu permissions="permissions"></guac-user-menu>
</div>
<div class="section"> <div class="section">
<table class="properties"> <table class="properties">
@@ -58,7 +58,7 @@ THE SOFTWARE.
</div> </div>
<!-- Connection parameters --> <!-- Connection parameters -->
<h2>{{'MANAGE_CONNECTION.SECTION_HEADER_PARAMETERS' | translate}}</h2> <h2 class="header">{{'MANAGE_CONNECTION.SECTION_HEADER_PARAMETERS' | translate}}</h2>
<div class="section" ng-class="{loading: !parameters}"> <div class="section" ng-class="{loading: !parameters}">
<table class="properties"> <table class="properties">
@@ -81,7 +81,7 @@ THE SOFTWARE.
</div> </div>
<!-- Connection history --> <!-- Connection history -->
<h2>{{'MANAGE_CONNECTION.SECTION_HEADER_HISTORY' | translate}}</h2> <h2 class="header">{{'MANAGE_CONNECTION.SECTION_HEADER_HISTORY' | translate}}</h2>
<div class="history section" ng-class="{loading: !historyEntryWrappers}"> <div class="history section" ng-class="{loading: !historyEntryWrappers}">
<p ng-hide="historyEntryWrappers.length">{{'MANAGE_CONNECTION.INFO_CONNECTION_NOT_USED' | translate}}</p> <p ng-hide="historyEntryWrappers.length">{{'MANAGE_CONNECTION.INFO_CONNECTION_NOT_USED' | translate}}</p>

View File

@@ -22,11 +22,11 @@ THE SOFTWARE.
<div class="view" ng-class="{loading: !isLoaded()}"> <div class="view" ng-class="{loading: !isLoaded()}">
<!-- User menu -->
<guac-user-menu permissions="permissions"></guac-user-menu>
<!-- Main property editor --> <!-- Main property editor -->
<h2>{{'MANAGE_CONNECTION_GROUP.SECTION_HEADER_EDIT_CONNECTION_GROUP' | translate}}</h2> <div class="header">
<h2>{{'MANAGE_CONNECTION_GROUP.SECTION_HEADER_EDIT_CONNECTION_GROUP' | translate}}</h2>
<guac-user-menu permissions="permissions"></guac-user-menu>
</div>
<div class="section"> <div class="section">
<table class="properties"> <table class="properties">

View File

@@ -22,11 +22,11 @@ THE SOFTWARE.
<div class="view" ng-class="{loading: !isLoaded()}"> <div class="view" ng-class="{loading: !isLoaded()}">
<!-- User menu -->
<guac-user-menu permissions="permissions"></guac-user-menu>
<!-- Main property editor --> <!-- Main property editor -->
<h2>{{'MANAGE_USER.SECTION_HEADER_EDIT_USER' | translate}}</h2> <div class="header">
<h2>{{'MANAGE_USER.SECTION_HEADER_EDIT_USER' | translate}}</h2>
<guac-user-menu permissions="permissions"></guac-user-menu>
</div>
<div class="section"> <div class="section">
<table class="properties"> <table class="properties">
<tr> <tr>
@@ -48,7 +48,7 @@ THE SOFTWARE.
</div> </div>
<!-- System permissions section --> <!-- System permissions section -->
<h2>{{'MANAGE_USER.SECTION_HEADER_PERMISSIONS' | translate}}</h2> <h2 class="header">{{'MANAGE_USER.SECTION_HEADER_PERMISSIONS' | translate}}</h2>
<div class="section"> <div class="section">
<table class="properties"> <table class="properties">
<tr ng-repeat="systemPermissionType in systemPermissionTypes"> <tr ng-repeat="systemPermissionType in systemPermissionTypes">
@@ -60,7 +60,7 @@ THE SOFTWARE.
</div> </div>
<!-- Connection and connection group permission section --> <!-- Connection and connection group permission section -->
<h2>{{'MANAGE_USER.SECTION_HEADER_CONNECTIONS' | translate}}</h2> <h2 class="header">{{'MANAGE_USER.SECTION_HEADER_CONNECTIONS' | translate}}</h2>
<div class="section" ng-class="{loading: !rootGroup}"> <div class="section" ng-class="{loading: !rootGroup}">
<guac-group-list <guac-group-list
context="groupListContext" context="groupListContext"

View File

@@ -20,14 +20,42 @@
* THE SOFTWARE. * THE SOFTWARE.
*/ */
.user-menu { .user-menu .user-menu-dropdown {
float: right;
position: relative; position: relative;
border-left: 1px solid rgba(0,0,0,0.125);
background: rgba(0,0,0,0.04);
/* IE10 */
display: -ms-flexbox;
-ms-flex-align: center;
-ms-flex-direction: row;
/* Ancient Mozilla */
display: -moz-box;
-moz-box-align: center;
-moz-box-orient: horizontal;
/* Ancient WebKit */
display: -webkit-box;
-webkit-box-align: center;
-webkit-box-orient: horizontal;
/* Old WebKit */
display: -webkit-flex;
-webkit-align-items: center;
-webkit-flex-direction: row;
/* W3C */
display: flex;
align-items: center;
flex-direction: row;
z-index: 5;
} }
.user-menu a.username { .user-menu .username {
display: block;
margin: 0; margin: 0;
min-width: 1.75in; min-width: 1.75in;
@@ -35,8 +63,6 @@
font-size: 1.25em; font-size: 1.25em;
font-weight: bold; font-weight: bold;
padding: .75em .5em; padding: .75em .5em;
border-left: 1px solid rgba(0,0,0,0.125);
background: rgba(0,0,0,0.04);
padding-left: 2em; padding-left: 2em;
background-repeat: no-repeat; background-repeat: no-repeat;
@@ -44,21 +70,27 @@
background-position: 0.5em 0.75em; background-position: 0.5em 0.75em;
background-image: url('images/user-icons/guac-user.png'); background-image: url('images/user-icons/guac-user.png');
-ms-flex: 0 0 auto;
-moz-box-flex: 0;
-webkit-box-flex: 0;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
} }
.user-menu .options { .user-menu .options {
position: absolute; position: absolute;
top: 100%;
right: 0; right: 0;
left: -1px;
margin: 0; margin: 0;
padding: 0; padding: 0;
min-width: 100%;
background: #EEE; background: #EEE;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.125); box-shadow: 0 2px 2px rgba(0, 0, 0, 0.125);
border-left: 1px solid rgba(0,0,0,0.125); border-left: 1px solid rgba(0,0,0,0.125);
border-bottom: 1px solid rgba(0,0,0,0.125); border-bottom: 1px solid rgba(0,0,0,0.125);
z-index: 0;
} }
@@ -121,7 +153,7 @@
margin: 1em; margin: 1em;
right: 0; right: 0;
top: 0; top: 0;
z-index: 1; z-index: 8;
} }
.user-menu .password-dialog.shown { .user-menu .password-dialog.shown {

View File

@@ -21,15 +21,17 @@
THE SOFTWARE. THE SOFTWARE.
--> -->
<a class="username">{{username}}</a> <div class="user-menu-dropdown">
<div class="username">{{username}}</div>
<!-- Menu options --> <!-- Menu options -->
<ul class="options"> <ul class="options">
<li><a class="home" href="#/">{{'USER_MENU.ACTION_NAVIGATE_HOME' | translate}}</a></li> <li><a class="home" href="#/">{{'USER_MENU.ACTION_NAVIGATE_HOME' | translate}}</a></li>
<li><a class="manage" ng-show="canManageGuacamole" href="#/manage/">{{'USER_MENU.ACTION_MANAGE' | translate}}</a></li> <li><a class="manage" ng-show="canManageGuacamole" href="#/manage/">{{'USER_MENU.ACTION_MANAGE' | translate}}</a></li>
<li><a class="change-password" ng-click="showPasswordUpdate()" ng-show="canChangePassword">{{'USER_MENU.ACTION_CHANGE_PASSWORD' | translate}}</a></li> <li><a class="change-password" ng-click="showPasswordUpdate()" ng-show="canChangePassword">{{'USER_MENU.ACTION_CHANGE_PASSWORD' | translate}}</a></li>
<li><a class="logout" ng-click="logout()">{{'USER_MENU.ACTION_LOGOUT' | translate}}</a></li> <li><a class="logout" ng-click="logout()">{{'USER_MENU.ACTION_LOGOUT' | translate}}</a></li>
</ul> </ul>
</div>
<!-- Password dialog --> <!-- Password dialog -->
<div class="password-dialog" ng-class="{shown: showPasswordDialog}"> <div class="password-dialog" ng-class="{shown: showPasswordDialog}">