1
0
mirror of https://github.com/bitwarden/directory-connector synced 2025-12-11 05:43:26 +00:00

layout styling

This commit is contained in:
Kyle Spearrin
2018-04-27 18:22:27 -04:00
parent 2800c2f077
commit 4145de7662
4 changed files with 234 additions and 196 deletions

View File

@@ -1,5 +1,9 @@
<form (ngSubmit)="submit()">
<h2>Directory</h2>
<div class="row">
<div class="col-sm">
<div class="card">
<h5 class="card-header">{{'directory' | i18n}}</h5>
<div class="card-body">
<div class="form-group">
<label for="directory">{{'type' | i18n}}</label>
<select class="form-control" id="directory" name="Directory" [(ngModel)]="directory">
@@ -7,62 +11,55 @@
</select>
</div>
<div [hidden]="directory != directoryType.Ldap">
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="ssl" [(ngModel)]="ldap.ssl" name="SSL">
<label class="form-check-label" for="ssl">SSL (LDAPS)</label>
</div>
</div>
<div class="form-group">
<label for="hostname">{{'serverHostname' | i18n}}</label>
<input type="text" class="form-control" id="hostname" name="Hostname"
placeholder="{{'ex' | i18n}} ad.company.com" [(ngModel)]="ldap.hostname">
<input type="text" class="form-control" id="hostname" name="Hostname" placeholder="{{'ex' | i18n}} ad.company.com" [(ngModel)]="ldap.hostname">
</div>
<div class="form-group">
<label for="port">{{'port' | i18n}}</label>
<input type="text" class="form-control" id="port" name="Port" placeholder="{{'ex' | i18n}} 389"
[(ngModel)]="ldap.port">
<input type="text" class="form-control" id="port" name="Port" placeholder="{{'ex' | i18n}} 389" [(ngModel)]="ldap.port">
</div>
<div class="form-group">
<label for="rootPath">{{'rootPath' | i18n}}</label>
<input type="text" class="form-control" id="rootPath" name="RootPath" [(ngModel)]="ldap.rootPath"
placeholder="{{'ex' | i18n}} DC=ad,DC=company,DC=com">
<input type="text" class="form-control" id="rootPath" name="RootPath" [(ngModel)]="ldap.rootPath" placeholder="{{'ex' | i18n}} DC=ad,DC=company,DC=com">
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="currentUser" [(ngModel)]="ldap.currentUser"
name="CurrentUser">
<input class="form-check-input" type="checkbox" id="ssl" [(ngModel)]="ldap.ssl" name="SSL">
<label class="form-check-label" for="ssl">{{'ldapSsl' | i18n}}</label>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="ad" [(ngModel)]="ldap.ad" name="AD">
<label class="form-check-label" for="ad">{{'ldapAd' | i18n}}</label>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="currentUser" [(ngModel)]="ldap.currentUser" name="CurrentUser">
<label class="form-check-label" for="currentUser">{{'currentUser' | i18n}}</label>
</div>
</div>
<div [hidden]="ldap.currentUser">
<div class="form-group">
<label for="username">{{'username' | i18n}}</label>
<input type="text" class="form-control" id="username" name="Username" [(ngModel)]="ldap.username"
placeholder="{{'ex' | i18n}} admin@company.com">
<input type="text" class="form-control" id="username" name="Username" [(ngModel)]="ldap.username" placeholder="{{'ex' | i18n}} admin@company.com">
</div>
<div class="form-group">
<label for="password">{{'password' | i18n}}</label>
<input type="password" class="form-control" id="password" name="Password" [(ngModel)]="ldap.password">
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="ad" [(ngModel)]="ldap.ad" name="AD">
<label class="form-check-label" for="ad">Active Directory</label>
</div>
</div>
</div>
<div [hidden]="directory != directoryType.AzureActiveDirectory">
<div class="form-group">
<label for="tenant">{{'tenant' | i18n}}</label>
<input type="text" class="form-control" id="tenant" name="Tenant" [(ngModel)]="azure.tenant"
placeholder="{{'ex' | i18n}} companyad.onmicrosoft.com">
<input type="text" class="form-control" id="tenant" name="Tenant" [(ngModel)]="azure.tenant" placeholder="{{'ex' | i18n}} companyad.onmicrosoft.com">
</div>
<div class="form-group">
<label for="applicationId">{{'applicationId' | i18n}}</label>
<input type="text" class="form-control" id="applicationId" name="ApplicationId"
[(ngModel)]="azure.applicationId">
<input type="text" class="form-control" id="applicationId" name="ApplicationId" [(ngModel)]="azure.applicationId">
</div>
<div class="form-group">
<label for="secretKey">{{'secretKey' | i18n}}</label>
@@ -72,23 +69,19 @@
<div [hidden]="directory != directoryType.GSuite">
<div class="form-group">
<label for="domain">{{'domain' | i18n}}</label>
<input type="text" class="form-control" id="domain" name="Domain" [(ngModel)]="gsuite.domain"
placeholder="{{'ex' | i18n}} company.com">
<input type="text" class="form-control" id="domain" name="Domain" [(ngModel)]="gsuite.domain" placeholder="{{'ex' | i18n}} company.com">
</div>
<div class="form-group">
<label for="adminUser">{{'adminUser' | i18n}}</label>
<input type="text" class="form-control" id="adminUser" name="AdminUser" [(ngModel)]="gsuite.adminUser"
placeholder="{{'ex' | i18n}} admin@company.com">
<input type="text" class="form-control" id="adminUser" name="AdminUser" [(ngModel)]="gsuite.adminUser" placeholder="{{'ex' | i18n}} admin@company.com">
</div>
<div class="form-group">
<label for="customerId">{{'customerId' | i18n}}</label>
<input type="text" class="form-control" id="customerId" name="CustomerId" [(ngModel)]="gsuite.customer"
placeholder="{{'ex' | i18n}} 39204722352">
<input type="text" class="form-control" id="customerId" name="CustomerId" [(ngModel)]="gsuite.customer" placeholder="{{'ex' | i18n}} 39204722352">
</div>
<div class="form-group">
<label for="clientEmail">{{'clientEmail' | i18n}}</label>
<input type="text" class="form-control" id="clientEmail" name="ClientEmail"
[(ngModel)]="gsuite.clientEmail">
<input type="text" class="form-control" id="clientEmail" name="ClientEmail" [(ngModel)]="gsuite.clientEmail">
</div>
<div class="form-group">
<label for="privateKey">{{'privateKey' | i18n}}</label>
@@ -96,31 +89,38 @@
</textarea>
</div>
</div>
<h2>Sync</h2>
</div>
</div>
</div>
<div class="col-sm">
<div class="card">
<h5 class="card-header">{{'sync' | i18n}}</h5>
<div class="card-body">
<div class="form-group">
<label for="interval">{{'interval' | i18n}}</label>
<input type="number" min="5" class="form-control" id="interval" name="Interval" [(ngModel)]="sync.interval">
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="removeDisabled" [(ngModel)]="sync.removeDisabled"
name="RemoveDisabled">
<label class="form-check-label" for="removeDisabled">{{'removeDisabled' | i18n}}</label>
</div>
<input type="number" min="5" class="form-control" id="interval" name="Interval" [(ngModel)]="sync.interval" placeholder="{{'ex' | i18n}} 5">
</div>
<div class="form-group">
<label for="memberAttribute">{{'memberAttribute' | i18n}}</label>
<input type="text" class="form-control" id="memberAttribute" name="MemberAttribute" [(ngModel)]="sync.memberAttribute">
<input type="text" class="form-control" id="memberAttribute" name="MemberAttribute" [(ngModel)]="sync.memberAttribute" placeholder="{{'ex' | i18n}} member">
</div>
<div class="form-group">
<label for="creationDateAttribute">{{'creationDateAttribute' | i18n}}</label>
<input type="text" class="form-control" id="creationDateAttribute" name="CreationDateAttribute" [(ngModel)]="sync.creationDateAttribute">
<input type="text" class="form-control" id="creationDateAttribute" name="CreationDateAttribute" [(ngModel)]="sync.creationDateAttribute"
placeholder="{{'ex' | i18n}} whenCreated">
</div>
<div class="form-group">
<label for="revisionDateAttribute">{{'revisionDateAttribute' | i18n}}</label>
<input type="text" class="form-control" id="revisionDateAttribute" name="RevisionDateAttribute" [(ngModel)]="sync.revisionDateAttribute">
<input type="text" class="form-control" id="revisionDateAttribute" name="RevisionDateAttribute" [(ngModel)]="sync.revisionDateAttribute"
placeholder="{{'ex' | i18n}} whenChanged">
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="removeDisabled" [(ngModel)]="sync.removeDisabled" name="RemoveDisabled">
<label class="form-check-label" for="removeDisabled">{{'removeDisabled' | i18n}}</label>
</div>
</div>
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="useEmailPrefixSuffix" [(ngModel)]="sync.useEmailPrefixSuffix" name="UseEmailPrefixSuffix">
@@ -130,11 +130,12 @@
<div [hidden]="!sync.useEmailPrefixSuffix">
<div class="form-group">
<label for="emailPrefixAttribute">{{'emailPrefixAttribute' | i18n}}</label>
<input type="text" class="form-control" id="emailPrefixAttribute" name="EmailPrefixAttribute" [(ngModel)]="sync.emailPrefixAttribute">
<input type="text" class="form-control" id="emailPrefixAttribute" name="EmailPrefixAttribute" [(ngModel)]="sync.emailPrefixAttribute"
placeholder="{{'ex' | i18n}} sAMAccountName">
</div>
<div class="form-group">
<label for="emailSuffix">{{'emailSuffix' | i18n}}</label>
<input type="text" class="form-control" id="emailSuffix" name="EmailSuffix" [(ngModel)]="sync.emailSuffix">
<input type="text" class="form-control" id="emailSuffix" name="EmailSuffix" [(ngModel)]="sync.emailSuffix" placeholder="{{'ex' | i18n}} @company.com">
</div>
</div>
@@ -144,20 +145,23 @@
<label class="form-check-label" for="syncUsers">{{'syncUsers' | i18n}}</label>
</div>
</div>
<div [hidden]="!sync.users">
<div class="form-group">
<label for="userFilter">{{'userFilter' | i18n}}</label>
<textarea class="form-control" id="userFilter" name="UserFilter" [(ngModel)]="sync.userFilter">
</textarea>
<textarea class="form-control" id="userFilter" name="UserFilter" [(ngModel)]="sync.userFilter" placeholder="{{'ex' | i18n}} (&amp;(objectClass=user))"></textarea>
</div>
<div class="form-group">
<label for="userObjectClass">{{'userObjectClass' | i18n}}</label>
<input type="text" class="form-control" id="userObjectClass" name="UserObjectClass" [(ngModel)]="sync.userObjectClass">
<input type="text" class="form-control" id="userObjectClass" name="UserObjectClass" [(ngModel)]="sync.userObjectClass" placeholder="{{'ex' | i18n}} user">
</div>
<div class="form-group">
<label for="userPath">{{'userPath' | i18n}}</label>
<input type="text" class="form-control" id="userPath" name="UserPath" [(ngModel)]="sync.userPath">
<input type="text" class="form-control" id="userPath" name="UserPath" [(ngModel)]="sync.userPath" placeholder="{{'ex' | i18n}} CN=Users">
</div>
<div class="form-group">
<label for="userEmailAttribute">{{'userEmailAttribute' | i18n}}</label>
<input type="text" class="form-control" id="userEmailAttribute" name="UserEmailAttribute" [(ngModel)]="sync.userEmailAttribute"
placeholder="{{'ex' | i18n}} mail">
</div>
</div>
@@ -167,28 +171,32 @@
<label class="form-check-label" for="syncGroups">{{'syncGroups' | i18n}}</label>
</div>
</div>
<div [hidden]="!sync.groups">
<div class="form-group">
<label for="groupFilter">{{'groupFilter' | i18n}}</label>
<textarea class="form-control" id="groupFilter" name="GroupFilter" [(ngModel)]="sync.groupFilter">
</textarea>
<textarea class="form-control" id="groupFilter" name="GroupFilter" [(ngModel)]="sync.groupFilter" placeholder="{{'ex' | i18n}} (&amp;(objectClass=group))"></textarea>
</div>
<div class="form-group">
<label for="groupObjectClass">{{'groupObjectClass' | i18n}}</label>
<input type="text" class="form-control" id="groupObjectClass" name="GroupObjectClass" [(ngModel)]="sync.groupObjectClass">
<input type="text" class="form-control" id="groupObjectClass" name="GroupObjectClass" [(ngModel)]="sync.groupObjectClass"
placeholder="{{'ex' | i18n}} group">
</div>
<div class="form-group">
<label for="groupPath">{{'groupPath' | i18n}}</label>
<input type="text" class="form-control" id="groupPath" name="GroupPath" [(ngModel)]="sync.groupPath">
<input type="text" class="form-control" id="groupPath" name="GroupPath" [(ngModel)]="sync.groupPath" placeholder="{{'ex' | i18n}} CN=Groups">
</div>
<div class="form-group">
<label for="groupNameAttribute">{{'groupNameAttribute' | i18n}}</label>
<input type="text" class="form-control" id="groupNameAttribute" name="GroupNameAttribute" [(ngModel)]="sync.groupNameAttribute">
<input type="text" class="form-control" id="groupNameAttribute" name="GroupNameAttribute" [(ngModel)]="sync.groupNameAttribute"
placeholder="{{'ex' | i18n}} name">
</div>
</div>
</div>
</div>
</div>
</div>
<button appBlurClick type="submit" class="btn btn-primary">
<i class="fa fa-save fa-fw"></i>
{{'save' | i18n}}
</button>
</form>

View File

@@ -1,13 +1,17 @@
<div class="tab-page">
<nav class="nav flex-column">
<div class="container-fluid">
<ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link" routerLink="dashboard" routerLinkActive="active">
<i class="fa fa-rocket"></i>
{{'masterPass' | i18n}}
<i class="fa fa-dashboard"></i>
{{'dashboard' | i18n}}
</a>
</li>
<li class="nav-item">
<a class="nav-link" routerLink="settings" routerLinkActive="active">
<i class="fa fa-cogs"></i>
{{'settings' | i18n}}
</a>
</nav>
</li>
</ul>
<router-outlet></router-outlet>
</div>

View File

@@ -331,7 +331,7 @@
"message": "Directory"
},
"currentUser": {
"message": "Current user"
"message": "Authenticate as current user"
},
"rootPath": {
"message": "Root Path"
@@ -410,5 +410,23 @@
},
"groupNameAttribute": {
"message": "Group Name Attribute"
},
"userEmailAttribute": {
"message": "User Email Attribute"
},
"sync": {
"message": "Sync"
},
"ldapSsl": {
"message": "This connection uses SSL (LDAPS)"
},
"ldapAd": {
"message": "This LDAP server is Active Directory"
},
"select": {
"message": "Select"
},
"dashboard": {
"message": "Dashboard"
}
}

View File

@@ -1,5 +1,9 @@
@import "bootstrap.scss";
body {
padding: 10px 0 20px 0;
}
h1 {
border-bottom: 1px solid $border-color;
margin-bottom: 20px;
@@ -19,6 +23,10 @@ h3 {
text-transform: uppercase;
}
.nav.nav-tabs {
margin-bottom: 20px;
}
#duo-frame {
background: url('../images/loading.svg') 0 0 no-repeat;
height: 330px;