mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-20 20:24:33 +02:00
Implement field attribute to hide fields in command auto-completion
fixes #7403
This commit is contained in:
parent
9f7c97051e
commit
3fc3f05bb4
@ -35,7 +35,7 @@ public:
|
|||||||
|
|
||||||
abstract class DynamicObject
|
abstract class DynamicObject
|
||||||
{
|
{
|
||||||
[config] String __name (Name);
|
[config, internal] String __name (Name);
|
||||||
[config] String name (ShortName) {
|
[config] String name (ShortName) {
|
||||||
get {{{
|
get {{{
|
||||||
if (m_ShortName.IsEmpty())
|
if (m_ShortName.IsEmpty())
|
||||||
@ -44,9 +44,9 @@ abstract class DynamicObject
|
|||||||
return m_ShortName;
|
return m_ShortName;
|
||||||
}}}
|
}}}
|
||||||
};
|
};
|
||||||
[config, get_protected] String type (TypeName);
|
[config, internal, get_protected] String type (TypeName);
|
||||||
[config] String zone;
|
[config] String zone;
|
||||||
[config, get_protected] Array::Ptr templates;
|
[config, internal, get_protected] Array::Ptr templates;
|
||||||
[config] Dictionary::Ptr methods;
|
[config] Dictionary::Ptr methods;
|
||||||
[config] Dictionary::Ptr vars (VarsRaw);
|
[config] Dictionary::Ptr vars (VarsRaw);
|
||||||
[get_protected] bool active;
|
[get_protected] bool active;
|
||||||
|
@ -33,7 +33,8 @@ namespace icinga
|
|||||||
enum FieldAttribute
|
enum FieldAttribute
|
||||||
{
|
{
|
||||||
FAConfig = 1,
|
FAConfig = 1,
|
||||||
FAState = 2
|
FAState = 2,
|
||||||
|
FAInternal = 32
|
||||||
};
|
};
|
||||||
|
|
||||||
class Type;
|
class Type;
|
||||||
|
@ -75,7 +75,7 @@ std::vector<String> icinga::GetFieldCompletionSuggestions(const Type *type, cons
|
|||||||
for (int i = 0; i < type->GetFieldCount(); i++) {
|
for (int i = 0; i < type->GetFieldCount(); i++) {
|
||||||
Field field = type->GetFieldInfo(i);
|
Field field = type->GetFieldInfo(i);
|
||||||
|
|
||||||
if (!(field.Attributes & FAConfig))
|
if (!(field.Attributes & FAConfig) || field.Attributes & FAInternal)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (field.FType != Type::GetByName("int") && field.FType != Type::GetByName("double")
|
if (field.FType != Type::GetByName("int") && field.FType != Type::GetByName("double")
|
||||||
@ -84,9 +84,6 @@ std::vector<String> icinga::GetFieldCompletionSuggestions(const Type *type, cons
|
|||||||
|
|
||||||
String fname = field.Name;
|
String fname = field.Name;
|
||||||
|
|
||||||
if (fname == "__name" || fname == "templates" || fname == "type")
|
|
||||||
continue;
|
|
||||||
|
|
||||||
String suggestion = fname + "=";
|
String suggestion = fname + "=";
|
||||||
|
|
||||||
if (suggestion.Find(word) == 0)
|
if (suggestion.Find(word) == 0)
|
||||||
|
@ -139,6 +139,7 @@ enum { yylval->num = FAEnum; return T_FIELD_ATTRIBUTE; }
|
|||||||
get_protected { yylval->num = FAGetProtected; return T_FIELD_ATTRIBUTE; }
|
get_protected { yylval->num = FAGetProtected; return T_FIELD_ATTRIBUTE; }
|
||||||
set_protected { yylval->num = FASetProtected; return T_FIELD_ATTRIBUTE; }
|
set_protected { yylval->num = FASetProtected; return T_FIELD_ATTRIBUTE; }
|
||||||
protected { yylval->num = FAGetProtected | FASetProtected; return T_FIELD_ATTRIBUTE; }
|
protected { yylval->num = FAGetProtected | FASetProtected; return T_FIELD_ATTRIBUTE; }
|
||||||
|
internal { yylval->num = FAInternal; return T_FIELD_ATTRIBUTE; }
|
||||||
default { yylval->num = FTDefault; return T_FIELD_ACCESSOR_TYPE; }
|
default { yylval->num = FTDefault; return T_FIELD_ACCESSOR_TYPE; }
|
||||||
get { yylval->num = FTGet; return T_FIELD_ACCESSOR_TYPE; }
|
get { yylval->num = FTGet; return T_FIELD_ACCESSOR_TYPE; }
|
||||||
set { yylval->num = FTSet; return T_FIELD_ACCESSOR_TYPE; }
|
set { yylval->num = FTSet; return T_FIELD_ACCESSOR_TYPE; }
|
||||||
|
@ -60,7 +60,8 @@ enum FieldAttribute
|
|||||||
FAState = 2,
|
FAState = 2,
|
||||||
FAEnum = 4,
|
FAEnum = 4,
|
||||||
FAGetProtected = 8,
|
FAGetProtected = 8,
|
||||||
FASetProtected = 16
|
FASetProtected = 16,
|
||||||
|
FAInternal = 32
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Field
|
struct Field
|
||||||
|
Loading…
x
Reference in New Issue
Block a user