LScli: add autocomplete_LSobject_attr_name() and autocomplete_LSform_name() helpers methods

This commit is contained in:
Benjamin Renard 2024-11-20 20:19:32 +01:00
parent b7a68f6a9e
commit 965efeeda5
Signed by: bn8
GPG key ID: 3E2E1CE1907115BC
2 changed files with 48 additions and 13 deletions

View file

@ -55,26 +55,28 @@ Pour mettre en place une telle commande *CLI* personnalisée, il est nécessaire
Pour vous aider dans l'écrire d'une telle méthode d'autocomplétion, des méthodes statiques
sont fournies par la classe `LScli` pour les autocomplétions les plus courantes :
- `LScli :: autocomplete_class_name()`
- `LScli :: autocomplete_class_name()` : Autocomplétion du nom d'une classe PHP.
Autocomplétion du nom d'une classe PHP.
- `LScli :: autocomplete_addon_name()` : Autocomplétion du nom d'un
[LSaddon](../../conf/index.md#configuration-des-lsaddons).
- `LScli :: autocomplete_addon_name()`
- `LScli :: autocomplete_int()` : Autocomplétion d'un nombre entier.
Autocomplétion du nom d'un [LSaddon](../../conf/index.md#configuration-des-lsaddons).
- `LScli :: autocomplete_LSobject_types()` : Autocomplétion du nom d'un type
d'[LSobject](../../conf/index.md#configuration-lsobject).
- `LScli :: autocomplete_int()`
- `LScli :: autocomplete_LSobject_dn()` : Autocomplétion du DN d'un type précis
d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
Autocomplétion d'un nombre entier.
- `LScli :: autocomplete_LSobject_attr_name()` : Autocomplétion du nom d'un attribut précis
pour un type d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
- `LScli :: autocomplete_LSobject_types()`
- `LScli :: autocomplete_LSobject_ioFormat()` : Autocomplétion du nom d'un
[ioFormat](../../conf/LSobject/ioFormat.md#ioformat) pour un type
d'[LSobject](../../conf/index.md#configuration-lsobject) de l'annuaire.
Autocomplétion du nom d'un type d'[LSobject](../../conf/index.md#configuration-lsobject).
- `LScli :: autocomplete_LSobject_dn()`
Autocomplétion du DN d'un type précis d'[LSobject](../../conf/index.md#configuration-lsobject) de
l'annuaire.
- `LScli :: autocomplete_LSform_name()` : Autocomplétion du nom d'un formulaire de
l'application.
Par ailleurs, la méthode `LScli :: autocomplete_opts()` vous facilitera la construction de la
liste des valeurs d'autocomplétion de l'argument courant en fonction de ce qui a déjà été

View file

@ -780,6 +780,28 @@ class LScli extends LSlog_staticLoggerClass {
return array(LScli :: quote_word("$rdn_attr=", $quote_char));
}
/**
* Autocomplete LSobject attribute name
*
* @param string $objType LSobject type
* @param string $prefix Option prefix (optional, default=empty string)
* @param boolean $case_sensitive Set to false if options are case insensitive (optional, default=true)
* @param string $quote_char Quote character (optional, if not set, $prefix will be unquoted and its
* quote char (if detected) will be used to quote options)
*
* @return array List of available options
**/
public static function autocomplete_LSobject_attr_name($objType, $prefix='', $case_sensitive=true, $quote_char='') {
if (!LSsession ::loadLSobject($objType, false))
return array();
return self :: autocomplete_opts(
LSconfig :: keys("LSobjects.$objType.attrs"),
$prefix,
$case_sensitive,
$quote_char
);
}
/**
* Autocomplete LSobject ioFormat option
*
@ -805,6 +827,17 @@ class LScli extends LSlog_staticLoggerClass {
return self :: autocomplete_opts($ioFormats, $prefix, $case_sensitive, $quote_char);
}
/**
* Autocomplete LSform name
*
* @param string $prefix LSform name prefix (optional, default=empty string)
*
* @return array List of matched LSform names
**/
public static function autocomplete_LSform_name($prefix='', $quote_char=null) {
return self :: autocomplete_opts(["create", "modify", "lostPassword"], $prefix, true, $quote_char);
}
/**
* Autocomplete LSformRule name
*