<div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2"> <ol class="breadcrumb"> <li><a href="#/realms/{{realm.realm}}/clients">{{:: 'clients' | translate}}</a></li> <li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}">{{client.clientId}}</a></li> <li><a href="#/realms/{{realm.realm}}/clients/{{client.id}}/roles">{{:: 'roles' | translate}}</a></li> <li data-ng-show="create">{{:: 'add-role' | translate}}</li> <li data-ng-hide="create">{{role.name}}</li> </ol> <kc-tabs-client-role></kc-tabs-client-role> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!client.access.configure"> <fieldset class="border-top"> <div class="form-group"> <label class="col-md-2 control-label" for="name">{{:: 'role-name' | translate}} <span class="required" data-ng-show="create">*</span></label> <div class="col-md-6"> <input class="form-control" type="text" id="name" name="name" data-ng-model="role.name" autofocus required data-ng-readonly="!create"> </div> </div> <div class="form-group"> <label class="col-md-2 control-label" for="description">{{:: 'description' | translate}} </label> <div class="col-md-6"> <textarea class="form-control" rows="5" cols="50" id="description" name="description" data-ng-model="role.description"></textarea> <!-- Replaced by the textarea above <input type="text" id="description" name="description" data-ng-model="role.description" autofocus required> --> </div> </div> <div class="form-group clearfix block" data-ng-hide="create"> <label class="col-md-2 control-label" for="compositeSwitch" class="control-label">{{:: 'composite-roles' | translate}}</label> <div class="col-md-6"> <input ng-model="compositeSwitch" name="compositeSwitch" id="compositeSwitch" ng-disabled="compositeSwitchDisabled" onoffswitch on-text="{{:: 'onText' | translate}}" off-text="{{:: 'offText' | translate}}" /> </div> <kc-tooltip>{{:: 'composite-roles.tooltip' | translate}}</kc-tooltip> </div> </fieldset> <div class="form-group"> <div class="col-md-10 col-md-offset-2" data-ng-show="create && client.access.configure"> <button kc-save>{{:: 'save' | translate}}</button> <button kc-cancel data-ng-click="cancel()">{{:: 'cancel' | translate}}</button> </div> </div> <div class="form-group"> <div class="col-md-10 col-md-offset-2" data-ng-show="!create && client.access.configure"> <button kc-save data-ng-disabled="!changed">{{:: 'save' | translate}}</button> <button kc-reset data-ng-disabled="!changed">{{:: 'cancel' | translate}}</button> </div> </div> <fieldset data-ng-show="!create && (compositeSwitch || role.composite)"> <legend uncollapsed><span class="text">{{:: 'composite-roles' | translate}}</span> </legend> <div class="form-group"> <label class="col-md-2 control-label" class="control-label">{{:: 'realm-roles' | translate}}</label> <div class="col-md-10"> <div class="row"> <div class="col-md-4"> <label class="control-label" for="available">{{:: 'available-roles' | translate}}</label> <kc-tooltip>{{:: 'composite.available-realm-roles.tooltip' | translate}}</kc-tooltip> <select id="available" class="form-control overflow-select" multiple size="5" ng-multiple="true" ng-model="selectedRealmRoles"> <option ng-repeat="r in realmRoles | orderBy:'name'" value="{{r}}" title="{{r.name}}"> {{r.name}} </option> </select> <button ng-disabled="selectedRealmRoles.length == 0" class="btn btn-default" type="submit" ng-click="addRealmRole()"> {{:: 'add-selected' | translate}} <i class="fa fa-angle-double-right"></i> </button> </div> <div class="col-md-4"> <label class="control-label" for="assigned">{{:: 'associated-roles' | translate}}</label> <kc-tooltip>{{:: 'composite.associated-realm-roles.tooltip' | translate}}</kc-tooltip> <select id="assigned" class="form-control overflow-select" multiple size=5 ng-multiple="true" ng-model="selectedRealmMappings"> <option ng-repeat="r in realmMappings | orderBy:'name'" value="{{r}}" title="{{r.name}}"> {{r.name}} </option> </select> <button ng-disabled="selectedRealmMappings.length == 0" class="btn btn-default" type="submit" ng-click="deleteRealmRole()"> <i class="fa fa-angle-double-left"></i> {{:: 'remove-selected' | translate}} </button> </div> </div> </div> </div> <div class="form-group" ng-show="!create && (compositeSwitch || role.composite)"> <label class="col-md-2 control-label" for="clients">{{:: 'client-roles' | translate}}</label> <div class="col-md-6"> <input type="hidden" ui-select2="clientsUiSelect" id="clients" data-ng-model="selectedClient" data-ng-change="changeClient(selectedClient);" data-placeholder="{{:: 'authz-select-client' | translate}}..."> </input> </div> <div class="col-md-10 col-md-push-2"> <div class="row" data-ng-show="selectedClient"> <div class="col-md-4"> <label class="control-label" for="available-client">{{:: 'available-roles' | translate}}</label> <kc-tooltip>{{:: 'available-roles.tooltip' | translate}}</kc-tooltip> <select id="available-client" class="form-control overflow-select" multiple size="5" ng-multiple="true" ng-model="selectedClientRoles"> <option ng-repeat="r in clientRoles | orderBy:'name'" value="{{r}}" title="{{r.name}}"> {{r.name}} </option> </select> <button ng-disabled="selectedClientRoles.length == 0" class="btn btn-default" type="submit" ng-click="addClientRole()"> {{:: 'add-selected' | translate}} <i class="fa fa-angle-double-right"></i> </button> </div> <div class="col-md-4"> <label class="control-label" for="assigned-client">{{:: 'associated-roles' | translate}}</label> <kc-tooltip>{{:: 'client.associated-roles.tooltip' | translate}}</kc-tooltip> <select id="assigned-client" class="form-control overflow-select" multiple size=5 ng-multiple="true" ng-model="selectedClientMappings"> <option ng-repeat="r in clientMappings | orderBy:'name'" value="{{r}}" title="{{r.name}}"> {{r.name}} </option> </select> <button ng-disabled="selectedClientMappings.length == 0" class="btn btn-default" type="submit" ng-click="deleteClientRole()"> <i class="fa fa-angle-double-left"></i> {{:: 'remove-selected' | translate}} </button> </div> </div> </div> </div> </fieldset> </form> </div> <kc-menu></kc-menu>