From a4c14c7ee7c6b9680d8269e16219c5ebb6f68d84 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Wed, 7 Feb 2024 23:31:58 -0500 Subject: [PATCH] preliminary implementation of FlowController, dynamic DisplayOptions, custom reports, and tabbed layout --- .../000-EntityDefinitions/001-Classes.yaml | 4 - .../000-EntityDefinitions/002-Attributes.yaml | 2 +- .../003-Relationships.yaml | 1 - .../000-EntityDefinitions/013-WorkSets.yaml | 2 + .../003-Classes/00005-BooleanAttribute.yaml | 1 + .../003-Classes/00015-WorkSet.yaml | 7 + .../003-Classes/00033-Person.yaml | 1 + .../003-Classes/00056-ElementContent.yaml | 23 +++ .../003-Classes/00061-DisplayOption.yaml | 10 ++ .../00115-DynamicDisplayOption.yaml | 58 +++++++ .../00116-ECDynamicDisplayOption.yaml | 68 ++++---- .../003-Classes/00146-ReportField.yaml | 12 ++ .../00924-DerivedECDisplayOption.yaml | 42 +++++ .../01422-CustomReportDefinition.yaml | 41 +++++ .../003-Classes/01429-CustomReportFilter.yaml | 28 ++++ .../003-Classes/01431-DataSource.yaml | 11 ++ .../003-Classes/01435-SystemDataSource.yaml | 14 +- .../01516-ReportSortDirection.yaml | 26 +++ .../003-Classes/01599-GroupLayout.yaml | 25 +++ .../003-Classes/01603-GroupLayoutOption.yaml | 14 ++ .../003-Classes/04296-ReportDefinition.yaml | 64 +++++++ .../003-Classes/04310-ReportColumn.yaml | 57 +++++++ .../04319-ReportSortDescriptor.yaml | 73 ++++++++ .../Class/Class__get__All_Classes.yaml | 14 ++ .../Instance/Instance__get__Parent_Class.yaml | 3 - .../Person_Name__get__Family_Name.yaml | 15 ++ .../Person_Name__get__Given_Name.yaml | 15 ++ .../Report_Definition__get__Columns.yaml | 31 ++++ ...ort_Definition__get__Sort_Descriptors.yaml | 31 ++++ ...nition__get__Top_Level_Report_Filters.yaml | 31 ++++ ...tem_User__get__Preferred_Display_Name.yaml | 6 +- .../Reports/All Classes.yaml | 12 ++ .../Tasks/CustomReportDefinition/Columns.yaml | 40 +++++ .../Tasks/CustomReportDefinition/Common.yaml | 39 +++++ .../Tasks/CustomReportDefinition/Edit.yaml | 59 +++++++ .../Tasks/CustomReportDefinition/Filter.yaml | 66 ++++++++ .../CustomReportDefinition/SortAndGroup.yaml | 50 ++++++ .../Tasks/CustomReportDefinition/Tabs.yaml | 26 +++ .../Tasks/CustomReportDefinition/View.yaml | 59 +++++++ .../Tasks/ManageSystemUserCredentials.yaml | 10 ++ .../009-Users/zq-developer.yaml | 10 +- .../lib/mocha/core/KnownClassGuids.inc.php | 2 + .../mocha/core/KnownRelationshipGuids.inc.php | 6 + php/mocha/lib/mocha/core/OmsContext.inc.php | 18 ++ php/mocha/lib/mocha/oms/Oms.inc.php | 11 +- ...encedAttributeMethodImplementation.inc.php | 14 +- ...cedInstanceSetMethodImplementation.inc.php | 34 +++- .../ui/renderers/html/HTMLRenderer.inc.php | 59 ++++++- .../ui/renderers/html/HTMLRenderer.js.php | 48 ++++++ php/mocha/scripts/KnownInstanceKeys.js | 5 + php/mocha/scripts/mcx-element-listview.js | 12 +- php/mocha/scripts/mcx-elementcontent.js | 94 ++++++++++- .../themes/avondale/uwt-tabcontainer.less | 2 +- php/mocha/themes/avondale/uwt-textbox.less | 7 +- .../themes/mocha/mcx-elementcontent.less | 4 + php/mocha/themes/mocha/uwt.less | 22 +++ php/mocha/ui/pages/FlowControllerPage.phpx | 5 + .../ui/pages/FlowControllerPage.phpx.php | 157 ++++++++++++++++++ 58 files changed, 1530 insertions(+), 71 deletions(-) create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00061-DisplayOption.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00115-DynamicDisplayOption.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00146-ReportField.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/00924-DerivedECDisplayOption.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01422-CustomReportDefinition.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01429-CustomReportFilter.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01431-DataSource.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01516-ReportSortDirection.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/01603-GroupLayoutOption.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04296-ReportDefinition.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04310-ReportColumn.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/003-Classes/04319-ReportSortDescriptor.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/Class/Class__get__All_Classes.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Family_Name.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/PersonName/Person_Name__get__Given_Name.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Columns.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Sort_Descriptors.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/004-Methods/ReportDefinition/Report_Definition__get__Top_Level_Report_Filters.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Reports/All Classes.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Columns.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Common.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Edit.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Filter.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/SortAndGroup.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/Tabs.yaml create mode 100644 common/libraries/yaml/net.alcetech.Mocha.System/005-UserInterface/Tasks/CustomReportDefinition/View.yaml create mode 100644 php/mocha/lib/mocha/ui/renderers/html/HTMLRenderer.js.php create mode 100644 php/mocha/scripts/KnownInstanceKeys.js create mode 100644 php/mocha/ui/pages/FlowControllerPage.phpx create mode 100644 php/mocha/ui/pages/FlowControllerPage.phpx.php 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