diff --git a/.liquibase/Data_alias/basic/2019.3.1/changelog.xml b/.liquibase/Data_alias/basic/2019.3.1/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..fda03e142d45c79f7c7087b9372d98de88ebb0f3 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.3.1/changelog.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + + <include relativeToChangelogFile="true" file="insert_attribute_ad_supervisor.xml"/> + +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.3.1/insert_attribute_ad_supervisor.xml b/.liquibase/Data_alias/basic/2019.3.1/insert_attribute_ad_supervisor.xml new file mode 100644 index 0000000000000000000000000000000000000000..637b87fdb060e78d4deaf5f46275b68b9d7cea0e --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.3.1/insert_attribute_ad_supervisor.xml @@ -0,0 +1,24 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id="9c2eb28c-2d77-456a-aa61-e8e7ae3fb15e"> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c0b26482-c0aa-413d-a9c3-f44c56bd04a9"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Responsible AD supervisor"/> + <column name="ATTRIBUTE_TYPE" value="OBJECTSELECTION "/> + <column name="DROPDOWNDEFINITION" value="Employee_entity"/> + <column name="SORTING" valueNumeric="2"/> + </insert> + <insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="bcf4ccdd-9515-4926-a3e6-9066c9e49ade"/> + <column name="AB_ATTRIBUTE_ID" value="c0b26482-c0aa-413d-a9c3-f44c56bd04a9"/> + <column name="OBJECT_TYPE" value="Person"/> + </insert> + <insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="62998088-1915-40cd-b39e-94f81edb865b"/> + <column name="AB_ATTRIBUTE_ID" value="c0b26482-c0aa-413d-a9c3-f44c56bd04a9"/> + <column name="OBJECT_TYPE" value="Organisation"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml index 373e8973e00f47ed25f994e3af4d1eb4e49c1aa5..2580416d2d79f2493b5791bbee2bc31a6792f1dd 100644 --- a/.liquibase/Data_alias/changelog.xml +++ b/.liquibase/Data_alias/changelog.xml @@ -4,6 +4,7 @@ <include relativeToChangelogFile="true" file="basic/2019.1.4/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2019.2.1/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2019.3.0/changelog.xml"/> + <include relativeToChangelogFile="true" file="basic/2019.3.1/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/> </databaseChangeLog> \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/dropdowndefinition/stateProcess.js b/entity/Attribute_entity/entityfields/dropdowndefinition/stateProcess.js index e7b565377261c1da453151ebd27bfe1f03020028..af384e2e38a1ffee1430e22f799ffbdf90cfbf49 100644 --- a/entity/Attribute_entity/entityfields/dropdowndefinition/stateProcess.js +++ b/entity/Attribute_entity/entityfields/dropdowndefinition/stateProcess.js @@ -3,12 +3,14 @@ import("system.vars"); import("system.result"); import("Attribute_lib"); -var fieldState; +var fieldState = neon.COMPONENTSTATE_INVISIBLE; var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); -if (type && $AttributeTypes[type] && $AttributeTypes[type].getDropDownDefinitions - && !AttributeUtil.hasRelations(vars.get("$field.UID"))) - fieldState = neon.COMPONENTSTATE_EDITABLE; -else - fieldState = neon.COMPONENTSTATE_INVISIBLE; +if (type && $AttributeTypes[type] && $AttributeTypes[type].getDropDownDefinitions) +{ + if (AttributeUtil.hasRelations(vars.get("$field.UID"))) + fieldState = neon.COMPONENTSTATE_READONLY; + else + fieldState = neon.COMPONENTSTATE_EDITABLE; +} result.string(fieldState); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/dropdownfilter/valueProcess.js b/entity/Attribute_entity/entityfields/dropdownfilter/valueProcess.js index c040a5fb10889419eec6902e9663603a8c1e2489..1a58da7930c5d7b7ce9fd8966da4aa2274cd63fe 100644 --- a/entity/Attribute_entity/entityfields/dropdownfilter/valueProcess.js +++ b/entity/Attribute_entity/entityfields/dropdownfilter/valueProcess.js @@ -4,7 +4,7 @@ import("system.result"); import("Attribute_lib"); if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.OBJECTSELECTION - && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)) + && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) { var entity = vars.getString("$field.DROPDOWNDEFINITION"); var emptyFilter = {entity: entity, filter: {type: "group", operator: "AND", childs: []}}; @@ -14,7 +14,7 @@ if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.OBJECTSELECTION currentFilter = JSON.parse(currentFilter); //if the filter field is empty or if the entity was changed, reset the filter - if (!vars.get("$this.value") || currentFilter.entity != emptyFilter.entity) + if (!currentFilter || currentFilter.entity != emptyFilter.entity) { var condJson = JSON.stringify(emptyFilter); result.string(condJson); diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index ebc47f40bfd0b0a806cb20bf9cbb1f37e709454e..fa429536f9db0f8b9ba1fab98c64efb56e268dca 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -1041,6 +1041,10 @@ <entityField> <name>IndexCity</name> </entityField> + <entityParameter> + <name>OnlyOwnSupervised_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js index f9d0b6ed3eef5e522330ba84ac377372059c1f11..f93b3e2b750413b8a5e237acce82a92e4ca72653 100644 --- a/entity/Organisation_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Organisation_entity/recordcontainers/db/conditionProcess.js @@ -1,3 +1,7 @@ +import("Employee_lib"); +import("AttributeRegistry_basic"); +import("Attribute_lib"); +import("system.logging"); import("system.vars"); import("system.db"); import("system.result"); @@ -42,7 +46,6 @@ if (vars.exists("$param.ExcludedContactIds_param") && vars.get("$param.ExcludedC } cond.andPrepareVars("ORGANISATION.KIND", "$param.OrganisationType_param"); - if(onlyShowContactIds != null && onlyShowContactIds.length > 0) { let additionalCondition = SqlCondition.begin(); @@ -54,6 +57,19 @@ if(onlyShowContactIds != null && onlyShowContactIds.length > 0) cond.andSqlCondition(additionalCondition, "1=2"); alternativeCondition = "1 = 2"; } +if (vars.exists("$param.OnlyOwnSupervised_param") && vars.get("$param.OnlyOwnSupervised_param") == "true") +{ + var subQuery = new SqlBuilder() + .select("1") + .from("AB_ATTRIBUTERELATION") + .where(new SqlCondition() + .andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", ContextUtils.getCurrentContextId()) + .and("AB_ATTRIBUTERELATION.OBJECT_ROWID = CONTACT.CONTACTID") + .andPrepare("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", $AttributeRegistry.responsibleADsupervisor()) + .andPrepare("AB_ATTRIBUTERELATION." + $AttributeTypes.OBJECTSELECTION.databaseField, EmployeeUtils.sliceUserId(EmployeeUtils.getCurrentUserId())) + ); + cond.andSqlBuilder(subQuery); +} //TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026 -result.string(cond.translate(alternativeCondition)); \ No newline at end of file +result.string(cond.translate(alternativeCondition)); diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 9261c6e57bcedd0d2ce89ae367a3f453fe0eebd7..8ddf9367f4a5c9b382b7e53be31c39a4858643b0 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -1107,6 +1107,14 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact <name>STANDARD_COUNTRY</name> <valueProcess>%aditoprj%/entity/Person_entity/entityfields/standard_country/valueProcess.js</valueProcess> </entityField> + <entityActionField> + <name>ActionField</name> + <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/actionfield/onActionProcess.js</onActionProcess> + </entityActionField> + <entityParameter> + <name>OnlyOwnSupervised_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Person_entity/recordcontainers/db/conditionProcess.js b/entity/Person_entity/recordcontainers/db/conditionProcess.js index 69c8f9443eef4628453d11d850a1cd4615e3352b..63a7be5bdb4beb8f87468db3e7e567eafe91bd7e 100644 --- a/entity/Person_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Person_entity/recordcontainers/db/conditionProcess.js @@ -1,8 +1,12 @@ +import("Context_lib"); +import("AttributeRegistry_basic"); +import("Employee_lib"); +import("AttributeFilter_lib"); +import("Attribute_lib"); import("system.vars"); import("system.db"); import("system.result"); import("Sql_lib"); - var cond = new SqlCondition(); let alternativeCondition = "1 = 1"; cond.andPrepareVars("CONTACT.ORGANISATION_ID", "$param.OrgId_param") @@ -24,5 +28,19 @@ if(onlyShowContactIds != null && onlyShowContactIds.length > 0) cond.andSqlCondition(additionalCondition, "1=2"); alternativeCondition = "1 = 2"; } + +if (vars.exists("$param.OnlyOwnSupervised_param") && vars.get("$param.OnlyOwnSupervised_param") == "true") +{ + var subQuery = new SqlBuilder() + .select("1") + .from("AB_ATTRIBUTERELATION") + .where(new SqlCondition() + .andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", ContextUtils.getCurrentContextId()) + .and("AB_ATTRIBUTERELATION.OBJECT_ROWID = CONTACT.CONTACTID") + .andPrepare("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", $AttributeRegistry.responsibleADsupervisor()) + .andPrepare("AB_ATTRIBUTERELATION." + $AttributeTypes.OBJECTSELECTION.databaseField, EmployeeUtils.sliceUserId(EmployeeUtils.getCurrentUserId())) + ); + cond.andSqlBuilder(subQuery); +} //TODO: use a preparedCondition (.build instead of .translate) when available #1030812 #1034026 -result.string(cond.translate(alternativeCondition)); \ No newline at end of file +result.string(cond.translate(alternativeCondition)); diff --git a/entity/QuickEntry_entity/QuickEntry_entity.aod b/entity/QuickEntry_entity/QuickEntry_entity.aod index a9fc5171af2812ee376bc13f068f7831b71551d6..9552ccd40932926a57c4f2bcb767763d49cb27aa 100644 --- a/entity/QuickEntry_entity/QuickEntry_entity.aod +++ b/entity/QuickEntry_entity/QuickEntry_entity.aod @@ -57,6 +57,32 @@ <fieldName>ISO3Name</fieldName> </dependency> </entityConsumer> + <entityField> + <name>FIRSTNAME</name> + <title>Firstname</title> + </entityField> + <entityField> + <name>LASTNAME</name> + <title>Lastname</title> + </entityField> + <entityField> + <name>PERSON_TITLE</name> + <title>Title</title> + <consumer>SalutationTitles</consumer> + </entityField> + <entityField> + <name>PERSON_SALUTATION</name> + <title>Salutation</title> + <consumer>Salutations</consumer> + </entityField> + <entityField> + <name>PERSON_CONTACT_ID</name> + <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/person_contact_id/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>PERSON_ID</name> + <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/person_id/valueProcess.js</valueProcess> + </entityField> <entityConsumer> <name>Salutations</name> <dependency> diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index 67f79141b63c13411353bb48393e485b7fe44d60..29d488410242098629d4b2dfa3627a2ab4b28140 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -5172,15 +5172,6 @@ <entry> <key>Configurations</key> </entry> - <entry> - <key>Appointment checkup for the selected day</key> - </entry> - <entry> - <key>Show tickets where I am the editor</key> - </entry> - <entry> - <key>Quick entry</key> - </entry> <entry> <key>Data block size</key> </entry> @@ -5211,6 +5202,33 @@ <entry> <key>Add to distribution list</key> </entry> + <entry> + <key>Responsible AD supervisor</key> + </entry> + <entry> + <key>Appointment checkup for the selected day</key> + </entry> + <entry> + <key>Show my contacts</key> + </entry> + <entry> + <key>Show tickets where I am the editor</key> + </entry> + <entry> + <key>Quick entry</key> + </entry> + <entry> + <key>Either or both a contact and a company must be specified</key> + </entry> + <entry> + <key>Show my organisations</key> + </entry> + <entry> + <key>My organisations</key> + </entry> + <entry> + <key>Attribute groups can't be selected</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index f2e68f6ab3a3ea5d2af34ce3c96d7cc44cfb92e0..a0f79f9e2653a071529e8f8cac713817d419e05d 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -10,6 +10,18 @@ <key>Project management</key> <value>Projektmanagement</value> </entry> + <entry> + <key>Show my organisations</key> + <value>Meine Firmen anzeigen</value> + </entry> + <entry> + <key>My organisations</key> + <value>Meine Firmen</value> + </entry> + <entry> + <key>Show my contacts</key> + <value>Meine Kontakte anzeigen</value> + </entry> <entry> <key>ARCHIVE</key> <value>Archiviert</value> @@ -61,6 +73,10 @@ <key>Long string value</key> <value>Langer String-Wert</value> </entry> + <entry> + <key>Attribute groups can't be selected</key> + <value>Eigenschafsgruppen können nicht verwendet werden</value> + </entry> <entry> <key>Object selection</key> <value>Objektauswahl</value> @@ -372,6 +388,10 @@ <key>Serial letters</key> <value>Serienbriefe</value> </entry> + <entry> + <key>Either or both a contact and a company must be specified</key> + <value>Es muss entweder ein Kontakt, eine Firma oder beides angegeben werden</value> + </entry> <entry> <key>Categorization</key> <value>Kategorisierung</value> @@ -3677,6 +3697,10 @@ <entry> <key>normal</key> </entry> + <entry> + <key>My contacts</key> + <value>Meine Kontakte</value> + </entry> <entry> <key>Termine von</key> </entry> @@ -6112,6 +6136,7 @@ </entry> <entry> <key>Links</key> + <value>Verknüpfungen</value> </entry> <entry> <key>Set dunning</key> @@ -6445,6 +6470,7 @@ </entry> <entry> <key>${CONTRACT_STATUS}</key> + <value>Vertragsstatus</value> </entry> <entry> <key>Time in minutes</key> @@ -6492,12 +6518,11 @@ </entry> <entry> <key>Integrate selected into current contact</key> - <value>Selektierten Datensatz in aktuellen integrieren</value> - <value>Dubletten</value> + <value>Integriere ausgewählten in aktuellen Kontakt</value> </entry> <entry> <key>Duplicate actions</key> - <value>Dubletten Aktionen</value> + <value>Dublettenaktionen</value> </entry> <entry> <key>Export letter</key> @@ -6522,14 +6547,6 @@ <key>Count duplicates in cluster</key> <value>Anzahl Dubletten im Cluster</value> </entry> - <entry> - <key>Duplicate actions</key> - <value>Dublettenaktionen</value> - </entry> - <entry> - <key>Integrate selected into current contact</key> - <value>Integriere ausgewählten in aktuellen Kontakt</value> - </entry> <entry> <key>Unrelated organisations duplicates</key> <value>Ignorierte Dublettenrelationen</value> @@ -6578,6 +6595,13 @@ <key>A %0 record has been merged</key> <value>Zwei Datensätze vom Typ %0 wurden zusammengeführt</value> </entry> + <entry> + <key>Hospitality</key> + </entry> + <entry> + <key>Responsible AD supervisor</key> + <value>Zuständiger AD Betreuer</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 4eb712c5b81d698105e6208fa4dcf04172622b8f..cf72a72320651d7478a2188f219a26e3041962e8 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -5222,15 +5222,6 @@ <entry> <key>Configurations</key> </entry> - <entry> - <key>Appointment checkup for the selected day</key> - </entry> - <entry> - <key>Show tickets where I am the editor</key> - </entry> - <entry> - <key>Quick entry</key> - </entry> <entry> <key>Data block size</key> </entry> @@ -5261,6 +5252,33 @@ <entry> <key>Add to distribution list</key> </entry> + <entry> + <key>Responsible AD supervisor</key> + </entry> + <entry> + <key>Appointment checkup for the selected day</key> + </entry> + <entry> + <key>Show my contacts</key> + </entry> + <entry> + <key>Show tickets where I am the editor</key> + </entry> + <entry> + <key>Quick entry</key> + </entry> + <entry> + <key>Either or both a contact and a company must be specified</key> + </entry> + <entry> + <key>Show my organisations</key> + </entry> + <entry> + <key>My organisations</key> + </entry> + <entry> + <key>Attribute groups can't be selected</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod index d9f75404be8fd4a94020041aeaae446f737f7dea..e07000fb47895ff4180f29d8a9146e6eb7f56829 100644 --- a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod +++ b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod @@ -19,6 +19,27 @@ </neonDashletCategory> </categories> </neonDashletConfiguration> + <neonDashletConfiguration> + <name>OwnSupervisedOrganisations</name> + <title>My organisations</title> + <description>Show my organisations</description> + <fragment>Organisation/filter</fragment> + <singleton v="false" /> + <requiresConfiguration v="false" /> + <icon>vaadin:building</icon> + <categories> + <neonDashletCategory> + <name>contactmanagement</name> + <title>Contactmanagement</title> + </neonDashletCategory> + </categories> + <parameters> + <neonDashletParameter> + <name>OnlyOwnSupervised_param</name> + <value>true</value> + </neonDashletParameter> + </parameters> + </neonDashletConfiguration> </dashletConfigurations> <layout> <boxLayout> diff --git a/neonView/PersonFilter_view/PersonFilter_view.aod b/neonView/PersonFilter_view/PersonFilter_view.aod index 3503ec3460ff51883501d6e7c57490c8f2a2337f..f821995c0e657b276be280d0bc1cd2f5b22c60c0 100644 --- a/neonView/PersonFilter_view/PersonFilter_view.aod +++ b/neonView/PersonFilter_view/PersonFilter_view.aod @@ -19,6 +19,27 @@ </neonDashletCategory> </categories> </neonDashletConfiguration> + <neonDashletConfiguration> + <name>OwnSupervisedContacts</name> + <title>My contacts</title> + <description>Show my contacts</description> + <fragment>Person/filter</fragment> + <singleton v="false" /> + <requiresConfiguration v="false" /> + <icon>vaadin:users</icon> + <categories> + <neonDashletCategory> + <name>contactmanagement</name> + <title>Contactmanagement</title> + </neonDashletCategory> + </categories> + <parameters> + <neonDashletParameter> + <name>OnlyOwnSupervised_param</name> + <value>true</value> + </neonDashletParameter> + </parameters> + </neonDashletConfiguration> </dashletConfigurations> <layout> <boxLayout> diff --git a/process/AttributeRegistry_basic/process.js b/process/AttributeRegistry_basic/process.js index 27085a93aef52df2be1810053374970f14d116a3..132797695565e73846abb8747ff49b5dd089658a 100644 --- a/process/AttributeRegistry_basic/process.js +++ b/process/AttributeRegistry_basic/process.js @@ -17,3 +17,4 @@ $AttributeRegistry.targetGroup = function(){return "c7d28377-8cb1-4f92-a9ac-ed08 $AttributeRegistry.targetGroup$competitior = function(){return "1d30d0ab-6103-4972-84c0-fd23eef15ca1";}; $AttributeRegistry.departments = function(){return "87d4ff5b-0ab6-4534-be26-76c6ef486072";}; $AttributeRegistry.salesprojectType = function(){return "fd3963bc-8e60-411a-9911-b97eb73e5cf7";}; +$AttributeRegistry.responsibleADsupervisor = function(){return "c0b26482-c0aa-413d-a9c3-f44c56bd04a9";};