Merge pull request #3287 from ssilvert/empty-state-user-fed

KEYCLOAK-3650: Empty state for User Federation
This commit is contained in:
Stan Silvert 2016-10-04 17:19:57 -04:00 committed by GitHub
commit 38d1dea65e
2 changed files with 50 additions and 26 deletions

View file

@ -5,7 +5,7 @@
<span class="fa fa-exchange"></span> <span class="fa fa-exchange"></span>
</div> </div>
<h1> <h1>
Identity Providers {{:: 'identity-providers' | translate}}
</h1> </h1>
<p class=""> <p class="">
Through Identity Brokering it's easy to allow users to authenticate to Keycloak using external Identity Providers or Social Networks.<br> We have built-in support for OpenID Connect and SAML 2.0 as well as a number of social networks such as Google, GitHub, Facebook and Twitter. Through Identity Brokering it's easy to allow users to authenticate to Keycloak using external Identity Providers or Social Networks.<br> We have built-in support for OpenID Connect and SAML 2.0 as well as a number of social networks such as Google, GitHub, Facebook and Twitter.

View file

@ -3,39 +3,63 @@
<span>{{:: 'user-federation' | translate}}</span> <span>{{:: 'user-federation' | translate}}</span>
</h1> </h1>
<table class="table table-striped table-bordered"> <div class="blank-slate-pf" data-ng-hide="instances && instances.length > 0">
<thead> <div class="blank-slate-pf-icon">
<tr ng-show="providers.length > 0 && access.manageUsers"> <span class="fa fa-database"></span>
<th colspan="5" class="kc-table-actions"> </div>
<div class="pull-right"> <h1>
<div> {{:: 'user-federation' | translate}}
<select class="form-control" ng-model="selectedProvider" </h1>
<p>Keycloak can federate external user databases. Out of the box we have support for LDAP and Active Directory.</p>
<p>To get started select a provider from the dropdown below:</p>
<div class="blank-slate-pf-main-action">
<div class="row" data-ng-show="access.manageUsers">
<div class="col-sm-4 col-sm-offset-4">
<div class="form-group">
<select class="selectpicker form-control" ng-model="selectedProvider"
ng-options="p.id for p in providers" ng-options="p.id for p in providers"
data-ng-change="addProvider(selectedProvider); selectedProvider = null"> data-ng-change="addProvider(selectedProvider); selectedProvider = null">
<option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option> <option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
</select> </select>
</div> </div>
</div> </div>
</th> </div>
</tr> </div>
<tr data-ng-show="instances && instances.length > 0"> </div>
<th>{{:: 'id' | translate}}</th>
<th>{{:: 'provider-name' | translate}}</th> <table class="table table-striped table-bordered" data-ng-show="instances && instances.length > 0">
<th>{{:: 'priority' | translate}}</th> <thead>
<th colspan="2">{{:: 'actions' | translate}}</th> <tr ng-show="providers.length > 0 && access.manageUsers">
</tr> <th colspan="5" class="kc-table-actions">
<div class="pull-right">
<div>
<select class="form-control" ng-model="selectedProvider"
ng-options="p.id for p in providers"
data-ng-change="addProvider(selectedProvider); selectedProvider = null">
<option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
</select>
</div>
</div>
</th>
</tr>
<tr data-ng-show="instances && instances.length > 0">
<th>{{:: 'id' | translate}}</th>
<th>{{:: 'provider-name' | translate}}</th>
<th>{{:: 'priority' | translate}}</th>
<th colspan="2">{{:: 'actions' | translate}}</th>
</tr>
</thead> </thead>
<tbody> <tbody>
<tr ng-repeat="instance in instances"> <tr ng-repeat="instance in instances">
<td><a href="#{{getInstanceLink(instance)}}">{{getInstanceName(instance)}}</a></td> <td><a href="#{{getInstanceLink(instance)}}">{{getInstanceName(instance)}}</a></td>
<td>{{getInstanceProvider(instance)|capitalize}}</td> <td>{{getInstanceProvider(instance) | capitalize}}</td>
<td>{{getInstancePriority(instance)}}</td> <td>{{getInstancePriority(instance)}}</td>
<td class="kc-action-cell" kc-open="{{getInstanceLink(instance)}}">{{:: 'edit' | translate}}</td> <td class="kc-action-cell" kc-open="{{getInstanceLink(instance)}}">{{:: 'edit' | translate}}</td>
<td class="kc-action-cell" data-ng-click="removeInstance(instance)">{{:: 'delete' | translate}}</td> <td class="kc-action-cell" data-ng-click="removeInstance(instance)">{{:: 'delete' | translate}}</td>
</tr> </tr>
<tr data-ng-show="!instances || instances.length == 0"> <tr data-ng-show="!instances || instances.length == 0">
<td class="text-muted">{{:: 'no-user-federation-providers-configured' | translate}}</td> <td class="text-muted">{{:: 'no-user-federation-providers-configured' | translate}}</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>