LemonLDAP::NG Web SSO
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
lemonldap-ng/lemonldap-ng-manager/site/htdocs/static/forms
Maxime Besson c49c675ae0 Move oidc key id to key form (#2444) 4 years ago
..
README.md
RSACertKey.html Update manager to generate saml certs by default (#2316) 5 years ago
RSAKeyNoPassword.html Move oidc key id to key form (#2444) 4 years ago
SMTP.html Add button in manager to send a test mail (#2293) 5 years ago
authChoice.html Remove self closing spans (#2248) 5 years ago
authChoiceContainer.html Remove self closing spans (#2248) 5 years ago
authParams.html Some WAI-ARIA improvment (#1111) 8 years ago
authParamsText.html Some WAI-ARIA improvment (#1111) 8 years ago
authParamsTextContainer.html Some WAI-ARIA improvment (#1111) 8 years ago
blackWhiteList.html Some WAI-ARIA improvment (#1111) 8 years ago
bool.html Fix SAML attribute default value (#1635) 6 years ago
boolOrExpr.html Fix textarea usage in manager forms (fixes: #2196) 5 years ago
casAppMetaDataNode.html Prepare CAS partners managment (#1183) 8 years ago
casAppMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
casSrvMetaDataNode.html Fix IDP/CAS deleteEntry icon 6 years ago
casSrvMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
catAndAppList.html
cmbModule.html Manager HTML cleanup (#2248) 5 years ago
cmbModuleContainer.html Manager HTML cleanup (#2248) 5 years ago
doubleHash.html Remove self closing spans (#2248) 5 years ago
file.html Prepare test to verify that SAML conf is not lost (#1311) 8 years ago
grant.html Fix textarea usage in manager forms (fixes: #2196) 5 years ago
grantContainer.html Manager HTML cleanup (#2248) 5 years ago
home.html Remove trailing whitespaces 6 years ago
homeViewer.html Remove trailing whitespaces 6 years ago
int.html Manager HTML cleanup (#2248) 5 years ago
keyText.html Manager HTML cleanup (#2248) 5 years ago
keyTextContainer.html Remove self closing spans (#2248) 5 years ago
longtext.html Fix textarea usage in manager forms (fixes: #2196) 5 years ago
menuApp.html Manager HTML cleanup (#2248) 5 years ago
menuCat.html Fix menu order 6 years ago
mini.html
oidcAttribute.html Update documentation for #2330 5 years ago
oidcAttributeContainer.html Update documentation for #2330 5 years ago
oidcOPMetaDataNode.html
oidcOPMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
oidcRPMetaDataNode.html
oidcRPMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
password.html
portalskin.html Fix CSP errors (closes: #1197) 8 years ago
portalskinbackground.html Clean link (#1184) 8 years ago
post.html Remove self closing spans (#2248) 5 years ago
postContainer.html Remove self closing spans (#2248) 5 years ago
restore.html Manager HTML cleanup (#2248) 5 years ago
rule.html Fix textarea usage in manager forms (fixes: #2196) 5 years ago
ruleContainer.html Manager HTML cleanup (#2248) 5 years ago
samlAssertion.html Some WAI-ARIA improvment (#1111) 8 years ago
samlAttribute.html Update documentation for #2330 5 years ago
samlAttributeContainer.html Update documentation for #2330 5 years ago
samlIDPMetaDataNode.html Fix IDP/CAS deleteEntry icon 6 years ago
samlIDPMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
samlSPMetaDataNode.html
samlSPMetaDataNodeContainer.html Remove self closing spans (#2248) 5 years ago
samlService.html Manager HTML cleanup (#2248) 5 years ago
select.html
sfExtra.html Manager HTML cleanup (#2248) 5 years ago
sfExtraContainer.html Manager HTML cleanup (#2248) 5 years ago
simpleInputContainer.html Fix textarea usage in manager forms (fixes: #2196) 5 years ago
text.html
trool.html Fix SAML attribute default value (#1635) 6 years ago
virtualHost.html
virtualHostContainer.html Remove self closing spans (#2248) 5 years ago
white.html

README.md

Lemonldap::NG::Manager forms

This files contains the form used to expose configuration attributes. The form is chosen by looking at the type property of the current data.

This property is defined in Lemonldap::NG::Manager::Build::Attributes package. By default, it is set to text.

Lemonldap::NG::Manager::Build::Attributes is compiled into JSON/JS files by jsongenerator.plscript.

1. Form file architecture

Form files must be called <type>.json where is the declared type of configuration property to display.

Form files must contain only HTML that will be included in the manager DOM (in #form div). It must consist of two blocks:

  • a <div class="panel panel-default"> div that contains the form,
  • a <script type="text/menu"> script that defines which item to display in context menu.

Basic example:

<div class="panel panel-default">
  <div class="panel-heading">
    <h3 class="panel-title">{{translate(currentNode)}}</h3>
  </div>
  <div class="panel-body">
    <div class="input-group">
      <label class="input-group-addon" for="textinput" trspan="value"></label>
      <input id="textinput" class="form-control" ng-model="currentNode.data"/>
    </div>
  </div>
</div>
<script type="text/menu">
[{
  "title": "cancel"
}]
</script>

2. Form main div

Based on bootstrap CSS, the main div part may look like:

If configuration item name is read-only:

<div class="panel panel-default">
  <div class="panel-heading">
    <h3 class="panel-title">{{translate(currentNode)}}</h3>
  </div>
  <div class="panel-body">
  __ FORM INPUTS __
  </div>
</div>

If configuration item name may be modified:

<div class="panel panel-default">
  <div class="panel-heading"> <!-- optional -->
    <h3 class="panel-title" trspan="OptionalTitle"></h3>
  </div>
  <div class="panel-body">
  __ FORM INPUTS __
  </div>
</div>

Note that keywords to translate must be set in all languages/*.json files.

2.1. AngularJS bindings

Some AngularJS variables are available :

  • currentNode: the data subnode corresponding to the selected tree item
  • currentScope: the AngularJS scope corresponding to the selected tree item

You can simply used them as follow:

<input class="form-control" ng-model="currentNode.data"/>

3. Script part

Form div must define which item menu to display. It is done via the script part of the file:

Empty context menu:

<script type="text/menu">
[]
</script>

Else:

<script type="text/menu">
[
  {<menu item1>},
  {<menu item2>},
  {<menu item3>}
]
</script>

3.1. Menu item

3.1.1. Simple case

Menu item is a javascript object with at least the key title.

<script type="text/menu">
[
  { "title": "cancel" }
]
</script>

In this case, the item will be displayed using the translation of cancel. It will launch the function $scope.cancel() declared in AngularJS controller (js/manager.js file) without any argument: functions in the controller can access to controller properties and methods.

3.1.2. Dropdown item

You can have sub items simply using buttons key which must then be an array of menu items.

<script type="text/menu">
[{
  "title": "textToTranslate",
  "buttons": [
    { "title": "cancel" },
    { "other": "item" }
  ]
}]
</script>

3.1.3. Specify function to use

<script type="text/menu">
[{
  "title": "addVirtualHost",
  "action": "addVhost"
}]
</script>

Same as below except that it will launch $scope.addVhost().

Tips

You can access to the parent using this:

  • currentScope.$parentNodeScope for the parent scope
  • currentScope.$parentNodeScope.$modelValue for the parent node

3.1.5 Icons

<script type="text/menu">
[{
  "title": "addVirtualHost",
  "action": "addVhost",
  "icon": "plus-sign",
}]
</script>

The field icon can be set to define the Bootstrap glyphicon to use.

4. Modal window

You can use a modal window to display a choice (look at forms/portalSkin.html for a complete example):

<button class="btn btn-info" ng-click="showModal('portalSkinChoice.html')">

A modal window will be displayed using portalSkinChoice.html template. This template must be declared in the file:

<script type="text/ng-template" id="portalSkinChoice.html">
  <div class="modal-header">
    <h3 class="modal-title" trspan="chooseSkin"></h3>
  </div>
  <div class="modal-body">
    <div class="btn-group">
      <button class="btn" ng-repeat="b in currentNode.select" ng-click="ok(currentNode.data=b.k)">
        {{b.v}}
      </button>
    </div>
  </div>
  <div class="modal-footer">
    <button class="btn btn-primary" ng-click="ok()" trspan="ok"></button>
    <button class="btn btn-warning" ng-click="cancel()" trspan="cancel"></button>
  </div>
</script>