diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/001-Classes.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/001-Classes.yaml
index 5523216..012dd68 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/001-Classes.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/001-Classes.yaml
@@ -24,7 +24,6 @@
- IDBEM_1: '{8c625250-5c11-44d8-8002-80217e220137}'
- IDC_Layout: '{e10e5978-0943-4971-89ba-ef9932fb3769}'
- - IDC_GroupLayout: '{108605af-c20d-42eb-af4f-35b2ff701921}'
- IDC_ButtonLayout: '{6f6338db-68e0-4cc7-b257-d1b97cf3cb92}'
- IDC_ImageLayout: '{4b1bb7c6-168e-4ce0-b4f8-76dd5069a80b}'
@@ -90,13 +89,11 @@
- IDC_PrimaryObjectReportField: '{59EA0C72-4800-48BA-84A4-DDFE10E5F4D0}'
- IDC_RelationshipReportField: '{FC4E3BB5-1EA7-44FF-B828-2EA54CDD4ABB}'
- - IDC_ReportField: '{655A04D9-FE35-4F89-9AAB-B8FA34989D03}'
- IDC_AttributeReportField: '{C06E0461-A956-4599-9708-012C8FE04D94}'
- IDC_Module: '{e009631d-6b9d-445c-95df-79f4ef8c8fff}'
- IDC_Report: '{19D947B6-CE82-4EEE-92EC-A4E01E27F2DB}'
- - IDC_ReportColumn: '{BEFE99A1-B2EB-4365-A2C9-061C6609037B}'
- IDC_StandardReport: '{FDF4A498-DE83-417D-BA01-707372125C8D}'
- IDC_TaskCategory: '{e8d8060f-a20c-442f-8384-03488b63247f}'
@@ -176,7 +173,6 @@
- IDC_InstanceSource: '{8EE7024D-ED87-4D99-BF21-10E09AF5566D}'
- # {91583cc3-6007-40e5-a789-d08c0ff975e6}
- IDC_PUMProcess: '{2cdb2169-7c26-4adb-bc26-e9e75ab1b246}'
- IDC_ExecutableForPUMB: '{6590dd01-6cb9-4440-94b9-d165b9e94a88}'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml
index b807de6..939db87 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/002-Attributes.yaml
@@ -64,7 +64,7 @@
- IDA_BuiltFromBEMProcessNotInListForElement: '{091c806d-a06b-4ad6-a20a-b0f668909313}'
- IDA_MultipleValidClasses: '{52c67121-6ba1-4d3d-a718-7fcb5d3ae291}'
- IDA_Shared: '{4f4f2b73-6b16-4cbb-a254-a9e557040bca}'
- # {95ebfd97-0951-4fd9-871e-a2e7992f3e96}
+
- IDA_IncludeMIs: '{c97c2410-30d8-41eb-9b71-2aecc63abf46}'
- IDA_IncludeSuperclassMethods: '{3828a3f7-57ff-409b-b814-338d5ff51e19}'
- IDA_AllowAny: '{af02b1d7-b261-4eaf-9f99-37356c74e237}'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml
index a742d53..ba2b35e 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/003-Relationships.yaml
@@ -158,7 +158,6 @@
- IDR_Report__has__Report_Data_Source: "{1DE7B484-F9E3-476A-A9D3-7D2A86B55845}"
- IDR_Report__has__Prompt: "{5D112697-303F-419F-886F-3F09F0670B07}"
- - IDR_Report_Column__has__Report_Field: "{B9026910-7E91-4EE1-B5F2-D7B740614831}"
- IDR_Report_Column__has__Report_Column_Option: "{41FFF5F0-B467-4986-A6FD-46FAF4A479E9}"
- IDR_Report_Data_Source__has_source__Method: "{2D5CB496-5839-46A0-9B94-30D4E2227B56}"
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/013-WorkSets.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/013-WorkSets.yaml
index 3b4a800..ab8b6ea 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/013-WorkSets.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/000-EntityDefinitions/013-WorkSets.yaml
@@ -3,8 +3,10 @@
- IDI_WorkSet_PreferredDisplayName: '{86149123-6d32-4f48-b128-8f773cdb2b0e}'
- IDI_WorkSet_RelatedInstance: '{d9634929-0bb4-482a-85cc-9c8f1251556f}'
- IDI_WorkSet_Person: '{23026091-2841-4abd-b0d9-f6758e443bd2}'
+ - IDI_WorkSet_PersonSingular: '{e0e0cacd-854c-4585-bc3a-67d1583eb7bd}'
- IDI_WorkSet_MethodSingular: '{9e44ae02-3008-4b84-9295-aa4c37ee53aa}'
- IDI_WorkSet_ClassSingular: '{4b1fc1e1-46d6-4fe5-bd7e-8ea5c3380efe}'
+ - IDI_WorkSet_ClassNonsingular: '{d37946fc-e4f8-410b-bdfc-98ed6ed271dc}'
- IDI_WorkSet_ClassForMethod: '{d8eeff45-acbc-4031-8b09-bf9b8085c185}'
- IDI_WorkSet_ParentClass: '{98da8ac1-1fea-4cb4-a278-0c5460e625fd}'
- IDI_WorkSet_AccessModifierSingular: '{73251409-5060-4983-896a-00dee10d3f6c}'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00005-BooleanAttribute.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00005-BooleanAttribute.yaml
index 1b7120b..a0ce957 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00005-BooleanAttribute.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00005-BooleanAttribute.yaml
@@ -5,6 +5,7 @@
- class: '&IDC_BooleanAttribute;'
name: Boolean Attribute
index: 5
+ customTagName: 'booleanAttribute'
superclasses:
- instance: '&IDC_Attribute;'
- instance: '&IDC_ExecutableReturningAttribute;'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00015-WorkSet.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00015-WorkSet.yaml
index 2d17441..abcea00 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00015-WorkSet.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00015-WorkSet.yaml
@@ -42,11 +42,18 @@
name: 'Person'
validClasses:
- instance: '&IDC_Person;'
+ - workSet: '&IDI_WorkSet_PersonSingular;'
+ name: 'Person [Singular]'
+ validClasses:
+ - instance: '&IDC_Person;'
+ singular: yes
- workSet: '&IDI_WorkSet_MethodSingular;'
name: 'Method [Singular]'
singular: yes
- workSet: '&IDI_WorkSet_ClassSingular;'
name: 'Class [Singular]'
+ - workSet: '&IDI_WorkSet_ClassNonsingular;'
+ name: 'Class [Nonsingular]'
singular: yes
- workSet: '&IDI_WorkSet_ClassForMethod;'
name: 'Class for Method'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00033-Person.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00033-Person.yaml
index 18da15d..808e340 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00033-Person.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00033-Person.yaml
@@ -5,6 +5,7 @@
name: Person
index: 33
customTagName: 'person'
+ registerForTemplate: yes
relationships:
- instance: '&IDR_Person__has__Person_Name;'
customTagName: 'names'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00056-ElementContent.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00056-ElementContent.yaml
index ab483cd..8f65b32 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00056-ElementContent.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00056-ElementContent.yaml
@@ -1,4 +1,8 @@
---
+- entityDefinitions:
+ - IDR_Element_Content__has__EC_Dynamic_Display_Option: '{4a41391a-c325-4182-920a-a94ad28c15fa}'
+ - IDR_EC_Dynamic_Display_Option__for__Element_Content: '{1c0d0aaa-d40b-4e21-9ee7-30a9bb4de5c0}'
+
- library: '&IDL_MochaBaseSystem;'
instances:
- relationship: '&IDR_Element_Content__has__Instance;'
@@ -34,6 +38,22 @@
siblingRelationshipId: '&IDR_Element_Content__has__Layout;'
singular: no
+ - relationship: '&IDR_Element_Content__has__EC_Dynamic_Display_Option;'
+ index: 259
+ sourceClassId: '&IDC_ElementContent;'
+ type: 'has'
+ destinationClassId: '&IDC_ECDynamicDisplayOption;'
+ siblingRelationshipId: '&IDR_EC_Dynamic_Display_Option__for__Element_Content;'
+ singular: no
+
+ - relationship: '&IDR_EC_Dynamic_Display_Option__for__Element_Content;'
+ index: 260
+ sourceClassId: '&IDC_ECDynamicDisplayOption;'
+ type: 'for'
+ destinationClassId: '&IDC_ElementContent;'
+ siblingRelationshipId: '&IDR_Element_Content__has__EC_Dynamic_Display_Option;'
+ singular: no
+
- class: '&IDC_ElementContent;'
name: Element Content
index: 56
@@ -61,6 +81,9 @@
customTagNameCreatesInstanceOf: '&IDC_BEMProcess;'
- instance: '&IDR_Derived_Element_Content__update_with__Executable_returning_Work_Data;'
customTagName: 'value'
+ - instance: '&IDR_Element_Content__has__EC_Dynamic_Display_Option;'
+ customTagName: 'dynamicDisplayOptions'
+ customTagNameCreatesInstanceOf: '&IDC_ECDynamicDisplayOption;'
instances:
- instance: '&IDI_Element_AddMetadataInstance;'
name: add metadata instance
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00061-DisplayOption.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00061-DisplayOption.yaml
new file mode 100644
index 0000000..fbbe80e
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00061-DisplayOption.yaml
@@ -0,0 +1,10 @@
+---
+- entityDefinitions:
+ - IDC_DisplayOption: '{0510527e-7a9b-4e51-a8e5-a0e98c98b86f}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_DisplayOption;'
+ name: Display Option
+ index: 61
+ abstract: yes
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00115-DynamicDisplayOption.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00115-DynamicDisplayOption.yaml
new file mode 100644
index 0000000..8d23b5d
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00115-DynamicDisplayOption.yaml
@@ -0,0 +1,58 @@
+---
+- entityDefinitions:
+ - IDC_DynamicDisplayOption: '{4a66cf04-fda3-44c5-855a-688012fc08b7}'
+ - IDR_Dynamic_Display_Option__add__Display_Option: '{2ed33b28-f84d-4120-b585-be965cfb691f}'
+ - IDR_Display_Option__add_with__Dynamic_Display_Option: '{cad73771-dcc1-4314-9f94-948c16ac6f66}'
+ - IDR_Dynamic_Display_Option__remove__Display_Option: '{dc06bf0b-70dd-4f71-854d-0f5685e2124f}'
+ - IDR_Display_Option__remove_with__Dynamic_Display_Option: '{48d7ba17-5051-4366-9abb-ee82f4e91644}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_DynamicDisplayOption;'
+ name: Dynamic Display Option
+ index: 115
+ registerForTemplate: yes
+ relationships:
+ - instance: '&IDR_Dynamic_Display_Option__add__Display_Option;'
+ customTagName: 'addsDisplayOptions'
+ - instance: '&IDR_Dynamic_Display_Option__remove__Display_Option;'
+ customTagName: 'removesDisplayOptions'
+ translations:
+ - relationship: '&IDR_Class__has_title__Translation;'
+ values:
+ - languageInstanceId: '&IDI_Language_English;'
+ value: 'Dynamic Display Option'
+
+
+ - relationship: '&IDR_Dynamic_Display_Option__add__Display_Option;'
+ index: 243
+ sourceClassId: '&IDC_DynamicDisplayOption;'
+ type: 'add'
+ destinationClassId: '&IDC_DisplayOption;'
+ siblingRelationshipId: '&IDR_Display_Option__add_with__Dynamic_Display_Option;'
+ singular: no
+
+ - relationship: '&IDR_Display_Option__add_with__Dynamic_Display_Option;'
+ index: 244
+ sourceClassId: '&IDC_DisplayOption;'
+ type: 'add with'
+ destinationClassId: '&IDC_DynamicDisplayOption;'
+ siblingRelationshipId: '&IDR_Dynamic_Display_Option__add__Display_Option;'
+ singular: no
+
+
+ - relationship: '&IDR_Dynamic_Display_Option__remove__Display_Option;'
+ index: 245
+ sourceClassId: '&IDC_DynamicDisplayOption;'
+ type: 'remove'
+ destinationClassId: '&IDC_DisplayOption;'
+ siblingRelationshipId: '&IDR_Display_Option__remove_with__Dynamic_Display_Option;'
+ singular: no
+
+ - relationship: '&IDR_Display_Option__remove_with__Dynamic_Display_Option;'
+ index: 246
+ sourceClassId: '&IDC_DisplayOption;'
+ type: 'remove with'
+ destinationClassId: '&IDC_DynamicDisplayOption;'
+ siblingRelationshipId: '&IDR_Dynamic_Display_Option__remove__Display_Option;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00116-ECDynamicDisplayOption.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00116-ECDynamicDisplayOption.yaml
index bce6a23..511329b 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00116-ECDynamicDisplayOption.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00116-ECDynamicDisplayOption.yaml
@@ -1,42 +1,42 @@
---
+- entityDefinitions:
+ - IDC_ECDynamicDisplayOption: '{f0614549-adc7-4a1c-8e52-72181846ad08}'
+
+ - IDR_EC_Dynamic_Display_Option__modifies__Element_Content: '{4d091643-2bfc-4b83-b3e4-8a3b22c665a9}'
+ - IDR_Element_Content__modified_by__EC_Dynamic_Display_Option: '{659f9aff-790b-45bf-8294-1657116743c4}'
+
- library: '&IDL_MochaBaseSystem;'
instances:
- - class: '&IDC_ElementContentDisplayOption;'
- name: Element Content Display Option
+ - class: '&IDC_ECDynamicDisplayOption;'
+ name: EC Dynamic Display Option
index: 116
- # instancesLabeledByRAMB: '&IDMB_Instance__get__Name;'
- attributes:
- - instance: '&IDA_Name;'
- customTagName: 'name'
+ registerForTemplate: yes
+ relationships:
+ - instance: '&IDR_EC_Dynamic_Display_Option__modifies__Element_Content;'
+ customTagName: 'modifiesElementContents'
+ - instance: '&IDR_Dynamic_Display_Option__add__Display_Option;'
+ customTagName: 'addsDisplayOptions'
+ - instance: '&IDR_Dynamic_Display_Option__remove__Display_Option;'
+ customTagName: 'removesDisplayOptions'
translations:
- relationship: '&IDR_Class__has_title__Translation;'
values:
- languageInstanceId: '&IDI_Language_English;'
- value: 'Element Content Display Option'
- instances:
- - instance: '&IDI_DisplayOption_DisplayAsPageTitle;'
- name: Display as Page Title
- - instance: '&IDI_DisplayOption_NotEnterable;'
- name: Not Enterable
- - instance: '&IDI_DisplayOption_SubmitNotEnterable;'
- name: Submit Not Enterable
- - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
- name: Show Subelements Vertically
- - instance: '&IDI_DisplayOption_Singular;'
- name: Singular
- - instance: '&IDI_DisplayOption_DoNotShow;'
- name: Do Not Show
- - instance: '&IDI_DisplayOption_InitializeForEntry;'
- name: Initialize For Entry
- - instance: '&IDI_DisplayOption_DoNotShowLabel;'
- name: Do Not Show Label
- - instance: '&IDI_DisplayOption_WideText;'
- name: Wide Text
- - instance: '&IDI_DisplayOption_Required;'
- name: Required
- - instance: '&IDI_DisplayOption_DoNotShowIfEmpty;'
- name: Do Not Show If Empty
- - instance: '&IDI_DisplayOption_ObscuredText;'
- name: Obscured Text
- - instance: '&IDI_DisplayOption_RowsNotEditable;'
- name: Rows Not Editable
\ No newline at end of file
+ value: 'EC Dynamic Display Option'
+
+ - relationship: '&IDR_EC_Dynamic_Display_Option__modifies__Element_Content;'
+ index: 262
+ sourceClassId: '&IDC_ECDynamicDisplayOption;'
+ type: 'modifies'
+ destinationClassId: '&IDC_ElementContent;'
+ siblingRelationshipId: '&IDR_Element_Content__modified_by__EC_Dynamic_Display_Option;'
+ singular: no
+
+ - relationship: '&IDR_Element_Content__modified_by__EC_Dynamic_Display_Option;'
+ index: 261
+ sourceClassId: '&IDC_ElementContent;'
+ type: 'modified by'
+ destinationClassId: '&IDC_ECDynamicDisplayOption;'
+ siblingRelationshipId: '&IDR_EC_Dynamic_Display_Option__modifies__Element_Content;'
+ singular: no
+
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00146-ReportField.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00146-ReportField.yaml
new file mode 100644
index 0000000..7c86759
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00146-ReportField.yaml
@@ -0,0 +1,12 @@
+- entityDefinitions:
+ - IDC_ReportField: '{655A04D9-FE35-4F89-9AAB-B8FA34989D03}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ReportField;'
+ name: 'Report Field'
+ customTagName: 'reportField'
+ index: 146
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00924-DerivedECDisplayOption.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00924-DerivedECDisplayOption.yaml
new file mode 100644
index 0000000..64f6945
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00924-DerivedECDisplayOption.yaml
@@ -0,0 +1,42 @@
+---
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ElementContentDisplayOption;'
+ name: Derived EC Display Option
+ index: 924
+ # instancesLabeledByRAMB: '&IDMB_Instance__get__Name;'
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
+ translations:
+ - relationship: '&IDR_Class__has_title__Translation;'
+ values:
+ - languageInstanceId: '&IDI_Language_English;'
+ value: 'Element Content Display Option'
+ instances:
+ - instance: '&IDI_DisplayOption_DisplayAsPageTitle;'
+ name: Display as Page Title
+ - instance: '&IDI_DisplayOption_NotEnterable;'
+ name: Not Enterable
+ - instance: '&IDI_DisplayOption_SubmitNotEnterable;'
+ name: Submit Not Enterable
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+ name: Show Subelements Vertically
+ - instance: '&IDI_DisplayOption_Singular;'
+ name: Singular
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ name: Do Not Show
+ - instance: '&IDI_DisplayOption_InitializeForEntry;'
+ name: Initialize For Entry
+ - instance: '&IDI_DisplayOption_DoNotShowLabel;'
+ name: Do Not Show Label
+ - instance: '&IDI_DisplayOption_WideText;'
+ name: Wide Text
+ - instance: '&IDI_DisplayOption_Required;'
+ name: Required
+ - instance: '&IDI_DisplayOption_DoNotShowIfEmpty;'
+ name: Do Not Show If Empty
+ - instance: '&IDI_DisplayOption_ObscuredText;'
+ name: Obscured Text
+ - instance: '&IDI_DisplayOption_RowsNotEditable;'
+ name: Rows Not Editable
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01422-CustomReportDefinition.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01422-CustomReportDefinition.yaml
new file mode 100644
index 0000000..83b3b0e
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01422-CustomReportDefinition.yaml
@@ -0,0 +1,41 @@
+- entityDefinitions:
+ - IDC_CustomReportDefinition: '{f9d14e7b-d48e-4d1b-9924-5a27e3ce40dd}'
+
+ - IDI_DataSource_AllClasses: '{5c52dcd3-8ece-4390-addb-e0395cff0c94}'
+
+ - IDI_ReportObject_Class: '{eae859fb-af47-4dcc-b5fd-26ab1ce5cbb0}'
+ - IDI_ReportField_Class_Class: '{57e84723-4e50-4fef-a0e8-e22d47dbf8c2}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_CustomReportDefinition;'
+ name: Custom Report Definition
+ index: 1422
+ moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+ customTagName: 'customReport'
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
+ relationships:
+ - instance: '&IDR_Report_Definition__has__Report_Column;'
+ customTagName: 'columns'
+ customTagNameCreatesInstanceOf: '&IDC_ReportColumn;'
+ - instance: '&IDR_Report_Definition__uses__Data_Source;'
+ customTagName: 'dataSourceId'
+ defaultTask: '&IDI_Task_CustomReportDefinition_View;'
+ relatedTasks:
+ - instance: '&IDI_Task_CustomReportDefinition_View;'
+ - instance: '&IDI_Task_CustomReportDefinition_Edit;'
+
+ - class: '&IDC_ReportObject;'
+ name: 'Report Object'
+ customTagName: 'reportObject'
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
+
+ - reportObject: '&IDI_ReportObject_Class;'
+ name: 'Class'
+
+ - reportField: '&IDI_ReportField_Class_Class;'
+ name: 'Class'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01429-CustomReportFilter.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01429-CustomReportFilter.yaml
new file mode 100644
index 0000000..62b6cc7
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01429-CustomReportFilter.yaml
@@ -0,0 +1,28 @@
+- entityDefinitions:
+ - IDC_ReportFilter: '{015b2ade-75ec-427a-aa2f-3fed585db84a}'
+ - IDR_Report_Definition__has_top_level__Report_Filter: '{4b49f9da-19d7-4a7c-b3a0-a9397fbf855c}'
+ - IDR_Report_Filter__top_level_for__Report_Definition: '{ccd247ef-31c8-4acd-bae9-ed710787f08d}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ReportFilter;'
+ name: Report Filter
+ index: 1429
+ registerForTemplate: yes
+
+
+ - relationship: '&IDR_Report_Definition__has_top_level__Report_Filter;'
+ index: 3664
+ sourceClassId: '&IDC_ReportDefinition;'
+ type: 'has top level'
+ destinationClassId: '&IDC_ReportFilter;'
+ siblingRelationshipId: '&IDR_Report_Filter__top_level_for__Report_Definition;'
+ singular: no
+
+ - relationship: '&IDR_Report_Filter__top_level_for__Report_Definition;'
+ index: 3665
+ sourceClassId: '&IDC_ReportFilter;'
+ type: 'top level for'
+ destinationClassId: '&IDC_ReportDefinition;'
+ siblingRelationshipId: '&IDR_Report_Definition__has_top_level__Report_Filter;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01431-DataSource.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01431-DataSource.yaml
new file mode 100644
index 0000000..d8d9362
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01431-DataSource.yaml
@@ -0,0 +1,11 @@
+- entityDefinitions:
+ - IDC_DataSource: '{622be6ec-e57e-47dd-a2ab-248515b6c88d}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_DataSource;'
+ name: Data Source
+ index: 1431
+ abstract: yes
+ moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01435-SystemDataSource.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01435-SystemDataSource.yaml
index 0beaeaa..e2a229b 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01435-SystemDataSource.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01435-SystemDataSource.yaml
@@ -9,8 +9,16 @@
name: System Data Source
index: 1435
moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+ customTagName: 'systemDataSource'
+ superclasses:
+ - instance: '&IDC_DataSource;'
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
+ relationships:
+ - instance: '&IDR_System_Data_Source__uses__Return_Instance_Set_Method_Binding;'
+ customTagName: 'usesReturnInstanceSetMethodBinding'
- relationships:
- relationship: '&IDR_System_Data_Source__uses__Return_Instance_Set_Method_Binding;'
index: 3712
sourceClassId: '&IDC_SystemDataSource;'
@@ -26,3 +34,7 @@
destinationClassId: '&IDC_SystemDataSource;'
siblingRelationshipId: '&IDR_System_Data_Source__uses__Return_Instance_Set_Method_Binding;'
singular: no
+
+ - systemDataSource: '&IDI_DataSource_AllClasses;'
+ usesReturnInstanceSetMethodBinding: '&IDMB_Class__get__All_Classes;'
+ name: 'All Classes'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01516-ReportSortDirection.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01516-ReportSortDirection.yaml
new file mode 100644
index 0000000..5cf5334
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01516-ReportSortDirection.yaml
@@ -0,0 +1,26 @@
+- entityDefinitions:
+ - IDC_ReportSortDirection: '{2c4d841b-20e0-41a7-a3ac-9653508768ef}'
+
+ - IDI_ReportSortDirection_AlphabeticalAscending: '{f55bf4d1-07b7-4dc7-b22d-a12ea4a54c53}'
+ - IDI_ReportSortDirection_AlphabeticalDescending: '{8cb2f68d-f98a-4138-93f8-afe89c3bd35d}'
+ - IDI_ReportSortDirection_NumericAscending: '{6223f417-9524-4af9-9002-3e322e5a74a4}'
+ - IDI_ReportSortDirection_NumericDescending: '{046d487c-60f4-45d5-b83c-1d21d24991e3}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ReportSortDirection;'
+ name: 'Report Sort Direction'
+ index: 1516
+ customTagName: 'reportSortDirection'
+ attributes:
+ - instance: '&IDA_Name;'
+ customTagName: 'name'
+
+ - reportSortDirection: '&IDI_ReportSortDirection_AlphabeticalAscending;'
+ name: 'Alphabetical - Ascending'
+ - reportSortDirection: '&IDI_ReportSortDirection_AlphabeticalDescending;'
+ name: 'Alphabetical - Descending'
+ - reportSortDirection: '&IDI_ReportSortDirection_NumericAscending;'
+ name: 'Numeric - Ascending'
+ - reportSortDirection: '&IDI_ReportSortDirection_NumericDescending;'
+ name: 'Numeric - Descending'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01599-GroupLayout.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01599-GroupLayout.yaml
index 7b06b70..26e5018 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01599-GroupLayout.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01599-GroupLayout.yaml
@@ -1,6 +1,31 @@
+- entityDefinitions:
+ - IDC_GroupLayout: '{108605af-c20d-42eb-af4f-35b2ff701921}'
+
+ - IDR_Group_Layout__uses__Group_Layout_Option: '{5bea01b6-c33e-4f37-a940-579712ab47c7}'
+ - IDR_Group_Layout_Option__used_by__Group_Layout: '{fc7944a5-84c5-46fb-b605-ba677158f0b0}'
+
- library: '&IDL_MochaBaseSystem;'
instances:
- class: '&IDC_GroupLayout;'
name: 'Group Layout'
index: 1599
customTagName: 'groupLayout'
+ relationships:
+ - instance: '&IDR_Group_Layout__uses__Group_Layout_Option;'
+ customTagName: 'options'
+
+ - relationship: '&IDR_Group_Layout__uses__Group_Layout_Option;'
+ index: 4265
+ sourceClassId: '&IDC_GroupLayout;'
+ type: 'uses'
+ destinationClassId: '&IDC_GroupLayoutOption;'
+ siblingRelationshipId: '&IDR_Group_Layout_Option__used_by__Group_Layout;'
+ singular: no
+
+ - relationship: '&IDR_Group_Layout_Option__used_by__Group_Layout;'
+ index: 4266
+ sourceClassId: '&IDC_GroupLayoutOption;'
+ type: 'used by'
+ destinationClassId: '&IDC_GroupLayout;'
+ siblingRelationshipId: '&IDR_Group_Layout__uses__Group_Layout_Option;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01603-GroupLayoutOption.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01603-GroupLayoutOption.yaml
new file mode 100644
index 0000000..b238767
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01603-GroupLayoutOption.yaml
@@ -0,0 +1,14 @@
+- entityDefinitions:
+ - IDC_GroupLayoutOption: '{cafe4a35-f89c-4d73-a645-8788c5781757}'
+
+ - IDI_GroupLayoutOption_Tabbed: '{f600c4f6-964b-4a27-b5b0-24fd4c8d0878}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_GroupLayoutOption;'
+ name: 'Group Layout Option'
+ index: 1603
+ customTagName: 'groupLayoutOption'
+
+ - groupLayoutOption: '&IDI_GroupLayoutOption_Tabbed;'
+ name: 'Tabbed'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04296-ReportDefinition.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04296-ReportDefinition.yaml
new file mode 100644
index 0000000..1571722
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04296-ReportDefinition.yaml
@@ -0,0 +1,64 @@
+- entityDefinitions:
+ - IDC_ReportDefinition: '{19D947B6-CE82-4EEE-92EC-A4E01E27F2DB}'
+ - IDR_Report_Definition__has__Report_Column: '{05d8644c-111a-42c5-9494-76c6b2898380}'
+ - IDR_Report_Column__for__Report_Definition: '{0f4fbce4-bd02-4de0-8676-7596fb202b28}'
+ - IDR_Report_Definition__has__Report_Sort_Descriptor: '{91583cc3-6007-40e5-a789-d08c0ff975e6}'
+ - IDR_Report_Sort_Descriptor__for__Report_Definition: '{5131d10c-ac40-42d0-b831-54f78d8f70dd}'
+ - IDR_Report_Definition__uses__Data_Source: '{1DE7B484-F9E3-476A-A9D3-7D2A86B55845}'
+ - IDR_Data_Source__used_by__Report_Definition: '{05DA3D00-0EAE-454E-A7D9-C7382EDCD15F}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ReportDefinition;'
+ name: Report Definition
+ index: 4296
+ abstract: yes
+ moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+
+ - relationship: '&IDR_Report_Definition__has__Report_Column;'
+ index: 3654
+ sourceClassId: '&IDC_ReportDefinition;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportColumn;'
+ siblingRelationshipId: '&IDR_Report_Column__for__Report_Definition;'
+ singular: no
+
+ - relationship: '&IDR_Report_Column__for__Report_Definition;'
+ index: 3655
+ sourceClassId: '&IDC_ReportColumn;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportDefinition;'
+ siblingRelationshipId: '&IDR_Report_Definition__has__Report_Column;'
+ singular: no
+
+ - relationship: '&IDR_Report_Definition__has__Report_Sort_Descriptor;'
+ index: 3658
+ sourceClassId: '&IDC_ReportDefinition;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportSortDescriptor;'
+ siblingRelationshipId: '&IDR_Report_Sort_Descriptor__for__Report_Definition;'
+ singular: no
+
+ - relationship: '&IDR_Report_Sort_Descriptor__for__Report_Definition;'
+ index: 3659
+ sourceClassId: '&IDC_ReportSortDescriptor;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportDefinition;'
+ siblingRelationshipId: '&IDR_Report_Definition__has__Report_Sort_Descriptor;'
+ singular: no
+
+ - relationship: '&IDR_Report_Definition__uses__Data_Source;'
+ index: 3718
+ sourceClassId: '&IDC_ReportDefinition;'
+ type: 'uses'
+ destinationClassId: '&IDC_DataSource;'
+ siblingRelationshipId: '&IDR_Data_Source__used_by__Report_Definition;'
+ singular: yes
+
+ - relationship: '&IDR_Data_Source__used_by__Report_Definition;'
+ index: 3719
+ sourceClassId: '&IDC_DataSource;'
+ type: 'used by'
+ destinationClassId: '&IDC_ReportDefinition;'
+ siblingRelationshipId: '&IDR_Report_Definition__uses__Data_Source;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04310-ReportColumn.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04310-ReportColumn.yaml
new file mode 100644
index 0000000..2ee0102
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04310-ReportColumn.yaml
@@ -0,0 +1,57 @@
+- entityDefinitions:
+ - IDC_ReportColumn: '{BEFE99A1-B2EB-4365-A2C9-061C6609037B}'
+
+ - IDR_Report_Column__has__Report_Field: "{B9026910-7E91-4EE1-B5F2-D7B740614831}"
+ - IDR_Report_Field__for__Report_Column: '{82f6833d-5098-4477-8ab6-7d1118dcebf3}'
+ - IDR_Report_Column__has__Report_Object: '{a8d3b1d1-095f-4587-b417-02f204ae7dbd}'
+ - IDR_Report_Object__for__Report_Column: '{b20ae7ff-79c0-4d2c-b075-6fd18b431772}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - class: '&IDC_ReportColumn;'
+ name: Report Column
+ index: 4310
+ moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+ registerForTemplate: yes
+ attributes:
+ - instance: '&IDA_Order;'
+ customTagName: 'order'
+ - instance: '&IDA_LabelOverride;'
+ customTagName: 'columnHeadingOverride'
+ relationships:
+ - instance: '&IDR_Report_Column__has__Report_Object;'
+ customTagName: 'reportObjectId'
+ - instance: '&IDR_Report_Column__has__Report_Field;'
+ customTagName: 'reportFieldId'
+
+ - relationship: '&IDR_Report_Column__has__Report_Field;'
+ index: 3692
+ sourceClassId: '&IDC_ReportColumn;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportField;'
+ siblingRelationshipId: '&IDR_Report_Field__for__Report_Column;'
+ singular: yes
+
+ - relationship: '&IDR_Report_Field__for__Report_Column;'
+ index: 3693
+ sourceClassId: '&IDC_ReportField;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportColumn;'
+ siblingRelationshipId: '&IDR_Report_Column__has__Report_Field;'
+ singular: no
+
+ - relationship: '&IDR_Report_Column__has__Report_Object;'
+ index: 3695
+ sourceClassId: '&IDC_ReportColumn;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportObject;'
+ siblingRelationshipId: '&IDR_Report_Object__for__Report_Column;'
+ singular: yes
+
+ - relationship: '&IDR_Report_Object__for__Report_Column;'
+ index: 3696
+ sourceClassId: '&IDC_ReportObject;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportColumn;'
+ siblingRelationshipId: '&IDR_Report_Column__has__Report_Object;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04319-ReportSortDescriptor.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04319-ReportSortDescriptor.yaml
new file mode 100644
index 0000000..6c885ec
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04319-ReportSortDescriptor.yaml
@@ -0,0 +1,73 @@
+- entityDefinitions:
+ - IDC_ReportSortDescriptor: '{26540b51-9a9d-4988-b5a0-199a9f1e4ae1}'
+
+ - IDR_Report_Sort_Descriptor__has__Report_Field: '{ae848770-22dd-454c-8208-28f980bc5ebf}'
+ - IDR_Report_Field__for__Report_Sort_Descriptor: '{419d69c7-477a-43bf-bb9a-421d01894eb7}'
+ - IDR_Report_Sort_Descriptor__has__Report_Sort_Direction: '{e87b778a-4ed2-4ec7-8840-ab14d6be81d8}'
+ - IDR_Report_Sort_Direction_for__Report_Sort_Descriptor: '{6f7d1442-27fb-4d8c-9599-febbe0046d16}'
+
+ - IDA_DisplayHeaders: '{0cb4daad-a3bb-40c2-a842-007ad68e2ed9}'
+ - IDA_SummarizeDetailRows: '{0b8670f0-7f62-46dd-a2be-b7eee37b8149}'
+ - IDA_DisplaySubtotals: '{0b95556c-a40e-471a-b5c3-09dd0f55d232}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+
+ - booleanAttribute: '&IDA_DisplayHeaders;'
+ name: 'Display Headers'
+ - booleanAttribute: '&IDA_SummarizeDetailRows;'
+ name: 'Summarize Detail Rows'
+ - booleanAttribute: '&IDA_DisplaySubtotals;'
+ name: 'Display Subtotals'
+
+ - class: '&IDC_ReportSortDescriptor;'
+ name: Report Sort Descriptor
+ index: 4319
+ moduleId: '&IDI_Module_MochaBaseSystem_Reporting;'
+ registerForTemplate: yes
+ attributes:
+ - instance: '&IDA_DisplayHeaders;'
+ customTagName: 'displayHeaders'
+ - instance: '&IDA_SummarizeDetailRows'
+ customTagName: 'summarizeDetailRows'
+ - instance: '&IDA_DisplaySubtotals;'
+ customTagName: 'displaySubtotals'
+ - instance: '&IDA_LabelOverride;'
+ customTagName: 'groupNameOverride'
+ relationships:
+ - instance: '&IDR_Report_Sort_Descriptor__has__Report_Field;'
+ customTagName: 'reportFieldId'
+ - instance: '&IDR_Report_Sort_Descriptor__has__Report_Sort_Direction;'
+ customTagName: 'sortDirctionId'
+
+ - relationship: '&IDR_Report_Sort_Descriptor__has__Report_Field;'
+ index: 3852
+ sourceClassId: '&IDC_ReportSortDescriptor;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportField;'
+ siblingRelationshipId: '&IDR_Report_Field__for__Report_Sort_Descriptor;'
+ singular: yes
+
+ - relationship: '&IDR_Report_Field__for__Report_Sort_Descriptor;'
+ index: 3853
+ sourceClassId: '&IDC_ReportField;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportSortDescriptor;'
+ siblingRelationshipId: '&IDR_Report_Sort_Descriptor__has__Report_Field;'
+ singular: no
+
+ - relationship: '&IDR_Report_Sort_Descriptor__has__Report_Sort_Direction;'
+ index: 4015
+ sourceClassId: '&IDC_ReportSortDescriptor;'
+ type: 'has'
+ destinationClassId: '&IDC_ReportSortDirection;'
+ siblingRelationshipId: '&IDR_Report_Sort_Direction_for__Report_Sort_Descriptor;'
+ singular: yes
+
+ - relationship: '&IDR_Report_Sort_Direction_for__Report_Sort_Descriptor;'
+ index: 4016
+ sourceClassId: '&IDC_ReportSortDirection;'
+ type: 'for'
+ destinationClassId: '&IDC_ReportSortDescriptor;'
+ siblingRelationshipId: '&IDR_Report_Sort_Descriptor__has__Report_Sort_Direction;'
+ singular: no
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Class/Class__get__All_Classes.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Class/Class__get__All_Classes.yaml
new file mode 100644
index 0000000..be0bd02
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Class/Class__get__All_Classes.yaml
@@ -0,0 +1,14 @@
+- entityDefinitions:
+ - IDM_Class__get__All_Classes: '{e70beb49-92ee-44fe-9014-5ded09cd8726}'
+ - IDMB_Class__get__All_Classes: '{ff9a0e0f-c72b-4b9f-9b6e-6b536cd5161d}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - getInstancesMethod: '&IDM_Class__get__All_Classes;'
+ forClassId: '&IDC_Class;'
+ returnsWorkSetId: '&IDI_WorkSet_ClassNonsingular;'
+ verb: 'get'
+ name: 'All Classes'
+ selectsInstancesOfClass: '&IDC_Class;'
+ - returnInstanceSetMethodBinding: '&IDMB_Class__get__All_Classes;'
+ executesMethod: '&IDM_Class__get__All_Classes;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Instance/Instance__get__Parent_Class.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Instance/Instance__get__Parent_Class.yaml
index c64ffc2..17647e4 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Instance/Instance__get__Parent_Class.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Instance/Instance__get__Parent_Class.yaml
@@ -20,6 +20,3 @@
# - globalIdentifier: '{5e89d13d-70e7-45e1-886c-ca2244eb3edf}'
# assignsToParameter: '&IDC_Method;'
# assignsFromWorkData: '&IDI_WorkSet_MethodSingular;'
-
-# {25f94f39-7788-44f4-9904-3424e39c4989}'
-# {4b49f9da-19d7-4a7c-b3a0-a9397fbf855c}'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Family_Name.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Family_Name.yaml
new file mode 100644
index 0000000..d636d0c
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Family_Name.yaml
@@ -0,0 +1,15 @@
+- entityDefinitions:
+ - IDM_Person_Name__get__Family_Name: '{ec3ff199-855c-4501-bb43-fd1313188900}'
+ - IDMB_Person_Name__get__Family_Name: '{49c44758-e75d-4fa9-bcc6-54b7cb8b2ea7}'
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - getAttributeMethod: '&IDM_Person_Name__get__Family_Name;'
+ # initialValue: 'Method Example@get Dummy Method Name (BA)*S*P(public)'
+ forClassId: '&IDC_PersonName;'
+ returnsAttributeId: '&IDA_FamilyName;'
+ verb: 'get'
+ name: 'Family Name'
+ accessModifierId: '&IDI_AccessModifier_RootA2;'
+
+ - returnInstanceSetMethodBinding: '&IDMB_Person_Name__get__Family_Name;'
+ executesMethod: '&IDM_Person_Name__get__Family_Name;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Given_Name.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Given_Name.yaml
new file mode 100644
index 0000000..ec7d09a
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Given_Name.yaml
@@ -0,0 +1,15 @@
+- entityDefinitions:
+ - IDM_Person_Name__get__Given_Name: '{3d41778a-b616-4eb9-96ee-747fe685e694}'
+ - IDMB_Person_Name__get__Given_Name: '{9748bd16-2fb0-41b6-9642-b373238af515}'
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - getAttributeMethod: '&IDM_Person_Name__get__Given_Name;'
+ # initialValue: 'Method Example@get Dummy Method Name (BA)*S*P(public)'
+ forClassId: '&IDC_PersonName;'
+ returnsAttributeId: '&IDA_GivenName;'
+ verb: 'get'
+ name: 'Given Name'
+ accessModifierId: '&IDI_AccessModifier_RootA2;'
+
+ - returnInstanceSetMethodBinding: '&IDMB_Person_Name__get__Given_Name;'
+ executesMethod: '&IDM_Person_Name__get__Given_Name;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Columns.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Columns.yaml
new file mode 100644
index 0000000..29e2f04
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Columns.yaml
@@ -0,0 +1,31 @@
+- entityDefinitions:
+ - IDM_Report_Definition__get__Columns: '{9c691f3b-7021-4307-b69e-2b3faca9e35a}'
+ - IDMB_Report_Definition__get__Columns: '{fdf15782-751d-4ecd-b6c4-d2e24a28918f}'
+ - IDMB_Custom_Report_Definition__get__Columns: '{2df89a86-e39d-4eba-b948-5b910d7bde95}'
+ - IDI_WorkSet_ReportColumnNonsingular: '{b0d89e00-5fc0-4c23-b2c4-c571d7697803}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - workSet: '&IDI_WorkSet_ReportColumnNonsingular;'
+ name: 'Report Column [Nonsingular]'
+ singular: no
+
+ - getReferencedInstanceSetMethod: '&IDM_Report_Definition__get__Columns;'
+ forClassId: '&IDC_ReportDefinition;'
+ returnsWorkSetId: '&IDI_WorkSet_ReportColumnNonsingular;'
+ verb: 'get'
+ name: 'Columns'
+ accessModifierId: '&IDI_AccessModifier_RootA2;'
+ referenceInstanceSet: '&IDC_ReportDefinition;'
+ answerInstanceSet: '&IDR_Report_Definition__has__Report_Column;'
+ singular: no
+
+ - returnInstanceSetMethodBinding: '&IDMB_Report_Definition__get__Columns;'
+ executesMethod: '&IDM_Report_Definition__get__Columns;'
+
+ - returnInstanceSetMethodBinding: '&IDMB_Custom_Report_Definition__get__Columns;'
+ executesMethod: '&IDM_Report_Definition__get__Columns;'
+ parameterAssignments:
+ - globalIdentifier: '{419300d1-45be-4fb3-968b-80190791efb7}'
+ assignsToParameter: '&IDC_ReportDefinition;'
+ assignsFromWorkData: '&IDC_CustomReportDefinition;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Sort_Descriptors.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Sort_Descriptors.yaml
new file mode 100644
index 0000000..2c8e623
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Sort_Descriptors.yaml
@@ -0,0 +1,31 @@
+- entityDefinitions:
+ - IDM_Report_Definition__get__Sort_Descriptors: '{46d87458-9289-4760-ad12-1a086f579f36}'
+ - IDMB_Report_Definition__get__Sort_Descriptors: '{ad5ff4c7-1271-464a-8fa2-6b85c92c2b62}'
+ - IDMB_Custom_Report_Definition__get__Sort_Descriptors: '{566205d1-3640-48c4-a0af-778145de81c6}'
+ - IDI_WorkSet_ReportSortDescriptorNonsingular: '{f41c6595-6403-4c47-b907-18856dffa37a}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - workSet: '&IDI_WorkSet_ReportSortDescriptorNonsingular;'
+ name: 'Report Sort Descriptor [Nonsingular]'
+ singular: no
+
+ - getReferencedInstanceSetMethod: '&IDM_Report_Definition__get__Sort_Descriptors;'
+ forClassId: '&IDC_ReportDefinition;'
+ returnsWorkSetId: '&IDI_WorkSet_ReportSortDescriptorNonsingular;'
+ verb: 'get'
+ name: 'Sort Descriptors'
+ accessModifierId: '&IDI_AccessModifier_RootA2;'
+ referenceInstanceSet: '&IDC_ReportDefinition;'
+ answerInstanceSet: '&IDR_Report_Definition__has__Report_Sort_Descriptor;'
+ singular: no
+
+ - returnInstanceSetMethodBinding: '&IDMB_Report_Definition__get__Sort_Descriptors;'
+ executesMethod: '&IDM_Report_Definition__get__Sort_Descriptors;'
+
+ - returnInstanceSetMethodBinding: '&IDMB_Custom_Report_Definition__get__Sort_Descriptors;'
+ executesMethod: '&IDM_Report_Definition__get__Sort_Descriptors;'
+ parameterAssignments:
+ - globalIdentifier: '{f9485942-df25-4b44-a4e0-b5ef4c671460}'
+ assignsToParameter: '&IDC_ReportDefinition;'
+ assignsFromWorkData: '&IDC_CustomReportDefinition;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Top_Level_Report_Filters.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Top_Level_Report_Filters.yaml
new file mode 100644
index 0000000..390d290
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Top_Level_Report_Filters.yaml
@@ -0,0 +1,31 @@
+- entityDefinitions:
+ - IDM_Report_Definition__get__Top_Level_Report_Filters: '{da50d7ce-a113-4cf1-b75c-4a89ef1efcb5}'
+ - IDMB_Report_Definition__get__Top_Level_Report_Filters: '{fbb33940-d107-4e67-afdf-e2e9311ba1ed}'
+ - IDMB_Custom_Report_Definition__get__Top_Level_Report_Filters: '{a58d1636-476b-404d-b48d-7128a84c1312}'
+ - IDI_WorkSet_ReportFilterNonsingular: '{9e13c4e2-55a2-4378-9295-60e5d1889d84}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - workSet: '&IDI_WorkSet_ReportFilterNonsingular;'
+ name: 'Report Filter [Nonsingular]'
+ singular: no
+
+ - getReferencedInstanceSetMethod: '&IDM_Report_Definition__get__Top_Level_Report_Filters;'
+ forClassId: '&IDC_ReportDefinition;'
+ returnsWorkSetId: '&IDI_WorkSet_ReportFilterNonsingular;'
+ verb: 'get'
+ name: 'Top Level Report Filters'
+ accessModifierId: '&IDI_AccessModifier_RootA2;'
+ referenceInstanceSet: '&IDC_ReportDefinition;'
+ answerInstanceSet: '&IDR_Report_Definition__has_top_level__Report_Filter;'
+ singular: no
+
+ - returnInstanceSetMethodBinding: '&IDMB_Report_Definition__get__Top_Level_Report_Filters;'
+ executesMethod: '&IDM_Report_Definition__get__Top_Level_Report_Filters;'
+
+ - returnInstanceSetMethodBinding: '&IDMB_Custom_Report_Definition__get__Top_Level_Report_Filters;'
+ executesMethod: '&IDM_Report_Definition__get__Top_Level_Report_Filters;'
+ parameterAssignments:
+ - globalIdentifier: '{25f94f39-7788-44f4-9904-3424e39c4989}'
+ assignsToParameter: '&IDC_ReportDefinition;'
+ assignsFromWorkData: '&IDC_CustomReportDefinition;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/User/System_User__get__Preferred_Display_Name.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/User/System_User__get__Preferred_Display_Name.yaml
index ac107d7..340b8c4 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/User/System_User__get__Preferred_Display_Name.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/User/System_User__get__Preferred_Display_Name.yaml
@@ -20,7 +20,7 @@
- getReferencedInstanceSetMethod: '&IDM_User__get__Person;'
forClassId: '&IDC_User;'
- returnsWorkSetId: '&IDI_WorkSet_Person;'
+ returnsWorkSetId: '&IDI_WorkSet_PersonSingular;'
verb: 'get'
name: 'Person'
accessModifierId: '&IDI_AccessModifier_RootA2;'
@@ -48,7 +48,7 @@
name: 'Preferred Display Name - Given Name'
accessModifierId: '&IDI_AccessModifier_RootA2;'
referenceInstanceSet: '&IDMB_User__get__Preferred_Display_Name;'
- answerAttribute: '&IDA_GivenName;'
+ answerAttribute: '&IDMB_Person_Name__get__Given_Name;'
- returnAttributeMethodBinding: '&IDMB_User__get__Preferred_Display_Name_-_Given_Name;'
executesMethod: '&IDM_User__get__Preferred_Display_Name_-_Given_Name;'
@@ -60,7 +60,7 @@
name: 'Preferred Display Name - Family Name'
accessModifierId: '&IDI_AccessModifier_RootA2;'
referenceInstanceSet: '&IDMB_User__get__Preferred_Display_Name;'
- answerAttribute: '&IDA_FamilyName;'
+ answerAttribute: '&IDMB_Person_Name__get__Family_Name;'
- returnAttributeMethodBinding: '&IDMB_User__get__Preferred_Display_Name_-_Family_Name;'
executesMethod: '&IDM_User__get__Preferred_Display_Name_-_Family_Name;'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Reports/All Classes.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Reports/All Classes.yaml
new file mode 100644
index 0000000..4cbf871
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Reports/All Classes.yaml
@@ -0,0 +1,12 @@
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - customReport: '{7CA0EFA9-6849-4AAE-BF81-F055C006853B}'
+ name: 'All Classes'
+ reportTypeId: '&IDI_ReportType_Advanced;'
+ dataSourceId: '&IDI_DataSource_AllClasses;'
+ columns:
+ - globalIdentifier: '{e2daab1e-e0fc-4a25-8793-6a4968b5b003}'
+ order: 'a'
+ reportObjectId: '&IDI_ReportObject_Class;'
+ reportFieldId: '&IDI_ReportField_Class_Class;'
+ columnHeadingOverride: 'Class'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Columns.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Columns.yaml
new file mode 100644
index 0000000..43d76a5
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Columns.yaml
@@ -0,0 +1,40 @@
+- entityDefinitions:
+ - IDE_CustomReportDefinition_Columns: '{9300e797-900d-4675-9971-9874aaa94393}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - element: '&IDE_CustomReportDefinition_Columns;'
+ name: 'columns'
+ label: ''
+ elementContents:
+ - globalIdentifier: '{b46e820a-1872-44ba-8382-f424e8785439}'
+ order: a
+ label: 'Column'
+ defaultDataType: '&IDC_ReportColumn;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ - globalIdentifier: '{c225cec4-15a7-4b0f-808e-333c2b8c61a2}'
+ order: b
+ label: 'Order'
+ defaultDataType: '&IDA_Order;'
+ - globalIdentifier: '{3c16454c-4d77-427c-9e96-6a1287fd9146}'
+ order: c
+ label: 'Report Object'
+ defaultDataType: '&IDR_Report_Column__has__Report_Object;'
+ - globalIdentifier: '{25d343d7-3609-41ce-8727-f301bbdceb87}'
+ order: d
+ label: 'Report Field'
+ defaultDataType: '&IDR_Report_Column__has__Report_Field;'
+ - globalIdentifier: '{ee1a5e58-dd46-4633-898d-a78875c5b439}'
+ order: e
+ label: 'Column Heading Override'
+ defaultDataType: '&IDA_LabelOverride;'
+ # - globalIdentifier: '{55a7cde0-7b69-4862-bf56-0c4dbf83c604}'
+ # label: 'Column Heading Override XML Alias'
+ # defaultDataType: '&IDA_LabelOverrideXML;'
+ # - globalIdentifier: '{59fb155a-631a-472c-b3d1-4ea46b4962f3}'
+ # label: 'Format'
+ # defaultDataType: '&ID;'
+ # - globalIdentifier: '{836e1962-1a46-4d14-a8d3-9cba0a8a9b26}'
+ # label: 'Options'
+ # defaultDataType: '&IDR_Report_Column__has__Report_Column_Display_Option;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Common.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Common.yaml
new file mode 100644
index 0000000..a5d8949
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Common.yaml
@@ -0,0 +1,39 @@
+- entityDefinitions:
+ - IDI_TaskCategory_CustomReportDefinition: '{7ba7db38-99ba-43fe-92f3-b5c72feef739}'
+
+ - IDE_CustomReportDefinition_Select: '{feb43661-a27b-4832-9809-dfa535dd81a7}'
+ - IDE_CustomReportDefinition_Definition: '{eede4bbc-e965-4332-a69b-3fab29e0ca39}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - taskCategory: '&IDI_TaskCategory_CustomReportDefinition;'
+ name: 'Custom Report Definition'
+
+ - element: '&IDE_CustomReportDefinition_Select;'
+ name: 'Custom Report Definition selection subedit'
+ elementContents:
+ - globalIdentifier: '{7c1704b0-d76d-417d-9ff0-1a39668efb7e}'
+ defaultDataType: '&IDC_CustomReportDefinition;'
+ label: 'Custom Report Definition'
+
+ - element: '&IDE_CustomReportDefinition_Definition;'
+ name: 'Custom Report Definition definition subedit'
+ elementContents:
+ - globalIdentifier: '{9f40d847-e0c3-4138-8e79-05696b402b3d}'
+ defaultDataType: '&IDA_Name;'
+ label: 'Report Name'
+ - globalIdentifier: '{c6b58891-a706-4b94-85aa-f57dff153d22}'
+ label: 'Report Type'
+ - globalIdentifier: '{acc73336-a708-4107-a4ab-4154a080bc6e}'
+ label: 'Data Source'
+ defaultDataType: '&IDR_Report_Definition__uses__Data_Source;'
+ - globalIdentifier: '{80fbf3da-196a-4874-af38-8aa2721d77ec}'
+ label: 'Data Source Type'
+ - globalIdentifier: '{17ef6e2b-f1cd-43f8-8fe2-62a282d41843}'
+ label: 'Primary Report Object'
+ - globalIdentifier: '{b386d569-fe21-48fc-bc44-889ca5c314a7}'
+ label: 'Report Tags'
+
+ - groupLayout: '{1e86a47a-45e3-488b-a979-b4db2d2cc7f0}'
+ options:
+ - instance: '&IDI_GroupLayoutOption_Tabbed;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Edit.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Edit.yaml
new file mode 100644
index 0000000..0d9aaaf
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Edit.yaml
@@ -0,0 +1,59 @@
+- entityDefinitions:
+ - IDI_Task_CustomReportDefinition_Edit: '{e1e8fc72-1807-4efe-b829-028e01db5d0c}'
+ - IDE_CustomReportDefinition_Edit: '{b4a041b0-7290-4ca9-a199-22ff2d05a077}'
+
+ - IDE_CustomReportDefinition_Edit_Start: '{c38be0aa-822a-4fa2-a0c4-e5b8d0758ca7}'
+ - IDM_CustomReportDefinition_Edit_Start: '{a9a86581-f241-4b75-81f4-b783af3f1411}'
+
+ - IDMB_CustomReportDefinition_Edit: '{2d3ea0bf-cb3f-41c5-8477-8876ba4a507a}'
+ - IDM_CustomReportDefinition_Edit: '{0e157ae5-e9dc-4054-8f09-89fec6e6cd48}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - sequenceTask: '&IDI_Task_CustomReportDefinition_Edit;'
+ name: 'Edit Custom Report Definition'
+ initiatingElement: '&IDE_CustomReportDefinition_Edit_Start;'
+ taskCategory: '&IDI_TaskCategory_CustomReportDefinition;'
+
+ - controlTransactionMethod: '&IDM_CustomReportDefinition_Edit_Start;'
+ forClassId: '&IDC_CustomReportDefinition;'
+ verb: ''
+ name: 'Custom Report Definition Edit Start'
+ buildsResponseWithBRMB: '&IDMB_CustomReportDefinition_Edit;'
+
+ - element: '&IDE_CustomReportDefinition_Edit_Start;'
+ name: 'Edit Custom Report Definition Start'
+ processedByCTMethod: '&IDM_CustomReportDefinition_Edit_Start;'
+ elementContents:
+ - globalIdentifier: '{09f05ead-e2eb-4eec-b608-def7ac917219}'
+ defaultDataType: '&IDE_CustomReportDefinition_Select;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+
+ - element: '&IDE_CustomReportDefinition_Edit;'
+ name: 'Edit Custom Report Definition'
+ elementContents:
+ - globalIdentifier: '{932298ef-2bf1-46f8-aa43-46701e06fb8c}'
+ defaultDataType: '&IDC_CustomReportDefinition;'
+ label: 'Custom Report Definition'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_NotEnterable;'
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ - globalIdentifier: '{9eca3f76-beb1-43bc-8863-e72c6e86a554}'
+ defaultDataType: '&IDE_CustomReportDefinition_Definition;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+ - globalIdentifier: '{a9c65f34-60aa-47ca-9fa2-1c914140a8f5}'
+ defaultDataType: '&IDE_CustomReportDefinition_TabsSubedit;'
+ layout: '{1e86a47a-45e3-488b-a979-b4db2d2cc7f0}'
+ # displayOptions:
+ # - instance: '&IDI_DisplayOption_Singular;'
+ # - instance: '&IDI_DisplayOption_ShowSubelementsTabbed;'
+
+ - buildUIResponseMethod: '&IDM_CustomReportDefinition_Edit;'
+ usesExecutableReturningElement: '&IDE_CustomReportDefinition_Edit;'
+
+ - buildResponseMethodBinding: '&IDMB_CustomReportDefinition_Edit;'
+ executesMethod: '&IDM_CustomReportDefinition_Edit;'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Filter.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Filter.yaml
new file mode 100644
index 0000000..c36908e
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Filter.yaml
@@ -0,0 +1,66 @@
+- entityDefinitions:
+ - IDE_CustomReportDefinition_Filter: '{e26a1636-4d0e-4900-8a39-1b62463109fa}'
+ - IDE_CustomReportDefinition_FilterTab: '{11006832-e041-4426-b6e9-29a1a5ae3bef}'
+
+ - IDA_OpenParenthesis: '{161a8b37-42a2-48e4-be2f-f7d7094dbf2a}'
+ - IDA_CloseParenthesis: '{7b180342-9c3a-47d1-b3db-723df0a1a813}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - element: '&IDE_CustomReportDefinition_FilterTab;'
+ elementContents:
+ - globalIdentifier: '{31285070-e530-428a-b374-a99f2937acd3}'
+ order: a
+ label: 'Filter'
+ defaultDataType: '&IDE_CustomReportDefinition_Filter;'
+ builtFromBEMProcess:
+ - globalIdentifier: '{a0be9193-8652-4222-8d49-b8132a26a03d}'
+ loopExecutableReturningInstanceSet: '&IDMB_Custom_Report_Definition__get__Top_Level_Report_Filters;'
+
+ - textAttribute: '&IDA_OpenParenthesis;'
+ name: 'Open Parenthesis'
+ - textAttribute: '&IDA_CloseParenthesis;'
+ name: 'Open Parenthesis'
+
+ - element: '&IDE_CustomReportDefinition_Filter;'
+ name: 'Filter'
+ label: ''
+ elementContents:
+ - globalIdentifier: '{16934f1b-a44c-4e8b-924d-c28efe55c6e8}'
+ order: a
+ label: 'Report Filter'
+ defaultDataType: '&IDC_ReportFilter;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ - globalIdentifier: '{15093b4c-4803-4fb9-902c-e0375f1ba309}'
+ order: b
+ label: 'Order'
+ defaultDataType: '&IDA_Order;'
+ - globalIdentifier: '{d8ac69cd-c237-4210-9dea-71462d3b7706}'
+ order: c
+ label: 'And/Or'
+ # defaultDataType: '&IDR_Report_Filter__has__Conjunction;'
+ - globalIdentifier: '{81629b9b-8c4f-4f86-8adb-24dc49b6e836}'
+ order: d
+ label: '('
+ defaultDataType: '&IDA_OpenParenthesis;'
+ - globalIdentifier: '{4140f83d-5021-467e-abe5-77cf2c74e15c}'
+ order: e
+ label: 'Field'
+ # defaultDataType: '&IDR_Report_Filter__has__Report_Field;'
+ - globalIdentifier: '{50368731-8f61-4878-bf06-792cfdc18a57}'
+ order: f
+ label: 'Operator'
+ # defaultDataType: '&IDR_Report_Filter__has__Relational_Operator;'
+ - globalIdentifier: '{bd583c45-b689-4897-8b83-bad768e86690}'
+ order: g
+ label: 'Comparison Type'
+ # defaultDataType: '&IDR_Report_Filter__has__Comparison_Type;'
+ - globalIdentifier: '{e2527ba7-1051-49c5-940a-26def6a105bf}'
+ order: h
+ label: 'Comparison Value'
+ # defaultDataType: '&IDR_Report_Filter__has__Comparison_Value;'
+ - globalIdentifier: '{0a1dda28-f28a-4bcd-b306-a49ac9a33208}'
+ order: i
+ label: ')'
+ defaultDataType: '&IDA_CloseParenthesis;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/SortAndGroup.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/SortAndGroup.yaml
new file mode 100644
index 0000000..7b28646
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/SortAndGroup.yaml
@@ -0,0 +1,50 @@
+- entityDefinitions:
+ - IDE_CustomReportDefinition_Sort: '{a711ec3e-5cd8-4546-90ea-c6f9452a438e}'
+ - IDE_CustomReportDefinition_SortAndGroup: '{3b574573-41fd-4278-858d-288f79d614cb}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - element: '&IDE_CustomReportDefinition_SortAndGroup;'
+ elementContents:
+ - globalIdentifier: '{a2fdcccf-c4a8-43a7-830a-019138721d9b}'
+ order: a
+ label: 'Sort and Group'
+ defaultDataType: '&IDE_CustomReportDefinition_Sort;'
+ builtFromBEMProcess:
+ - globalIdentifier: '{5717e5ac-5d3d-4b47-b561-7609f22ca96c}'
+ loopExecutableReturningInstanceSet: '&IDMB_Custom_Report_Definition__get__Sort_Descriptors;'
+
+ - element: '&IDE_CustomReportDefinition_Sort;'
+ name: 'sort'
+ label: ''
+ elementContents:
+ - globalIdentifier: '{bc41fe88-646a-4fe0-91f5-7b6d6bbe24e5}'
+ order: a
+ label: 'Sort And Group Line'
+ defaultDataType: '&IDC_ReportSortDescriptor;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ - globalIdentifier: '{8fe8a177-abea-494e-8df3-9952bbc46a90}'
+ order: b
+ label: 'Field'
+ defaultDataType: '&IDR_Report_Sort_Descriptor__has__Report_Field;'
+ - globalIdentifier: '{eb6702e3-c866-483e-98a2-d4f95f84b971}'
+ order: c
+ label: 'Sort Direction'
+ defaultDataType: '&IDR_Report_Sort_Descriptor__has__Report_Sort_Direction;'
+ - globalIdentifier: '{8ae3c38c-73ec-4abe-bd9d-add460b5549b}'
+ order: d
+ label: 'Display Headers'
+ defaultDataType: '&IDA_DisplayHeaders;'
+ - globalIdentifier: '{7d3ade14-4013-405e-b30f-05d75dec971b}'
+ order: e
+ label: 'Summarize Detail Rows'
+ defaultDataType: '&IDA_SummarizeDetailRows;'
+ - globalIdentifier: '{ea671e82-ec37-45ae-b7c1-f4b123354526}'
+ order: f
+ label: 'Display Subtotals'
+ defaultDataType: '&IDA_DisplaySubtotals;'
+ - globalIdentifier: '{d359f737-a3f3-4891-97e0-a96e33d38731}'
+ order: g
+ label: 'Group Name Override'
+ defaultDataType: '&IDA_LabelOverride;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Tabs.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Tabs.yaml
new file mode 100644
index 0000000..46e2d56
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Tabs.yaml
@@ -0,0 +1,26 @@
+- entityDefinitions:
+ - IDE_CustomReportDefinition_TabsSubedit: '{8329b15a-f44a-4431-992d-0976d4e5d724}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - element: '&IDE_CustomReportDefinition_TabsSubedit;'
+ name: 'Custom Report Definition Tabs'
+ elementContents:
+ - globalIdentifier: '{84e17402-6b8f-46b1-a4f6-1d5fb795906b}'
+ defaultDataType: '&IDE_CustomReportDefinition_Columns;'
+ label: 'Columns'
+ builtFromBEMProcess:
+ - globalIdentifier: '{4a7b99a4-d4e6-4c4b-8012-27f3dc1db912}'
+ loopExecutableReturningInstanceSet: '&IDMB_Custom_Report_Definition__get__Columns;'
+ - globalIdentifier: '{86e09b51-1b58-4097-bfcd-3d2afdecdb01}'
+ defaultDataType: '&IDE_CustomReportDefinition_SortAndGroup;'
+ label: 'Sort and Group'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+ - globalIdentifier: '{5b0b5225-c58b-48e3-9a02-b15ae85024f8}'
+ defaultDataType: '&IDE_CustomReportDefinition_FilterTab;'
+ label: 'Filter'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
\ No newline at end of file
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/View.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/View.yaml
new file mode 100644
index 0000000..cb30a1d
--- /dev/null
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/View.yaml
@@ -0,0 +1,59 @@
+- entityDefinitions:
+ - IDI_Task_CustomReportDefinition_View: '{aa9cb2d5-2636-4bfe-91a1-476362fb8a12}'
+ - IDE_CustomReportDefinition_View: '{fa7cc4b8-9fd5-418e-8599-be0ca8143572}'
+
+ - IDE_CustomReportDefinition_View_Start: '{13754cdb-53d1-4280-9f65-38edb821452e}'
+ - IDM_CustomReportDefinition_View_Start: '{411f9b4b-5461-41c7-bd91-5e7cce525a0d}'
+
+ - IDMB_CustomReportDefinition_View: '{6b775774-ee8c-4a5d-a55d-fabfb2e2995a}'
+ - IDM_CustomReportDefinition_View: '{d80b7843-5670-4ad1-9baa-10966ee0b957}'
+
+- library: '&IDL_MochaBaseSystem;'
+ instances:
+ - sequenceTask: '&IDI_Task_CustomReportDefinition_View;'
+ name: 'View Custom Report Definition'
+ initiatingElement: '&IDE_CustomReportDefinition_View_Start;'
+ taskCategory: '&IDI_TaskCategory_CustomReportDefinition;'
+
+ - controlTransactionMethod: '&IDM_CustomReportDefinition_View_Start;'
+ forClassId: '&IDC_CustomReportDefinition;'
+ verb: ''
+ name: 'Custom Report Definition View Start'
+ buildsResponseWithBRMB: '&IDMB_CustomReportDefinition_View;'
+
+ - element: '&IDE_CustomReportDefinition_View_Start;'
+ name: 'View Custom Report Definition Start'
+ processedByCTMethod: '&IDM_CustomReportDefinition_View_Start;'
+ elementContents:
+ - globalIdentifier: '{2737a048-a5d5-4369-95a0-a1739674220a}'
+ defaultDataType: '&IDE_CustomReportDefinition_Select;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+
+ - element: '&IDE_CustomReportDefinition_View;'
+ name: 'View Custom Report Definition'
+ elementContents:
+ - globalIdentifier: '{1ab0bd09-0d88-40c7-84c6-00e3d98f4e35}'
+ defaultDataType: '&IDC_CustomReportDefinition;'
+ label: 'Custom Report Definition'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_NotEnterable;'
+ - instance: '&IDI_DisplayOption_DoNotShow;'
+ - globalIdentifier: '{7ecc0cc5-362a-4bb4-894a-f44368ee46ef}'
+ defaultDataType: '&IDE_CustomReportDefinition_Definition;'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_NotEnterable;'
+ - instance: '&IDI_DisplayOption_Singular;'
+ - instance: '&IDI_DisplayOption_ShowSubelementsVertically;'
+ - globalIdentifier: '{7868e577-1933-4979-8a0b-21b0096dff93}'
+ defaultDataType: '&IDE_CustomReportDefinition_TabsSubedit;'
+ layout: '{1e86a47a-45e3-488b-a979-b4db2d2cc7f0}'
+ displayOptions:
+ - instance: '&IDI_DisplayOption_NotEnterable;'
+
+ - buildUIResponseMethod: '&IDM_CustomReportDefinition_View;'
+ usesExecutableReturningElement: '&IDE_CustomReportDefinition_View;'
+
+ - buildResponseMethodBinding: '&IDMB_CustomReportDefinition_View;'
+ executesMethod: '&IDM_CustomReportDefinition_View;'
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/ManageSystemUserCredentials.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/ManageSystemUserCredentials.yaml
index 338a192..e78baac 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/ManageSystemUserCredentials.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/ManageSystemUserCredentials.yaml
@@ -36,6 +36,16 @@
defaultDataType: '&IDA_EmailAddress;'
- globalIdentifier: '{862b454f-c84a-439e-8a2b-6d841aae158a}'
defaultDataType: '&IDA_GenerateRandomPassword;'
+ dynamicDisplayOptions:
+ - globalIdentifier: '{6eebeb9c-02bf-47d3-b73a-3a87c9e4aadb}'
+ modifiesElementContents:
+ - instance: '{65b01825-c4f8-4e48-89ee-be42806b109d}'
+ - instance: '{f68d0b17-6bd7-439d-8fd2-2f7afee73b7f}'
+ # condition:
+ # - trueConditions:
+ # - globalIdentifier: '&IDMB_Generate_Random_Password__is__True;'
+ addsDisplayOptions:
+ - instance: '&IDI_DisplayOption_NotEnterable;'
- globalIdentifier: '{65b01825-c4f8-4e48-89ee-be42806b109d}'
defaultDataType: '&IDA_NewPassword;'
displayOptions:
diff --git a/common/libraries/yaml/net.alcetech.Mocha.System/009-Users/zq-developer.yaml b/common/libraries/yaml/net.alcetech.Mocha.System/009-Users/zq-developer.yaml
index 264c0f3..15539cb 100644
--- a/common/libraries/yaml/net.alcetech.Mocha.System/009-Users/zq-developer.yaml
+++ b/common/libraries/yaml/net.alcetech.Mocha.System/009-Users/zq-developer.yaml
@@ -2,10 +2,12 @@
instances:
- user: '{B066A54B-B160-4510-A805-436D3F90C2E6}'
username: zq-environments
- preferredDisplayName:
- - globalIdentifier: '{ab08cff9-4e80-4213-9d6b-5d97dcf3993a}'
- givenName: 'ZeQuaL Environment Automation'
- familyName: ''
+ forPerson:
+ - globalIdentifier: '{271f0191-6912-48ec-a990-b7e0ccfc24b1}'
+ names:
+ - globalIdentifier: '{ab08cff9-4e80-4213-9d6b-5d97dcf3993a}'
+ givenName: 'ZeQuaL Environment Automation'
+ familyName: ''
- user: '{098DDA82-CD04-4B53-8C75-89D420EA6902}'
username: zq-developer
diff --git a/php/mocha/lib/mocha/core/KnownClassGuids.inc.php b/php/mocha/lib/mocha/core/KnownClassGuids.inc.php
index ebe090a..cb68708 100644
--- a/php/mocha/lib/mocha/core/KnownClassGuids.inc.php
+++ b/php/mocha/lib/mocha/core/KnownClassGuids.inc.php
@@ -67,6 +67,7 @@ class KnownClassGuids
const ParameterAssignment = "c7aa0c7c50d844fd9b05a558a38a6954"; // 28
const ElementContentDisplayOption = "bd68052adaa443b98965d38095473170";
+ const ReportDefinition = "{19D947B6-CE82-4EEE-92EC-A4E01E27F2DB}";
const ReportObject = "ff7d5757d9d948abab045932e7341a90";
const Validation = "3E45AA176E8E41DB9C94E84B4B4176E8";
@@ -135,6 +136,7 @@ class KnownClassGuids
const ButtonLayout = "6f6338db68e04cc7b257d1b97cf3cb92";
const ImageLayout = "4b1bb7c6168e4ce0b4f876dd5069a80b";
+ const GroupLayout = "{108605af-c20d-42eb-af4f-35b2ff701921}";
const BuildAttributeMethod = "{e5879955-0093-48c8-8042-813168578af2}";
const GetAttributeMethod = "{c3ecf8c9-597f-417b-ad65-fae0401719c6}";
diff --git a/php/mocha/lib/mocha/core/KnownRelationshipGuids.inc.php b/php/mocha/lib/mocha/core/KnownRelationshipGuids.inc.php
index 7420b5a..83b2717 100644
--- a/php/mocha/lib/mocha/core/KnownRelationshipGuids.inc.php
+++ b/php/mocha/lib/mocha/core/KnownRelationshipGuids.inc.php
@@ -253,6 +253,12 @@ class KnownRelationshipGuids
const Instance__for__Element_Content = "c3959f84248d4edea3f2f262917c7b56";
const Element_Content__has__Layout = "1ab7412005ea4acab6d3c7e0133e0c4f";
+ const Element_Content__has__EC_Dynamic_Display_Option = "{4a41391a-c325-4182-920a-a94ad28c15fa}";
+
+ const EC_Dynamic_Display_Option__modifies__Element_Content = "{4d091643-2bfc-4b83-b3e4-8a3b22c665a9}";
+
+ const Dynamic_Display_Option__add__Display_Option = "{2ed33b28-f84d-4120-b585-be965cfb691f}";
+ const Dynamic_Display_Option__remove__Display_Option = "{dc06bf0b-70dd-4f71-854d-0f5685e2124f}";
const Element_Content__built_from__BEM_Process = "{3d7094ff-33e5-4800-9e4e-93dde0d1d331}";
diff --git a/php/mocha/lib/mocha/core/OmsContext.inc.php b/php/mocha/lib/mocha/core/OmsContext.inc.php
index de45609..0b73757 100644
--- a/php/mocha/lib/mocha/core/OmsContext.inc.php
+++ b/php/mocha/lib/mocha/core/OmsContext.inc.php
@@ -6,6 +6,7 @@
{
private $elementParms;
public $workData;
+ private $temporaryData;
public $CallStack;
@@ -13,6 +14,7 @@
{
$this->elementParms = array();
$this->workData = array();
+ $this->temporaryData = array();
$this->CallStack = array();
}
@@ -86,6 +88,22 @@
return $defaultValue;
}
+
+ public function setTemporaryVariable(InstanceReference $key, $value)
+ {
+ $key = $key->GlobalIdentifier->__toStringFormat(false, "", "");
+ $this->temporaryData[$key] = $value;
+ }
+ public function getTemporaryVariable(string|InstanceReference $key, $defaultValue = null)
+ {
+ $key = $key->GlobalIdentifier->__toStringFormat(false, "", "");
+ if (array_key_exists($key, $this->temporaryData))
+ {
+ return $this->temporaryData[$key];
+ }
+ return $defaultValue;
+ }
+
}
?>
\ No newline at end of file
diff --git a/php/mocha/lib/mocha/oms/Oms.inc.php b/php/mocha/lib/mocha/oms/Oms.inc.php
index fe2a098..510b037 100644
--- a/php/mocha/lib/mocha/oms/Oms.inc.php
+++ b/php/mocha/lib/mocha/oms/Oms.inc.php
@@ -854,5 +854,14 @@
{
return $this->__is_a_impl($inst, $what, 0);
}
+
+ public function setSessionAttributeValue(OmsContext $context, InstanceReference $instance, mixed $value)
+ {
+ $context->setTemporaryVariable($instance, $value);
+ }
+ public function getSessionAttributeValue(OmsContext $context, InstanceReference $instance, mixed $defaultValue = null)
+ {
+ return $context->getTemporaryVariable($instance, $defaultValue);
+ }
}
-?>
+?>
\ No newline at end of file
diff --git a/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedAttributeMethodImplementation.inc.php b/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedAttributeMethodImplementation.inc.php
index ff44ff4..f8db67d 100644
--- a/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedAttributeMethodImplementation.inc.php
+++ b/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedAttributeMethodImplementation.inc.php
@@ -9,6 +9,7 @@
use Mocha\Core\OmsContext;
use Mocha\Oms\Oms;
use Mocha\Oms\OmsMetadataException;
+ use Mocha\Oms\OmsMetadataExceptionSeverity;
use Mocha\Oop\MethodImplementation;
use Phast\UUID;
@@ -22,6 +23,15 @@
$loopOnInstanceSet = $oms->getRelatedInstance($method, KnownRelationshipGuids::Get_Referenced_Attribute_Method__uses_reference__Executable_returning_Instance_Set);
$answer = $oms->getRelatedInstance($method, KnownRelationshipGuids::Get_Referenced_Attribute_Method__uses_answer__Executable_returning_Attribute);
$targetInstance = $context->getWorkData($forClass);
+
+ if ($oms->is_a($loopOnInstanceSet, KnownClassGuids::MethodBinding))
+ {
+ $loopOnInstanceSetTarget = $oms->execute($context, $loopOnInstanceSet);
+ if ($loopOnInstanceSetTarget === null)
+ {
+ }
+ $targetInstance = $context->getWorkData($loopOnInstanceSetTarget);
+ }
$refISRel = $oms->execute($context, $loopOnInstanceSet);
$mx = array
@@ -31,7 +41,7 @@
"Loop on Instance Set" => $loopOnInstanceSet,
"Get Attribute" => $answer,
"For Class" => $forClass,
- "For Class Instantiation" => $targetInstance,
+ "Target Instance" => $targetInstance,
"Referenced Instance Relationship" => $refISRel,
);
if ($refISRel !== null)
@@ -58,6 +68,8 @@
$value = $context->getWorkData($answerVal); // $this->getAttributeValue($refIS, $answer);
$mx["Answer Value"] = $value;
$context->setWorkData($returnsAttribute, $value);
+
+ //$oms->MetadataExceptions[] = new OmsMetadataException("GRA call", $mx, $context->CallStack, OmsMetadataExceptionSeverity::Information);
}
else
{
diff --git a/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedInstanceSetMethodImplementation.inc.php b/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedInstanceSetMethodImplementation.inc.php
index c6effe8..05afc23 100644
--- a/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedInstanceSetMethodImplementation.inc.php
+++ b/php/mocha/lib/mocha/oop/methodImplementations/GetReferencedInstanceSetMethodImplementation.inc.php
@@ -21,6 +21,30 @@
$forClass = $oms->getRelatedInstance($method, KnownRelationshipGuids::Method__for__Class);
$returnsWorkSet = $oms->getRelatedInstance($method, KnownRelationshipGuids::Get_Referenced_Instance_Set_Method__returns__Work_Set);
$loopOnInstanceSet = $oms->getRelatedInstance($method, KnownRelationshipGuids::Get_Referenced_Instance_Set_Method__uses_reference__Executable_returning_Instance_Set);
+ $targetInstance = null;
+
+ if ($oms->is_a($loopOnInstanceSet, KnownClassGuids::MethodBinding))
+ {
+ $loopOnInstanceSetTarget = $oms->execute($context, $loopOnInstanceSet);
+ if ($loopOnInstanceSetTarget === null)
+ {
+ $mx = array
+ (
+ "Method Instance" => $method,
+ "Returns Work Set" => $returnsWorkSet,
+ "Loop on Instance Set" => $loopOnInstanceSet,
+ "For Class" => $forClass
+ );
+
+ $oms->MetadataExceptions[] = new OmsMetadataException("loop on instance set was an MB, but returned null", $mx, null, OmsMetadataExceptionSeverity::Information);
+ }
+ $targetInstance = $context->getWorkData($loopOnInstanceSetTarget);
+ }
+ else
+ {
+ $targetInstance = $context->getWorkData($loopOnInstanceSet);
+ }
+
$relationship = $oms->getRelatedInstance($method, KnownRelationshipGuids::Get_Referenced_Instance_Set_Method__uses_answer__Executable_returning_Instance_Set);
$relhack = false;
if (!$oms->is_a($relationship, KnownClassGuids::Relationship))
@@ -29,7 +53,6 @@
$relhack = true;
}
- $targetInstance = $context->getWorkData($loopOnInstanceSet);
$mx = array
(
"Method Instance" => $method,
@@ -37,9 +60,13 @@
"Loop on Instance Set" => $loopOnInstanceSet,
"Get Relationship" => $relationship,
"For Class" => $forClass,
- "For Class Instantiation" => $targetInstance,
- "Parm Setting" => "For " . $forClass->InstanceKey . " = " . ($targetInstance === null ? "empty" : $targetInstance->InstanceKey)
+ "Target Instance" => $targetInstance
);
+ if ($targetInstance === null)
+ {
+ $targetInstance = $loopOnInstanceSet;
+ }
+
if ($targetInstance !== null)
{
$singular = $oms->getAttributeValue($returnsWorkSet, KnownAttributeGuids::Singular);
@@ -62,6 +89,7 @@
{
//$oms->MetadataExceptions[] = new OmsMetadataException("GRS with relhack failed", $mx, null, OmsMetadataExceptionSeverity::Information);
}
+ // $oms->MetadataExceptions[] = new OmsMetadataException("GRS call", $mx, null, OmsMetadataExceptionSeverity::Information);
}
else
{
diff --git a/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.inc.php b/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.inc.php
index 2118d55..3e4590a 100644
--- a/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.inc.php
+++ b/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.inc.php
@@ -25,6 +25,8 @@
use Phast\UUID;
use Phast\WebControlAttribute;
use Phast\WebControls\Button;
+ use Phast\WebControls\TabContainer;
+ use Phast\WebControls\TabPage;
class HTMLRenderer
{
@@ -303,7 +305,7 @@
$DO_Singular = $oms->getInstanceByGlobalIdentifier(KnownInstanceGuids::DisplayOption__Singular);
$dummy = [ ];
- $this->renderElement($dummy, $value, [ $DO_Singular ]);
+ $this->renderElement($dummy, $value, [ $DO_Singular ]);
}
}
else if (is_string($value))
@@ -994,6 +996,7 @@
if (
($ecLayoutParentClass->GlobalIdentifier->__is_equal(UUID::parse(KnownClassGuids::ButtonLayout)))
|| ($ecLayoutParentClass->GlobalIdentifier->__is_equal(UUID::parse(KnownClassGuids::ImageLayout)))
+ || ($ecLayoutParentClass->GlobalIdentifier->__is_equal(UUID::parse(KnownClassGuids::GroupLayout)))
)
{
return false;
@@ -1197,6 +1200,37 @@
], $ecStyles));
echo("\"> ");
}
+ else if ($ecLayoutParentClass->GlobalIdentifier->__is_equal(UUID::parse(KnownClassGuids::GroupLayout)))
+ {
+ array_push($parentElementContents, $elementContent);
+
+ $tabContainer = new TabContainer();
+ $tabContainer->ClassList[] = "mcx-element";
+
+ $ecs = $oms->getRelatedInstances($ecInst, KnownRelationshipGuids::Element__has__Element_Content);
+ foreach ($ecs as $ec)
+ {
+ $tp = new TabPage();
+ $tp->Title = $oms->getAttributeValue($ec, KnownAttributeGuids::Label);
+ $tp->ExtraData = array($ec, $parentElementContents, $renderNotEnterable);
+ $tp->Content = function($sender, $extraData)
+ {
+ $pec = $extraData[1];
+ $ec = $extraData[0];
+ if ($ec !== null)
+ {
+ $this->renderElementContent($pec, $ec, $extraData[2]);
+ }
+ else{
+ echo( "ec for this tab is null");
+ }
+ };
+ $tabContainer->TabPages[] = $tp;
+ }
+ $tabContainer->Render();
+
+ array_pop($parentElementContents);
+ }
}
}
else
@@ -1641,6 +1675,12 @@
}
$this->renderBeginTag("body", null, $bodyClasses);
+ $this->renderBeginTag("script", [ "type" => "text/javascript" ]);
+
+ include("HTMLRenderer.js.php");
+
+ $this->renderEndTag("script");
+
$showSpotTimer = false;
if ($showSpotTimer)
{
@@ -2101,8 +2141,10 @@
$mcx_classes[] = "mcx-editable";
}
+ $fullyQualifiedECID = $this->getElementContentId($parentElementContents, $elementContent);
+
// $this->renderBeginTag("tr", [ "data-instance-id" => $ecInst->InstanceKey, "data-ecid" => $elementContent->InstanceKey ], $mcx_classes);
- $this->renderBeginTag("div", [ "data-instance-id" => $ecInst->InstanceKey, "data-ecid" => $elementContent->InstanceKey ], $mcx_classes);
+ $this->renderBeginTag("div", [ "data-instance-id" => $ecInst->InstanceKey, "data-ecid" => $elementContent->InstanceKey, "data-fqecid" => $fullyQualifiedECID ], $mcx_classes);
$title = $this->get__EC_Override_Label_or_default_Instance_Title(array
(
@@ -2195,6 +2237,12 @@
echo ("getElementContentId($parentElementContents, null) . "_count\" value=\"" . $rowCount . "\" />");
}
+ $mcx_classes = [ "mcx-element" ];
+ if ($rowCount === 0)
+ {
+ $mcx_classes[] = "mcx-empty";
+ }
+ $this->renderBeginTag("div", [ "data-instance-id" => $element->InstanceKey ], $mcx_classes);
$this->renderBeginTag("table", [ "data-ecid" => $parentElementContent->InstanceKey, "data-instance-id" => $element->InstanceKey ], $listviewClasses);
// $this->renderBeginTag("div", [ "data-instance-id" => $element->InstanceKey ], [ "uwt-listview", "mcx-element", "uwt-listview-view-details", "uwt-gridlines", "uwt-hottracking" ]);
@@ -2322,7 +2370,12 @@
}
$this->renderEndTag("table");
- //$this->renderEndTag("div");
+
+ $this->renderBeginTag("div", [ ], [ "mcx-empty-text" ]);
+ echo("No items");
+ $this->renderEndTag("div");
+
+ $this->renderEndTag("div");
}
}
}
diff --git a/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.js.php b/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.js.php
new file mode 100644
index 0000000..918441d
--- /dev/null
+++ b/php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.js.php
@@ -0,0 +1,48 @@
+getTenantName();
+ $cdn_url = "static.alcehosting.net";
+ $tenant_environment_text = "Implementation - " . $tenantName;
+
+ function expandUrl($path = "")
+ {
+ $ret = $_SERVER["REQUEST_SCHEME"] . "://" . $_SERVER["SERVER_NAME"];
+ if ($path != "")
+ {
+ $ret .= "/" . $path;;
+ }
+ return $ret;
+ }
+?>
+// Add properties to mocha
+window.mocha = window.mocha || {};
+mocha.tenant = '';
+mocha.clientOrigin = '';
+mocha.language = 'en_US';
+mocha.clientVersion = '0';
+mocha.systemConfidenceLevel = 'PROD';
+mocha.oauthAuthorizationPending = false;
+mocha.proxyLoginEnabled = false;
+mocha.maintenancePageUrl = '/madi/drs/outage?t=';
+mocha.deviceTrustDetailsUrl = '';
+mocha.pendingAuthDetailsUrl = '';
+mocha.webAuthnDetailsUrl = '';
+mocha.enableBluePrimaryButtons = 'false';
+
+// Construct init params for GWT app
+mocha.initParams = {
+ authGatewayPath: '/madi/authgwy',
+ baseDir: '/madi/asset/ui-html/',
+ systemConfidenceLevel: 'PROD',
+ cdn: {
+ endpoint: '',
+ enabled: true,
+ allowed: true
+ },
+ proxyEnabled: false,
+ currentVersion: '20.0.04.045',
+ serviceType: 'authgwy',
+ loginAuthURL: '//login-auth.xml',
+ environment: '',
+ environmentType: 'IMPL'
+};
\ No newline at end of file
diff --git a/php/mocha/scripts/KnownInstanceKeys.js b/php/mocha/scripts/KnownInstanceKeys.js
new file mode 100644
index 0000000..1bf30d5
--- /dev/null
+++ b/php/mocha/scripts/KnownInstanceKeys.js
@@ -0,0 +1,5 @@
+function KnownInstanceKeys()
+{
+}
+
+KnownInstanceKeys.DisplayOption__NotEnterable = "924$2";
\ No newline at end of file
diff --git a/php/mocha/scripts/mcx-element-listview.js b/php/mocha/scripts/mcx-element-listview.js
index a54982d..a4ebb55 100644
--- a/php/mocha/scripts/mcx-element-listview.js
+++ b/php/mocha/scripts/mcx-element-listview.js
@@ -27,20 +27,16 @@ function McxElementListView(parentElement)
tr.appendChild(this.createAddRemoveColumn());
var xhr = new XMLHttpRequest();
- var url = System.ExpandRelativePath("~/" + System.TenantName + "/prompt/c0/8.htmld");
- if (this.ParentElement.hasAttribute("data-valid-class-ids"))
- {
- url += "&validClassIds=" + this.ParentElement.getAttribute("data-valid-class-ids");
- }
- xhr.open("GET", url);
+ var url = System.ExpandRelativePath("~/" + System.TenantName + "/flowController.htmld");
+ xhr.open("POST", url);
var h = {
"_flowExecutionKey": "e0s1",
- "_eventId_prompt": "8",
+ "ecid": lvInstId,
"sessionSecureToken": "7733ad40-edf6-4dc9-aa90-85bcf93cc8f0",
"clientRequestID" : "9af7ce5bc51348a6981539a98b267072"
};
- xhr.send(JSON.encode(h));
+ xhr.send(JSON.stringify(h));
for (var i = 1; i < this.HeaderRowElement.children.length; i++)
{
diff --git a/php/mocha/scripts/mcx-elementcontent.js b/php/mocha/scripts/mcx-elementcontent.js
index ca8261c..acfbbb6 100644
--- a/php/mocha/scripts/mcx-elementcontent.js
+++ b/php/mocha/scripts/mcx-elementcontent.js
@@ -14,6 +14,52 @@ function McxElementContent(parentElement)
}
}
+ this.updateElementContentsWithFlowController = function(value, changes)
+ {
+ for (var i = 0; i < changes.length; i++)
+ {
+ var ecid = changes[i].ecid;
+ var ec = document.getElementById("ec_" + ecid);
+ if (ec)
+ {
+ if (changes[i].addsDisplayOptions)
+ {
+ for (var j = 0; j < changes[i].addsDisplayOptions.length; j++)
+ {
+ if (changes[i].addsDisplayOptions[j].iid == "924$2")
+ {
+ if (value)
+ {
+ ec.setAttribute("disabled", "disabled");
+ }
+ else
+ {
+ ec.removeAttribute("disabled");
+ }
+ }
+ }
+ }
+ if (changes[i].removesDisplayOptions)
+ {
+ for (var j = 0; j < changes[i].removesDisplayOptions.length; j++)
+ {
+ if (changes[i].removesDisplayOptions[j].iid == KnownInstanceKeys.DisplayOption__NotEnterable)
+ {
+ if (value)
+ {
+ ec.removeAttribute("disabled");
+ }
+ else
+ {
+ ec.setAttribute("disabled", "disabled");
+ }
+ }
+ }
+ }
+ }
+ }
+ };
+
this.ValueContainer = this.ParentElement.children[1];
if (this.ValueContainer.children.length > 0)
{
@@ -22,7 +68,7 @@ function McxElementContent(parentElement)
this.ValueContainer.children[0].addEventListener("blur", function()
{
console.log(" DO validation Here!");
- })
+ });
}
else if (this.ValueContainer.children[0].tagName === "DIV" && System.ClassList.Contains(this.ValueContainer.children[0], "mcx-instancebrowser"))
{
@@ -32,6 +78,52 @@ function McxElementContent(parentElement)
console.log("IB selected items: " + ib.getSelectedItems().length);
});
}
+ else if (this.ValueContainer.children[0].tagName === "DIV" && System.ClassList.Contains(this.ValueContainer.children[0], "uwt-checkbox"))
+ {
+ var inputElement = this.ValueContainer.children[1];
+ inputElement.McxNativeObject = this;
+ inputElement.addEventListener("change", function()
+ {
+ var value = this.NativeObject.GetChecked();
+ var ecid = this.McxNativeObject.ParentElement.getAttribute("data-fqecid");
+
+ var xhr = new XMLHttpRequest();
+ var url = System.ExpandRelativePath("~/" + System.TenantName + "/flowController.htmld");
+ xhr.NativeObject = this.McxNativeObject;
+ xhr.NativeObject.ValueElement = this.NativeObject.ParentElement;
+ xhr.inputElement = this;
+ xhr.onreadystatechange = function()
+ {
+ if (this.readyState === 4)
+ {
+ console.log(xhr);
+ if (this.status === 200)
+ {
+ json = JSON.parse(xhr.responseText);
+ this.NativeObject.updateElementContentsWithFlowController(json.value, json.changes);
+ }
+ else
+ {
+ this.NativeObject.ValueElement.NativeObject.__inhibit_update = true;
+ this.NativeObject.ValueElement.NativeObject.ToggleChecked();
+ this.NativeObject.ValueElement.NativeObject.__inhibit_update = false;
+ }
+ }
+ };
+ xhr.open("POST", url);
+
+ var h = {
+ "_flowExecutionKey": "e0s1",
+ "ecid": ecid,
+ "sessionSecureToken": "7733ad40-edf6-4dc9-aa90-85bcf93cc8f0",
+ "clientRequestID" : "9af7ce5bc51348a6981539a98b267072",
+ "value": value
+ };
+ xhr.send(JSON.stringify(h));
+
+ return true;
+ });
+ }
}
this.InstanceID = this.ParentElement.getAttribute("data-instance-id");
diff --git a/php/mocha/themes/avondale/uwt-tabcontainer.less b/php/mocha/themes/avondale/uwt-tabcontainer.less
index 0e6dbca..a2c88c2 100644
--- a/php/mocha/themes/avondale/uwt-tabcontainer.less
+++ b/php/mocha/themes/avondale/uwt-tabcontainer.less
@@ -8,7 +8,7 @@ div.uwt-tabcontainer
&> a
{
color: #6E7179;
- font-size: 12px;
+ // font-size: 12px;
padding: 10px 16px;
&:hover
diff --git a/php/mocha/themes/avondale/uwt-textbox.less b/php/mocha/themes/avondale/uwt-textbox.less
index 3e83b71..f9e21f9 100644
--- a/php/mocha/themes/avondale/uwt-textbox.less
+++ b/php/mocha/themes/avondale/uwt-textbox.less
@@ -7,9 +7,12 @@
font: inherit;
font-size: 12px;
- &:hover, &:focus
+ &:not([disabled])
{
- border-color: @ThemeColor;
+ &:hover, &:focus
+ {
+ border-color: @ThemeColor;
+ }
}
&:focus
{
diff --git a/php/mocha/themes/mocha/mcx-elementcontent.less b/php/mocha/themes/mocha/mcx-elementcontent.less
index cfbd039..9c9b2a1 100644
--- a/php/mocha/themes/mocha/mcx-elementcontent.less
+++ b/php/mocha/themes/mocha/mcx-elementcontent.less
@@ -26,6 +26,10 @@ table.mcx-element.uwt-listview
div.mcx-element
{
display: grid;
+ &.uwt-tabcontainer
+ {
+ margin-top: 16px;
+ }
}
div.uwt-listview.mcx-element
{
diff --git a/php/mocha/themes/mocha/uwt.less b/php/mocha/themes/mocha/uwt.less
index d7263ce..6c26335 100644
--- a/php/mocha/themes/mocha/uwt.less
+++ b/php/mocha/themes/mocha/uwt.less
@@ -167,6 +167,28 @@ div.mcx-elementcontent.mcx-empty:not(.mcx-editable) > div > span.mcx-empty-text
display: inline;
}
+div.mcx-element
+{
+ &> div.uwt-formview-item-label
+ {
+ display: none;
+ }
+}
+div.mcx-element > table.mcx-element + div.mcx-empty-text
+{
+ border: solid 1px var(--uwt-color-gray-500);
+ border-top: none;
+ padding: 32px;
+ text-align: center;
+ margin-top: -1px;
+ font-size: 1.5em;
+ color: var(--uwt-color-gray);
+}
+div.mcx-element:not(.mcx-empty) > table.mcx-element + div.mcx-empty-text
+{
+ display: none;
+}
+
/*
div.mcx-instancebrowser
{
diff --git a/php/mocha/ui/pages/FlowControllerPage.phpx b/php/mocha/ui/pages/FlowControllerPage.phpx
new file mode 100644
index 0000000..7988091
--- /dev/null
+++ b/php/mocha/ui/pages/FlowControllerPage.phpx
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/php/mocha/ui/pages/FlowControllerPage.phpx.php b/php/mocha/ui/pages/FlowControllerPage.phpx.php
new file mode 100644
index 0000000..3cca40a
--- /dev/null
+++ b/php/mocha/ui/pages/FlowControllerPage.phpx.php
@@ -0,0 +1,157 @@
+getCurrentUser();
+ if ($user === null)
+ {
+ header("HTTP/1.1 401 Unauthorized");
+ $json = array
+ (
+ "result" => "failure",
+ "message" => "Please log in to perform this action"
+ );
+ echo (json_encode($json));
+ exit();
+ }
+
+ $jsonInputStr = file_get_contents("php://input");
+ $jsonInput = json_decode($jsonInputStr, true);
+
+ global $context;
+ $contextsReset = false;
+ if ($context === null)
+ {
+ $contextsReset = true;
+ $context = new OmsContext();
+ }
+
+ $fqecid = $jsonInput["ecid"];
+ $ecids = explode(":", $fqecid);
+ $ecid = $ecids[count($ecids) - 1];
+
+ $parentECIDs = substr($fqecid, 0, strripos($fqecid, ":"));
+
+ $ec = $oms->getInstanceByKey(InstanceKey::Parse($ecid));
+ if ($ec === null)
+ {
+ header ("HTTP/1.1 404 Not Found");
+ echo ("{ \"result\": \"failure\", \"message\": \"invalid inst id " . $ecid . " (inst not found)\" }");
+ return;
+ }
+
+ header ("HTTP/1.1 200 OK");
+
+ $element = $oms->getRelatedInstance($ec, KnownRelationshipGuids::Element_Content__has__Instance);
+ if ($oms->is_a($element, KnownClassGuids::Element))
+ {
+ $contents = [];
+ $elementContents = $oms->getRelatedInstances($element, KnownRelationshipGuids::Element__has__Element_Content);
+ foreach ($elementContents as $subEC)
+ {
+ $contents[] = array
+ (
+ "ecid" => $subEC->InstanceKey->__toString()
+ );
+ }
+ }
+ else if ($oms->is_a($element, KnownClassGuids::BooleanAttribute))
+ {
+ $value = $jsonInput["value"];
+ $oms->setSessionAttributeValue($context, $ec, $value);
+ $changes = array();
+
+ $ecDDOs = $oms->getRelatedInstances($ec, KnownRelationshipGuids::Element_Content__has__EC_Dynamic_Display_Option);
+ foreach ($ecDDOs as $ecDDO)
+ {
+ $addsDisplayOptions = $oms->getRelatedInstances($ecDDO, KnownRelationshipGuids::Dynamic_Display_Option__add__Display_Option);
+ $removesDisplayOptions = $oms->getRelatedInstances($ecDDO, KnownRelationshipGuids::Dynamic_Display_Option__remove__Display_Option);
+ $modifiesElementContents = $oms->getRelatedInstances($ecDDO, KnownRelationshipGuids::EC_Dynamic_Display_Option__modifies__Element_Content);
+
+ foreach ($modifiesElementContents as $modifiesElementContent)
+ {
+ $change = array
+ (
+ "ecid" => $parentECIDs . ":" . $modifiesElementContent->InstanceKey->__toString(),
+ "addsDisplayOptions" => [],
+ "removesDisplayOptions" => []
+ );
+ foreach ($addsDisplayOptions as $addsDisplayOption)
+ {
+ $change["addsDisplayOptions"][] = array("iid" => $addsDisplayOption->InstanceKey->__toString() );
+ }
+ foreach ($removesDisplayOptions as $removesDisplayOption)
+ {
+ $change["removesDisplayOptions"][] = array("iid" => $removesDisplayOption->InstanceKey->__toString() );
+ }
+ $changes[] = $change;
+ }
+ }
+
+ if ($ecid == "56$217")
+ {
+ //!FIXME: how to represent this in mocha db with dynamic EC changes / dependent ECs
+
+ //! 3$259 Element Content.has EC Dynamic Display Option
+ //! used for the EC triggering the DDO on the affected EC
+
+ // e.g. 56$217 has DDO for controlling the two textboxen
+
+ //! 3$261 Element Content.modified by EC Dynamic Display Option
+ //! used for the EC affected by the dynamic DO
+
+ // e.g. the aforementioned DDO modifies 56$218, 56$219
+
+ }
+
+ $retval = array
+ (
+ "result" => "success",
+ "contextsReset" => $contextsReset,
+ "value" => $oms->getSessionAttributeValue($context, $ec),
+ "changes" => $changes
+ );
+ echo (json_encode($retval));
+ exit();
+ }
+ else
+ {
+ echo ("{ \"result\": \"failure\", \"message\": \"not an element\" }");
+ exit();
+ }
+
+ $json = array
+ (
+ "result" => "success",
+ "item" => array
+ (
+ "widget" => "row",
+ "contents" => $contents
+ )
+ );
+ echo(json_encode($json));
+
+ $e->Cancel = true;
+ }
+ }
+
+?>
\ No newline at end of file