Merge branch 'feature/admin-messages' of github.com:ONLYOFFICE/AppServer into feature/session-lifetime
# Conflicts: # packages/asc-web-common/store/AuthStore.js
This commit is contained in:
commit
d61612fdf5
@ -1,11 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<DOCUMENT Type="Advanced Installer" CreateVersion="18.6" version="18.6" Modules="enterprise" RootPath="." Language="ru" Id="{2D2C7C0E-FA78-4158-A222-DA463E882AAC}">
|
<DOCUMENT Type="Advanced Installer" CreateVersion="18.6" version="18.7" Modules="enterprise" RootPath="." Language="ru" Id="{2D2C7C0E-FA78-4158-A222-DA463E882AAC}">
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||||
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
||||||
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/>
|
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/>
|
||||||
|
<ROW Property="AI_PRODUCTNAME_ARP" Value="Apache Kafka"/>
|
||||||
|
<ROW Property="AI_UNINSTALLER" Value="msiexec.exe"/>
|
||||||
<ROW Property="ALLUSERS" Value="1"/>
|
<ROW Property="ALLUSERS" Value="1"/>
|
||||||
<ROW Property="ARPCOMMENTS" Value="Эта база данных установщика содержит логику и данные, необходимые для установки [|[ProductName]." ValueLocId="*"/>
|
<ROW Property="ARPNOMODIFY" MultiBuildValue="DefaultBuild:1"/>
|
||||||
|
<ROW Property="ARPNOREPAIR" Value="1"/>
|
||||||
|
<ROW Property="ARPSYSTEMCOMPONENT" Value="1"/>
|
||||||
<ROW Property="Manufacturer" Value="Apache"/>
|
<ROW Property="Manufacturer" Value="Apache"/>
|
||||||
<ROW Property="ProductCode" Value="1049:{79F55836-69B9-46CE-B03D-7679D38C0AD4} " Type="16"/>
|
<ROW Property="ProductCode" Value="1049:{79F55836-69B9-46CE-B03D-7679D38C0AD4} " Type="16"/>
|
||||||
<ROW Property="ProductLanguage" Value="1033"/>
|
<ROW Property="ProductLanguage" Value="1033"/>
|
||||||
@ -33,6 +37,8 @@
|
|||||||
<ROW Directory="tools_Dir" Directory_Parent="kafka_2.122.8.0_Dir" DefaultDir="tools"/>
|
<ROW Directory="tools_Dir" Directory_Parent="kafka_2.122.8.0_Dir" DefaultDir="tools"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
||||||
|
<ROW Component="AI_CustomARPName" ComponentId="{0A28214B-8B18-41A6-8221-28805AFC74D8}" Directory_="APPDIR" Attributes="4" KeyPath="DisplayName" Options="1"/>
|
||||||
|
<ROW Component="AI_DisableModify" ComponentId="{9AEFD4E1-809A-4BA7-8210-A26107288AD8}" Directory_="APPDIR" Attributes="4" KeyPath="NoModify" Options="1"/>
|
||||||
<ROW Component="APPDIR" ComponentId="{65AA756C-1422-4BF9-9839-FC3C55E40801}" Directory_="APPDIR" Attributes="0"/>
|
<ROW Component="APPDIR" ComponentId="{65AA756C-1422-4BF9-9839-FC3C55E40801}" Directory_="APPDIR" Attributes="0"/>
|
||||||
<ROW Component="Apache" ComponentId="{AD0BEF35-DD7E-47D2-8E16-10F0066B56D7}" Directory_="kafkazookeeper_Dir" Attributes="0"/>
|
<ROW Component="Apache" ComponentId="{AD0BEF35-DD7E-47D2-8E16-10F0066B56D7}" Directory_="kafkazookeeper_Dir" Attributes="0"/>
|
||||||
<ROW Component="ProductInformation" ComponentId="{0A3116F5-AD20-4DBA-A42B-68B3CE9DB645}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
<ROW Component="ProductInformation" ComponentId="{0A3116F5-AD20-4DBA-A42B-68B3CE9DB645}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
||||||
@ -128,6 +134,7 @@
|
|||||||
<ROW Action="AI_DetectSoftware" Type="257" Source="SoftwareDetector.dll" Target="OnDetectSoftware"/>
|
<ROW Action="AI_DetectSoftware" Type="257" Source="SoftwareDetector.dll" Target="OnDetectSoftware"/>
|
||||||
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
||||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||||
|
<ROW Action="AI_GetArpIconPath" Type="1" Source="aicustact.dll" Target="GetArpIconPath"/>
|
||||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||||
<ROW Action="AI_ProcessFailActions" Type="1" Source="aicustact.dll" Target="ProcessFailActions" AdditionalSeq="AI_DATA_SETTER_1"/>
|
<ROW Action="AI_ProcessFailActions" Type="1" Source="aicustact.dll" Target="ProcessFailActions" AdditionalSeq="AI_DATA_SETTER_1"/>
|
||||||
@ -157,6 +164,8 @@
|
|||||||
<ROW Feature_="MainFeature" Component_="kafka.exe"/>
|
<ROW Feature_="MainFeature" Component_="kafka.exe"/>
|
||||||
<ROW Feature_="MainFeature" Component_="kafka.xml"/>
|
<ROW Feature_="MainFeature" Component_="kafka.xml"/>
|
||||||
<ROW Feature_="MainFeature" Component_="zookeeper.exe"/>
|
<ROW Feature_="MainFeature" Component_="zookeeper.exe"/>
|
||||||
|
<ROW Feature_="MainFeature" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Feature_="MainFeature" Component_="AI_DisableModify"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||||
@ -171,7 +180,7 @@
|
|||||||
<ROW Action="AI_DATA_SETTER_1" Sequence="5847"/>
|
<ROW Action="AI_DATA_SETTER_1" Sequence="5847"/>
|
||||||
<ROW Action="AI_TxtUpdaterInstall" Sequence="5101"/>
|
<ROW Action="AI_TxtUpdaterInstall" Sequence="5101"/>
|
||||||
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
<ROW Action="AI_DetectSoftware" Sequence="101"/>
|
||||||
<ATTRIBUTE name="RegisterProduct" value="false"/>
|
<ROW Action="AI_GetArpIconPath" Sequence="1401"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||||
@ -191,8 +200,36 @@
|
|||||||
<ROW Condition="VersionNT" Description="[ProductName] не может быть установлен на [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="VersionNT" Description="[ProductName] не может быть установлен на [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||||
|
<ROW Registry="Comments" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Comments" Value="[ARPCOMMENTS]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Contact" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Contact" Value="[ARPCONTACT]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="CurrentVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion" Name="\"/>
|
||||||
|
<ROW Registry="DisplayIcon" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayIcon" Value="[ARP_ICON_PATH]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="DisplayName" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayName" Value="[AI_PRODUCTNAME_ARP]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="DisplayVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayVersion" Value="[ProductVersion]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="EstimatedSize" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="EstimatedSize" Value="#[AI_ARP_SIZE]" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="HelpLink" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="HelpLink" Value="[ARPHELPLINK]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="HelpTelephone" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="HelpTelephone" Value="[ARPHELPTELEPHONE]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="InstallLocation" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="InstallLocation" Value="[APPDIR]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||||
|
<ROW Registry="Microsoft" Root="-1" Key="Software\Microsoft" Name="\"/>
|
||||||
|
<ROW Registry="ModifyPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="ModifyPath" Value="[AI_UNINSTALLER] /i [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="NoModify" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoModify" Value="#1" Component_="AI_DisableModify" VirtualValue="#"/>
|
||||||
|
<ROW Registry="NoRepair" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoRepair" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||||
|
<ROW Registry="ProductNameProductVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="\"/>
|
||||||
|
<ROW Registry="Publisher" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Publisher" Value="[Manufacturer]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Readme" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Readme" Value="[ARPREADME]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||||
|
<ROW Registry="URLInfoAbout" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="URLInfoAbout" Value="[ARPURLINFOABOUT]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="URLUpdateInfo" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="URLUpdateInfo" Value="[ARPURLUPDATEINFO]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Uninstall" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall" Name="\"/>
|
||||||
|
<ROW Registry="UninstallPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="UninstallPath" Value="[AI_UNINSTALLER] /x [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="UninstallString" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="UninstallString" Value="[AI_UNINSTALLER] /x [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="VersionMajor" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="VersionMajor" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="VersionMinor" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="VersionMinor" Value="#0" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="Windows" Root="-1" Key="Software\Microsoft\Windows" Name="\"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiServConfigComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiServConfigComponent">
|
||||||
<ROW MsiServiceConfig="Apache_Kafka" Name="[ServiceName_Apache_Kafka]" Event="1" ConfigType="3" Argument="1" Component_="kafka.exe"/>
|
<ROW MsiServiceConfig="Apache_Kafka" Name="[ServiceName_Apache_Kafka]" Event="1" ConfigType="3" Argument="1" Component_="kafka.exe"/>
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<DOCUMENT Type="Advanced Installer" CreateVersion="18.6.1" version="18.6.1" Modules="enterprise" RootPath="." Language="ru" Id="{93F1E21E-F074-444A-9756-659088E0DA02}">
|
<DOCUMENT Type="Advanced Installer" CreateVersion="18.6.1" version="18.7" Modules="enterprise" RootPath="." Language="ru" Id="{93F1E21E-F074-444A-9756-659088E0DA02}">
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||||
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
||||||
|
<ROW Property="AI_PRODUCTNAME_ARP" Value="Apache ZooKeeper"/>
|
||||||
|
<ROW Property="AI_UNINSTALLER" Value="msiexec.exe"/>
|
||||||
<ROW Property="ALLUSERS" Value="1"/>
|
<ROW Property="ALLUSERS" Value="1"/>
|
||||||
<ROW Property="ARPCOMMENTS" Value="Эта база данных установщика содержит логику и данные, необходимые для установки [|[ProductName]." ValueLocId="*"/>
|
<ROW Property="ARPNOMODIFY" MultiBuildValue="DefaultBuild:1"/>
|
||||||
|
<ROW Property="ARPNOREPAIR" Value="1"/>
|
||||||
|
<ROW Property="ARPSYSTEMCOMPONENT" Value="1"/>
|
||||||
<ROW Property="Manufacturer" Value="Apache"/>
|
<ROW Property="Manufacturer" Value="Apache"/>
|
||||||
<ROW Property="ProductCode" Value="1049:{DA471CF9-78DC-4D13-AB18-87B4604538FA} " Type="16"/>
|
<ROW Property="ProductCode" Value="1049:{DA471CF9-78DC-4D13-AB18-87B4604538FA} " Type="16"/>
|
||||||
<ROW Property="ProductLanguage" Value="1033"/>
|
<ROW Property="ProductLanguage" Value="1033"/>
|
||||||
@ -29,6 +33,8 @@
|
|||||||
<ROW Directory="kafkazookeeper_Dir" Directory_Parent="WindowsVolume" DefaultDir="Apache"/>
|
<ROW Directory="kafkazookeeper_Dir" Directory_Parent="WindowsVolume" DefaultDir="Apache"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
||||||
|
<ROW Component="AI_CustomARPName" ComponentId="{DA50695D-FCFD-46A6-90BD-50D219311605}" Directory_="APPDIR" Attributes="4" KeyPath="DisplayName" Options="1"/>
|
||||||
|
<ROW Component="AI_DisableModify" ComponentId="{01A44BB2-4D9C-4BE1-A645-EDB8A011DC61}" Directory_="APPDIR" Attributes="4" KeyPath="NoModify" Options="1"/>
|
||||||
<ROW Component="APPDIR" ComponentId="{7C252C97-43D5-4EE8-884E-1BF7D1A2D490}" Directory_="APPDIR" Attributes="0"/>
|
<ROW Component="APPDIR" ComponentId="{7C252C97-43D5-4EE8-884E-1BF7D1A2D490}" Directory_="APPDIR" Attributes="0"/>
|
||||||
<ROW Component="ProductInformation" ComponentId="{0903BE7F-28BE-4981-B82B-2D9A86C43A63}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
<ROW Component="ProductInformation" ComponentId="{0903BE7F-28BE-4981-B82B-2D9A86C43A63}" Directory_="APPDIR" Attributes="4" KeyPath="Version"/>
|
||||||
<ROW Component="zookeeper" ComponentId="{F2EFFE90-2C47-4BAF-9541-143E8ADF5B4B}" Directory_="apachezookeeper3.7.0bin_Dir" Attributes="0"/>
|
<ROW Component="zookeeper" ComponentId="{F2EFFE90-2C47-4BAF-9541-143E8ADF5B4B}" Directory_="apachezookeeper3.7.0bin_Dir" Attributes="0"/>
|
||||||
@ -99,6 +105,7 @@
|
|||||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||||
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
||||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||||
|
<ROW Action="AI_GetArpIconPath" Type="1" Source="aicustact.dll" Target="GetArpIconPath"/>
|
||||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
||||||
@ -116,6 +123,8 @@
|
|||||||
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
||||||
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
|
<ROW Feature_="MainFeature" Component_="ProductInformation"/>
|
||||||
<ROW Feature_="MainFeature" Component_="zookeeper"/>
|
<ROW Feature_="MainFeature" Component_="zookeeper"/>
|
||||||
|
<ROW Feature_="MainFeature" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Feature_="MainFeature" Component_="AI_DisableModify"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||||
@ -126,7 +135,7 @@
|
|||||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||||
<ROW Action="RemoveManufactorDir" Condition="( NOT Installed )" Sequence="6602"/>
|
<ROW Action="RemoveManufactorDir" Condition="( NOT Installed )" Sequence="6602"/>
|
||||||
<ROW Action="AI_DATA_SETTER_2" Condition="( NOT Installed )" Sequence="6601"/>
|
<ROW Action="AI_DATA_SETTER_2" Condition="( NOT Installed )" Sequence="6601"/>
|
||||||
<ATTRIBUTE name="RegisterProduct" value="false"/>
|
<ROW Action="AI_GetArpIconPath" Sequence="1401"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||||
@ -144,8 +153,36 @@
|
|||||||
<ROW Condition="VersionNT" Description="[ProductName] не может быть установлен на [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="VersionNT" Description="[ProductName] не может быть установлен на [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||||
|
<ROW Registry="Comments" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Comments" Value="[ARPCOMMENTS]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Contact" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Contact" Value="[ARPCONTACT]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="CurrentVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion" Name="\"/>
|
||||||
|
<ROW Registry="DisplayIcon" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayIcon" Value="[ARP_ICON_PATH]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="DisplayName" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayName" Value="[AI_PRODUCTNAME_ARP]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="DisplayVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="DisplayVersion" Value="[ProductVersion]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="EstimatedSize" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="EstimatedSize" Value="#[AI_ARP_SIZE]" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="HelpLink" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="HelpLink" Value="[ARPHELPLINK]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="HelpTelephone" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="HelpTelephone" Value="[ARPHELPTELEPHONE]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="InstallLocation" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="InstallLocation" Value="[APPDIR]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Manufacturer" Root="-1" Key="Software\[Manufacturer]" Name="\"/>
|
||||||
|
<ROW Registry="Microsoft" Root="-1" Key="Software\Microsoft" Name="\"/>
|
||||||
|
<ROW Registry="ModifyPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="ModifyPath" Value="[AI_UNINSTALLER] /i [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="NoModify" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoModify" Value="#1" Component_="AI_DisableModify" VirtualValue="#"/>
|
||||||
|
<ROW Registry="NoRepair" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="NoRepair" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
<ROW Registry="Path" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Path" Value="[APPDIR]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="ProductName" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="\"/>
|
||||||
|
<ROW Registry="ProductNameProductVersion" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="\"/>
|
||||||
|
<ROW Registry="Publisher" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Publisher" Value="[Manufacturer]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Readme" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="Readme" Value="[ARPREADME]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||||
|
<ROW Registry="URLInfoAbout" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="URLInfoAbout" Value="[ARPURLINFOABOUT]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="URLUpdateInfo" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="URLUpdateInfo" Value="[ARPURLUPDATEINFO]" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="Uninstall" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall" Name="\"/>
|
||||||
|
<ROW Registry="UninstallPath" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="UninstallPath" Value="[AI_UNINSTALLER] /x [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
|
<ROW Registry="UninstallString" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="UninstallString" Value="[AI_UNINSTALLER] /x [ProductCode] AI_UNINSTALLER_CTP=1" Component_="AI_CustomARPName"/>
|
||||||
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
<ROW Registry="Version" Root="-1" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Value="[ProductVersion]" Component_="ProductInformation"/>
|
||||||
|
<ROW Registry="VersionMajor" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="VersionMajor" Value="#1" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="VersionMinor" Root="-1" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductName] [ProductVersion]" Name="VersionMinor" Value="#0" Component_="AI_CustomARPName" VirtualValue="#"/>
|
||||||
|
<ROW Registry="Windows" Root="-1" Key="Software\Microsoft\Windows" Name="\"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||||
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<DOCUMENT Type="Advanced Installer" CreateVersion="18.4" version="18.7" Modules="enterprise" RootPath="." Language="ru" Id="{54B168F8-13C3-42BC-B783-24F5F6D98365}">
|
<DOCUMENT Type="Advanced Installer" CreateVersion="18.4" version="18.7" Modules="enterprise" RootPath="." Language="en" Id="{54B168F8-13C3-42BC-B783-24F5F6D98365}">
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||||
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
<ROW Property="AI_CURRENT_YEAR" Value="2022" ValueLocId="-"/>
|
||||||
<ROW Property="AI_FINDEXE_TITLE" Value="Выберите установочный пакет для [|ProductName]" ValueLocId="AI.Property.FindExeTitle"/>
|
<ROW Property="AI_FINDEXE_TITLE" Value="Select the installation package for [|ProductName]" ValueLocId="AI.Property.FindExeTitle"/>
|
||||||
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/>
|
<ROW Property="AI_PREDEF_LCONDS_PROPS" Value="AI_DETECTED_INTERNET_CONNECTION"/>
|
||||||
<ROW Property="AI_PRODUCTNAME_ARP" Value="[|ProductName]"/>
|
<ROW Property="AI_PRODUCTNAME_ARP" Value="[|ProductName]"/>
|
||||||
<ROW Property="AI_UNINSTALLER" Value="msiexec.exe"/>
|
<ROW Property="AI_UNINSTALLER" Value="msiexec.exe"/>
|
||||||
@ -28,6 +28,10 @@
|
|||||||
<ROW Property="ELASTICSEARCH_SCHEME" Value="http" ValueLocId="-"/>
|
<ROW Property="ELASTICSEARCH_SCHEME" Value="http" ValueLocId="-"/>
|
||||||
<ROW Property="ENVIRONMENT" Value="test"/>
|
<ROW Property="ENVIRONMENT" Value="test"/>
|
||||||
<ROW Property="INSTALL_ROOT_FOLDER_NAME" Value="[|Manufacturer]"/>
|
<ROW Property="INSTALL_ROOT_FOLDER_NAME" Value="[|Manufacturer]"/>
|
||||||
|
<ROW Property="KAFKA_HOST" Value="localhost"/>
|
||||||
|
<ROW Property="KAFKA_MSG" Value="Unable to connect to remote Kafka server at "/>
|
||||||
|
<ROW Property="KAFKA_PORT" Value="9092"/>
|
||||||
|
<ROW Property="KAFKA_SCHEME" Value="http"/>
|
||||||
<ROW Property="MSIFASTINSTALL" MultiBuildValue="DefaultBuild:3"/>
|
<ROW Property="MSIFASTINSTALL" MultiBuildValue="DefaultBuild:3"/>
|
||||||
<ROW Property="MYSQLODBCDRIVER" Value="MySQL ODBC 8.0 Unicode Driver"/>
|
<ROW Property="MYSQLODBCDRIVER" Value="MySQL ODBC 8.0 Unicode Driver"/>
|
||||||
<ROW Property="Manufacturer" Value="Ascensio System SIA"/>
|
<ROW Property="Manufacturer" Value="Ascensio System SIA"/>
|
||||||
@ -36,8 +40,8 @@
|
|||||||
<ROW Property="PACKAGE_NAME" Value="ONLYOFFICE_AppServer_Win-install.v[|ProductVersion]"/>
|
<ROW Property="PACKAGE_NAME" Value="ONLYOFFICE_AppServer_Win-install.v[|ProductVersion]"/>
|
||||||
<ROW Property="PASSWORD_PROP" Value="root"/>
|
<ROW Property="PASSWORD_PROP" Value="root"/>
|
||||||
<ROW Property="PORT_PROP" Value="3306"/>
|
<ROW Property="PORT_PROP" Value="3306"/>
|
||||||
<ROW Property="ProductCode" Value="1049:{3FABEB4A-D27F-4BA6-A40E-16BE47540727} " Type="16"/>
|
<ROW Property="ProductCode" Value="1033:{3FABEB4A-D27F-4BA6-A40E-16BE47540727} " Type="16"/>
|
||||||
<ROW Property="ProductLanguage" Value="1049"/>
|
<ROW Property="ProductLanguage" Value="1033"/>
|
||||||
<ROW Property="ProductName" Value="ONLYOFFICE AppServer [|ProductVersion]"/>
|
<ROW Property="ProductName" Value="ONLYOFFICE AppServer [|ProductVersion]"/>
|
||||||
<ROW Property="ProductVersion" Value="1.0.0" Type="32"/>
|
<ROW Property="ProductVersion" Value="1.0.0" Type="32"/>
|
||||||
<ROW Property="SERVER_PROP" Value="localhost"/>
|
<ROW Property="SERVER_PROP" Value="localhost"/>
|
||||||
@ -74,6 +78,10 @@
|
|||||||
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||||
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||||
|
<ROW Property="ZOOKEEPER_HOST" Value="localhost"/>
|
||||||
|
<ROW Property="ZOOKEEPER_MSG" Value="Unable to connect to remote ZooKeeper server at "/>
|
||||||
|
<ROW Property="ZOOKEEPER_PORT" Value="2181"/>
|
||||||
|
<ROW Property="ZOOKEEPER_SCHEME" Value="http"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||||
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
|
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
|
||||||
@ -176,11 +184,11 @@
|
|||||||
<ROW Action="AI_DetectSoftware" Sequence="151"/>
|
<ROW Action="AI_DetectSoftware" Sequence="151"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||||
<ROW BuildKey="DefaultBuild" BuildName="ONLYOFFICE_EXE" BuildOrder="1" BuildType="0" PackageFolder="publish" PackageFileName="[|PACKAGE_NAME]" Languages="ru" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExeIconPath="Resources\icon.ico" ExtractionFolder="[AppDataFolder][|INSTALL_ROOT_FOLDER_NAME]\AppServer\install" ExtUI="true" UseLargeSchema="true" Unicode="true" ExeName="[|PACKAGE_NAME]" UACExecutionLevel="2"/>
|
<ROW BuildKey="DefaultBuild" BuildName="ONLYOFFICE_EXE" BuildOrder="1" BuildType="0" PackageFolder="publish" PackageFileName="[|PACKAGE_NAME]" Languages="en" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExeIconPath="Resources\icon.ico" ExtractionFolder="[AppDataFolder][|INSTALL_ROOT_FOLDER_NAME]\AppServer\install" ExtUI="true" UseLargeSchema="true" Unicode="true" ExeName="[|PACKAGE_NAME]" UACExecutionLevel="2"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||||
<ROW Path="<AI_DICTS>ui_ru.ail"/>
|
<ROW Path="<AI_DICTS>ui_en.ail"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
||||||
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
||||||
@ -213,22 +221,22 @@
|
|||||||
<ROW JsonProperty="migration" Parent="Root_1" Name="migration" Condition="1" Order="1" Flags="60"/>
|
<ROW JsonProperty="migration" Parent="Root_1" Name="migration" Condition="1" Order="1" Flags="60"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
|
||||||
<ROW Action="AI_ConfigFailActions" Description="Настройка действия при сбое службы" DescriptionLocId="ActionText.Description.AI_ConfigFailActions" Template="Служба: [1]" TemplateLocId="ActionText.Template.AI_ConfigFailActions"/>
|
<ROW Action="AI_ConfigFailActions" Description="Configure service failure actions" DescriptionLocId="ActionText.Description.AI_ConfigFailActions" Template="Service: [1]" TemplateLocId="ActionText.Template.AI_ConfigFailActions"/>
|
||||||
<ROW Action="AI_DeleteLzma" Description="Удаление извлеченных файлов из архива" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
<ROW Action="AI_DeleteLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
||||||
<ROW Action="AI_DeleteRLzma" Description="Удаление извлеченных файлов из архива" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
<ROW Action="AI_DeleteRLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
||||||
<ROW Action="AI_ExtractFiles" Description="Извлечение файлов из архива" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
<ROW Action="AI_ExtractFiles" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||||
<ROW Action="AI_ExtractLzma" Description="Извлечение файлов из архива" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
<ROW Action="AI_ExtractLzma" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||||
<ROW Action="AI_JsonCommit" Description="Фиксация JSON-файла конфигурации." DescriptionLocId="ActionText.Description.AI_JsonCommit" Template="Фиксация JSON-файла конфигурации." TemplateLocId="ActionText.Template.AI_JsonCommit"/>
|
<ROW Action="AI_JsonCommit" Description="Committing JSON file configurations." DescriptionLocId="ActionText.Description.AI_JsonCommit" Template="Committing JSON file configurations." TemplateLocId="ActionText.Template.AI_JsonCommit"/>
|
||||||
<ROW Action="AI_JsonConfig" Description="Выполнение файла конфигурации JSON" DescriptionLocId="ActionText.Description.AI_JsonConfig" Template="Настройка JSON-файла: "[1]"" TemplateLocId="ActionText.Template.AI_JsonConfig"/>
|
<ROW Action="AI_JsonConfig" Description="Executing JSON file configurations" DescriptionLocId="ActionText.Description.AI_JsonConfig" Template="Configuring JSON file: "[1]"" TemplateLocId="ActionText.Template.AI_JsonConfig"/>
|
||||||
<ROW Action="AI_JsonInstall" Description="Создание действий для настройки JSON-файлов" DescriptionLocId="ActionText.Description.AI_JsonInstall"/>
|
<ROW Action="AI_JsonInstall" Description="Generating actions to configure JSON files" DescriptionLocId="ActionText.Description.AI_JsonInstall"/>
|
||||||
<ROW Action="AI_JsonRemove" Description="Выполнение файла конфигурации JSON" DescriptionLocId="ActionText.Description.AI_JsonRemove" Template="Настройка JSON-файла: "[1]"" TemplateLocId="ActionText.Template.AI_JsonRemove"/>
|
<ROW Action="AI_JsonRemove" Description="Executing JSON file configurations" DescriptionLocId="ActionText.Description.AI_JsonRemove" Template="Configuring JSON file: "[1]"" TemplateLocId="ActionText.Template.AI_JsonRemove"/>
|
||||||
<ROW Action="AI_JsonRollback" Description="Откат файлов конфигурации JSON." DescriptionLocId="ActionText.Description.AI_JsonRollback" Template="Откат файлов конфигурации JSON." TemplateLocId="ActionText.Template.AI_JsonRollback"/>
|
<ROW Action="AI_JsonRollback" Description="Rolling back JSON file configurations." DescriptionLocId="ActionText.Description.AI_JsonRollback" Template="Rolling back JSON file configurations." TemplateLocId="ActionText.Template.AI_JsonRollback"/>
|
||||||
<ROW Action="AI_JsonUninstall" Description="Создание действий для настройки JSON-файлов" DescriptionLocId="ActionText.Description.AI_JsonUninstall"/>
|
<ROW Action="AI_JsonUninstall" Description="Generating actions to configure JSON files" DescriptionLocId="ActionText.Description.AI_JsonUninstall"/>
|
||||||
<ROW Action="AI_ProcessFailActions" Description="Создание действия для настройки действия при сбое службы" DescriptionLocId="ActionText.Description.AI_ProcessFailActions" Template="Служба: [1]" TemplateLocId="ActionText.Template.AI_ProcessFailActions"/>
|
<ROW Action="AI_ProcessFailActions" Description="Generating actions to configure service failure actions" DescriptionLocId="ActionText.Description.AI_ProcessFailActions" Template="Service: [1]" TemplateLocId="ActionText.Template.AI_ProcessFailActions"/>
|
||||||
<ROW Action="AI_TxtUpdaterCommit" Description="Фиксация изменений текстового файла." DescriptionLocId="ActionText.Description.AI_TxtUpdaterCommit" Template="Фиксация изменений текстового файла." TemplateLocId="ActionText.Template.AI_TxtUpdaterCommit"/>
|
<ROW Action="AI_TxtUpdaterCommit" Description="Commit text file changes." DescriptionLocId="ActionText.Description.AI_TxtUpdaterCommit" Template="Commit text file changes." TemplateLocId="ActionText.Template.AI_TxtUpdaterCommit"/>
|
||||||
<ROW Action="AI_TxtUpdaterConfig" Description="Выполнение обновления текстового файла" DescriptionLocId="ActionText.Description.AI_TxtUpdaterConfig" Template="Обновление текстового файла: "[1]"" TemplateLocId="ActionText.Template.AI_TxtUpdaterConfig"/>
|
<ROW Action="AI_TxtUpdaterConfig" Description="Executing text file updates" DescriptionLocId="ActionText.Description.AI_TxtUpdaterConfig" Template="Updating text file: "[1]"" TemplateLocId="ActionText.Template.AI_TxtUpdaterConfig"/>
|
||||||
<ROW Action="AI_TxtUpdaterInstall" Description="Создание действий для настройки текстовых файлов обновлений" DescriptionLocId="ActionText.Description.AI_TxtUpdaterInstall"/>
|
<ROW Action="AI_TxtUpdaterInstall" Description="Generating actions to configure text files updates" DescriptionLocId="ActionText.Description.AI_TxtUpdaterInstall"/>
|
||||||
<ROW Action="AI_TxtUpdaterRollback" Description="Откат изменений текстового файла." DescriptionLocId="ActionText.Description.AI_TxtUpdaterRollback" Template="Откат изменений текстового файла." TemplateLocId="ActionText.Template.AI_TxtUpdaterRollback"/>
|
<ROW Action="AI_TxtUpdaterRollback" Description="Rolling back text file changes." DescriptionLocId="ActionText.Description.AI_TxtUpdaterRollback" Template="Rolling back text file changes." TemplateLocId="ActionText.Template.AI_TxtUpdaterRollback"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
|
||||||
<ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_LM" Builds="DefaultBuild"/>
|
<ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_LM" Builds="DefaultBuild"/>
|
||||||
@ -243,6 +251,7 @@
|
|||||||
<ROW Name="jsonCfg.dll" SourcePath="<AI_CUSTACTS>jsonCfg.dll"/>
|
<ROW Name="jsonCfg.dll" SourcePath="<AI_CUSTACTS>jsonCfg.dll"/>
|
||||||
<ROW Name="lzmaextractor.dll" SourcePath="<AI_CUSTACTS>lzmaextractor.dll"/>
|
<ROW Name="lzmaextractor.dll" SourcePath="<AI_CUSTACTS>lzmaextractor.dll"/>
|
||||||
<ROW Name="utils.vbs" SourcePath="utils.vbs"/>
|
<ROW Name="utils.vbs" SourcePath="utils.vbs"/>
|
||||||
|
<ROW Name="Utils.CA.dll" SourcePath="Utils.CA.dll"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
|
||||||
<ROW Dialog_="AdminInstallPointDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="600" TextLocId="-" MsiKey="AdminInstallPointDlg#Back" Options="1"/>
|
<ROW Dialog_="AdminInstallPointDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="600" TextLocId="-" MsiKey="AdminInstallPointDlg#Back" Options="1"/>
|
||||||
@ -254,9 +263,9 @@
|
|||||||
<ROW Dialog_="ELKConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Order="400"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Order="400"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="Описание нового диалогового окна..." Order="700"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="Настройка подключения Elasticsearch..." Order="700"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Order="800"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Order="800"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="Новое диалоговое окно" TextStyle="[DlgTitleFont]" Order="900"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="Elasticsearch настройки подключения" TextStyle="[DlgTitleFont]" Order="900"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="1000"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="1000"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1100"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1100"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1200"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1200"/>
|
||||||
@ -265,7 +274,23 @@
|
|||||||
<ROW Dialog_="ELKConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="ELASTICSEARCH_PORT" Text="{7}" Order="1500"/>
|
<ROW Dialog_="ELKConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="ELASTICSEARCH_PORT" Text="{7}" Order="1500"/>
|
||||||
<ROW Dialog_="ExitDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="ExitDialog#Back" Options="1"/>
|
<ROW Dialog_="ExitDialog" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="ExitDialog#Back" Options="1"/>
|
||||||
<ROW Dialog_="FatalError" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="FatalError#Back" Options="1"/>
|
<ROW Dialog_="FatalError" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="FatalError#Back" Options="1"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control="FolderEdit" Type="PathEdit" X="18" Y="126" Width="252" Height="18" Attributes="7" Property="APPDIR" Help="|" Order="300" HelpLocId="Control.Help.FolderDlg#FolderEdit" MsiKey="FolderDlg#FolderEdit"/>
|
||||||
<ROW Dialog_="FolderDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="800" TextLocId="-" MsiKey="FolderDlg#Back" Options="1"/>
|
<ROW Dialog_="FolderDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="800" TextLocId="-" MsiKey="FolderDlg#Back" Options="1"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Order="100" Options="1"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Order="200" Options="1"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="300" Options="1"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Order="400"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="Настройка подключения Kafka..." Order="700"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Order="800"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="Kafka настройки подключения" TextStyle="[DlgTitleFont]" Order="900"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="1000"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1100"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1200"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="ProtocolEdit" Type="Edit" X="98" Y="61" Width="253" Height="18" Attributes="3" Property="KAFKA_SCHEME" Text="{5}" Order="1300"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="ServerEdit" Type="Edit" X="98" Y="89" Width="253" Height="18" Attributes="3" Property="KAFKA_HOST" Text="[ComputerName]" Order="1400"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="KAFKA_PORT" Text="{7}" Order="1500"/>
|
||||||
<ROW Dialog_="MaintenanceTypeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="700" TextLocId="-" MsiKey="MaintenanceTypeDlg#Back" Options="1"/>
|
<ROW Dialog_="MaintenanceTypeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="700" TextLocId="-" MsiKey="MaintenanceTypeDlg#Back" Options="1"/>
|
||||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="MaintenanceWelcomeDlg#Back" Options="1"/>
|
<ROW Dialog_="MaintenanceWelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="MaintenanceWelcomeDlg#Back" Options="1"/>
|
||||||
<ROW Dialog_="PatchWelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="PatchWelcomeDlg#Back" Options="1"/>
|
<ROW Dialog_="PatchWelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="PatchWelcomeDlg#Back" Options="1"/>
|
||||||
@ -297,14 +322,29 @@
|
|||||||
<ROW Dialog_="VerifyRepairDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="600" TextLocId="-" MsiKey="VerifyRepairDlg#Back" Options="1"/>
|
<ROW Dialog_="VerifyRepairDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="600" TextLocId="-" MsiKey="VerifyRepairDlg#Back" Options="1"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="WelcomeDlg#Back" Options="1"/>
|
<ROW Dialog_="WelcomeDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="400" TextLocId="-" MsiKey="WelcomeDlg#Back" Options="1"/>
|
||||||
<ROW Dialog_="WelcomePrereqDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="300" TextLocId="-" MsiKey="WelcomePrereqDlg#Back" Options="1"/>
|
<ROW Dialog_="WelcomePrereqDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="1" Text="[ButtonText_Back]" Order="300" TextLocId="-" MsiKey="WelcomePrereqDlg#Back" Options="1"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Next]" Order="100" Options="1"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Cancel]" Order="200" Options="1"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Attributes="3" Text="[ButtonText_Back]" Order="300" Options="1"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" Attributes="1048577" Text="[BannerBitmap]" Order="400"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="BannerLine" Type="Line" X="0" Y="44" Width="372" Height="0" Attributes="1" Order="500"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="BottomLine" Type="Line" X="5" Y="234" Width="368" Height="0" Attributes="1" Order="600"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Description" Type="Text" X="25" Y="23" Width="280" Height="15" Attributes="196611" Text="Настройка подключения ZooKeeper..." Order="700"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Logo" Type="Text" X="4" Y="228" Width="70" Height="12" Attributes="1" Text="Advanced Installer" Order="800"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Attributes="196611" Text="ZooKeeper настройки подключения" TextStyle="[DlgTitleFont]" Order="900"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="ProtocolLabel" Type="Text" X="25" Y="65" Width="67" Height="11" Attributes="65539" Text="Protocol" Order="1000"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="ServerLabel" Type="Text" X="25" Y="92" Width="67" Height="11" Attributes="65539" Text="Server:" Order="1100"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="PortLabel" Type="Text" X="25" Y="119" Width="67" Height="11" Attributes="65539" Text="Port:" Order="1200"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="ProtocolEdit" Type="Edit" X="98" Y="61" Width="253" Height="18" Attributes="3" Property="ZOOKEEPER_SCHEME" Text="{5}" Order="1300"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="ServerEdit" Type="Edit" X="98" Y="89" Width="253" Height="18" Attributes="3" Property="ZOOKEEPER_HOST" Text="[ComputerName]" Order="1400"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control="PortEdit" Type="Edit" X="98" Y="116" Width="253" Height="18" Attributes="19" Property="ZOOKEEPER_PORT" Text="{7}" Order="1500"/>
|
||||||
<ATTRIBUTE name="DeletedRows" value="SQLConnectionDlg#OdbcResourceEdit@SQLConnectionDlg#OdbcResourceLabel@SQLConnectionDlg.aip"/>
|
<ATTRIBUTE name="DeletedRows" value="SQLConnectionDlg#OdbcResourceEdit@SQLConnectionDlg#OdbcResourceLabel@SQLConnectionDlg.aip"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="7"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="9"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="205"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="210"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" AND ELK_CONNECTION = 0 )" Ordering="203"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" )" Ordering="203"/>
|
||||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
||||||
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
||||||
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||||
@ -325,40 +365,75 @@
|
|||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="205"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="205"/>
|
||||||
<ROW Dialog_="PrerequisitesDlg" Control_="Back" Event="NewDialog" Argument="WelcomePrereqDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
|
<ROW Dialog_="PrerequisitesDlg" Control_="Back" Event="NewDialog" Argument="WelcomePrereqDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_5" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="4"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_5" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="3"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestSQLConnectionMsgBox" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="5"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestSQLConnectionMsgBox" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="4"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[PASSWORD_PROP]" Argument="{}" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="4"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[PASSWORD_PROP]" Argument="{}" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="4"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[AI_ButtonText_Next_Orig]" Argument="[ButtonText_Next]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="3"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[AI_ButtonText_Next_Orig]" Argument="[ButtonText_Next]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="3"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[ButtonText_Next]" Argument="[[AI_CommitButton]]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="2"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[ButtonText_Next]" Argument="[[AI_CommitButton]]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="2"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[AI_Text_Next_Orig]" Argument="[Text_Next]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="1"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[AI_Text_Next_Orig]" Argument="[Text_Next]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="1"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[Text_Next]" Argument="[Text_Install]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="0"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="SQLConnectionDlgDialogInitializer" Event="[Text_Next]" Argument="[Text_Install]" Condition="AI_INSTALL AND ( OLDPRODUCTS="" AND SQLConnectionDlg_Cond )" Ordering="0"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = 0 )" Ordering="7"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "False" )" Ordering="5"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="2"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="2"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="1"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="1"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="4"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" AND OLDPRODUCTS <> "" )" Ordering="10"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError="" AND ELK_CONNECTION = 1 )" Ordering="6"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" AND OLDPRODUCTS <> "" )" Ordering="16"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="201"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="201"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = 1 )" Ordering="207"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" )" Ordering="214"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="3"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="DoAction" Argument="TestSqlConnection" Condition="AI_INSTALL" Ordering="2"/>
|
||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" AND SqlConnectionError = "" AND ELK_CONNECTION = 1 )" Ordering="201"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND (OLDPRODUCTS = "" )" Ordering="201"/>
|
||||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="202"/>
|
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="202"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( ELK_CONNECTION = 1 AND SqlConnectionError = "" )" Ordering="7"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="ZKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "False" )" Ordering="6"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="3"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="3"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="5"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="SQLConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError <> "" )" Ordering="5"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="3"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="3"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="2"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="2"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnectionMsgBox" Condition="AI_INSTALL AND ( ELK_CONNECTION = 0 )" Ordering="6"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnectionMsgBox" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="5"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER" Condition="AI_INSTALL AND ( ELK_CONNECTION = 0 )" Ordering="5"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="4"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="3"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="3"/>
|
||||||
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="4"/>
|
<ROW Dialog_="ELKConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="4"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" )" Ordering="3"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="3"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL AND ( SqlConnectionError = "" )" Ordering="2"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="2"/>
|
||||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = 0 )" Ordering="5"/>
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "False" AND OLDPRODUCTS <> "" )" Ordering="11"/>
|
||||||
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="SpawnDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = 1 )" Ordering="8"/>
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="SpawnDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" )" Ordering="8"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL" Ordering="204"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestElasticsearchConnection" Condition="AI_INSTALL AND SqlConnectionError = """ Ordering="203"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL" Ordering="203"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_1" Condition="AI_INSTALL AND SqlConnectionError = """ Ordering="202"/>
|
||||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = 0 )" Ordering="206"/>
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "False" )" Ordering="211"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" )" Ordering="7"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Back" Event="NewDialog" Argument="ELKConnectionDlg" Condition="AI_INSTALL AND ( ELK_CONNECTION = "False" )" Ordering="3"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Cancel" Event="SpawnDialog" Argument="CancelDlg" Condition="1" Ordering="100"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" )" Ordering="8"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Back" Event="NewDialog" Argument="ZKConnectionDlg" Condition="AI_INSTALL AND ( ZK_CONNECTION = "False" )" Ordering="3"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="1"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS = "" )" Ordering="1"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="2"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL AND ( OLDPRODUCTS <> "" )" Ordering="2"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestZookeeperConnection" Condition="AI_INSTALL" Ordering="5"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_4" Condition="AI_INSTALL" Ordering="4"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="TestKafkaConnection" Condition="AI_INSTALL" Ordering="7"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_15" Condition="AI_INSTALL" Ordering="6"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="ZKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "False" AND OLDPRODUCTS <> "" )" Ordering="12"/>
|
||||||
|
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" AND OLDPRODUCTS <> "" )" Ordering="15"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="ZKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "False" )" Ordering="212"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" )" Ordering="213"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestZookeeperConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" )" Ordering="206"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_4" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" )" Ordering="205"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="TestKafkaConnection" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" )" Ordering="209"/>
|
||||||
|
<ROW Dialog_="FolderDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_15" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" )" Ordering="208"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestZookeeperConnection" Condition="AI_INSTALL" Ordering="3"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_4" Condition="AI_INSTALL" Ordering="2"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="DoAction" Argument="TestZookeeperConnectionMsgBox" Condition="AI_INSTALL AND ( ZK_CONNECTION = "False" )" Ordering="5"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_14" Condition="AI_INSTALL AND ( ZK_CONNECTION = "False" )" Ordering="4"/>
|
||||||
|
<ROW Dialog_="ZKConnectionDlg" Control_="Next" Event="SpawnDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" )" Ordering="8"/>
|
||||||
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="ZKConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "False" )" Ordering="6"/>
|
||||||
|
<ROW Dialog_="SQLConnectionDlg" Control_="Next" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" )" Ordering="7"/>
|
||||||
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="SpawnDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "True" )" Ordering="8"/>
|
||||||
|
<ROW Dialog_="ELKConnectionDlg" Control_="Next" Event="NewDialog" Argument="KAFKAConnectionDlg" Condition="AI_INSTALL AND ( SqlConnectionError = "" AND ELK_CONNECTION = "True" AND ZK_CONNECTION = "True" AND KAFKA_CONNECTION = "False" )" Ordering="7"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Next" Event="DoAction" Argument="TestKafkaConnection" Condition="AI_INSTALL" Ordering="4"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_15" Condition="AI_INSTALL" Ordering="3"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Next" Event="DoAction" Argument="TestKafkaConnectionMsgBox" Condition="AI_INSTALL AND ( KAFKA_CONNECTION = "False" )" Ordering="7"/>
|
||||||
|
<ROW Dialog_="KAFKAConnectionDlg" Control_="Next" Event="DoAction" Argument="AI_DATA_SETTER_16" Condition="AI_INSTALL AND ( KAFKA_CONNECTION = "False" )" Ordering="6"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
||||||
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
||||||
@ -369,18 +444,22 @@
|
|||||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
||||||
<ROW Action="AI_ConfigFailActions" Type="11265" Source="aicustact.dll" Target="ConfigureServFailActions" WithoutSeq="true"/>
|
<ROW Action="AI_ConfigFailActions" Type="11265" Source="aicustact.dll" Target="ConfigureServFailActions" WithoutSeq="true"/>
|
||||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[ELASTICSEARCH_MSG] \n[ELASTICSEARCH_SCHEME]://[ELASTICSEARCH_HOST]:[ELASTICSEARCH_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[ELASTICSEARCH_MSG] \n[ELASTICSEARCH_SCHEME]://[ELASTICSEARCH_HOST]:[ELASTICSEARCH_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_1" Type="51" Source="CustomActionData" Target="AEQAaQBnAGkAdABhAGwAbAB5AFMAaQBnAG4AUwBjAHIAaQBwAHQAAgABAEYAbABhAGcAcwACADYAAQBQAGEAcgBhAG0AcwACAAEAUwBjAHIAaQBwAHQAAgAjAFIAZQBxAHUAaQByAGUAcwAgAC0AdgBlAHIAcwBpAG8AbgAgADMADQAKAFAAYQByAGEAbQAoACkADQAKAA0ACgBmAHUAbgBjAHQAaQBvAG4AIABDAGgAZQBjAGsAVABDAFAAUABvAHIAdABBAHYAYQBpAGwAYQBiAGkAbABpAHQAeQAgAFsAXAB7AF0ADQAKAA0ACgAgACAAcABhAHIAYQBtACAAKAAgACQAdABjAHAAXwBoAG8AcwB0ACwAIAAkAHAAbwByAHQAIAApAA0ACgANAAoAIAAgACQAdABpAG0AZQBfAHQAbwBfAHcAYQBpAHQAIAA9ACAAMQAwADAAMAANAAoAIAAgACQAdABjAHAAbwBiAGoAZQBjAHQAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAHMAeQBzAHQAZQBtAC4ATgBlAHQALgBTAG8AYwBrAGUAdABzAC4AVABjAHAAQwBsAGkAZQBuAHQADQAKACAAIAAkAGMAbwBuAG4AZQBjAHQAIAA9ACAAJAB0AGMAcABvAGIAagBlAGMAdAAuAEIAZQBnAGkAbgBDAG8AbgBuAGUAYwB0ACgAJAB0AGMAcABfAGgAbwBzAHQALAAgACQAcABvAHIAdAAsACAAJABuAHUAbABsACwAIAAkAG4AdQBsAGwAKQANAAoAIAAgACQAdwBhAGkAdAAgAD0AIAAkAGMAbwBuAG4AZQBjAHQALgBBAHMAeQBuAGMAVwBhAGkAdABIAGEAbgBkAGwAZQAuAFcAYQBpAHQATwBuAGUAKAAkAHQAaQBtAGUAXwB0AG8AXwB3AGEAaQB0ACwAIAAkAGYAYQBsAHMAZQApAA0ACgAgACAAaQBmACAAKAAtAE4AbwB0ACAAJAB3AGEAaQB0ACkAIABbAFwAewBdAA0ACgAgACAAIAAgAHIAZQB0AHUAcgBuACAAMAANAAoAIAAgAFsAXAB9AF0AIABlAGwAcwBlACAAWwBcAHsAXQANAAoAIAAgACAAIAAkAEUAcgByAG8AcgAuAGMAbABlAGEAcgAoACkADQAKACAAIAAgACAAJAB0AGMAcABvAGIAagBlAGMAdAAuAEUAbgBkAEMAbwBuAG4AZQBjAHQAKAAkAGMAbwBuAG4AZQBjAHQAKQAgAHwAIABPAHUAdAAtAE4AdQBsAGwADQAKACAAIAAgACAAaQBmACAAKAAkAEUAcgByAG8AcgBbAFwAWwBdADAAWwBcAF0AXQApACAAWwBcAHsAXQANAAoAIAAgACAAIAAgACAAIAAgAFcAcgBpAHQAZQAtAFcAYQByAG4AaQBuAGcAIAAoACIAWwBcAHsAXQAwAFsAXAB9AF0AIgAgAC0AZgAgACQARQByAHIAbwByAFsAXABbAF0AMABbAFwAXQBdAC4ARQB4AGMAZQBwAHQAaQBvAG4ALgBNAGUAcwBzAGEAZwBlACkADQAKACAAIAAgACAAWwBcAH0AXQAgAGUAbABzAGUAIABbAFwAewBdAA0ACgAgACAAIAAgACAAIAAgACAAcgBlAHQAdQByAG4AIAAxAA0ACgAgACAAIAAgAFsAXAB9AF0ADQAKACAAIABbAFwAfQBdAA0ACgBbAFwAfQBdAA0ACgANAAoAJABFAEwASwBfAEgATwBTAFQAIAA9ACAAQQBJAF8ARwBlAHQATQBzAGkAUAByAG8AcABlAHIAdAB5ACAARQBMAEEAUwBUAEkAQwBTAEUAQQBSAEMASABfAEgATwBTAFQADQAKACQARQBMAEsAXwBQAE8AUgBUACAAPQAgAEEASQBfAEcAZQB0AE0AcwBpAFAAcgBvAHAAZQByAHQAeQAgAEUATABBAFMAVABJAEMAUwBFAEEAUgBDAEgAXwBQAE8AUgBUAA0ACgANAAoAJABFAEwASwBfAEMATwBOAE4ARQBDAFQASQBPAE4AIAA9ACAAQwBoAGUAYwBrAFQAQwBQAFAAbwByAHQAQQB2AGEAaQBsAGEAYgBpAGwAaQB0AHkAIAAkAEUATABLAF8ASABPAFMAVAAgACQARQBMAEsAXwBQAE8AUgBUAA0ACgANAAoAQQBJAF8AUwBlAHQATQBzAGkAUAByAG8AcABlAHIAdAB5ACAARQBMAEsAXwBDAE8ATgBOAEUAQwBUAEkATwBOACAAJABFAEwASwBfAEMATwBOAE4ARQBDAFQASQBPAE4="/>
|
<ROW Action="AI_DATA_SETTER_1" Type="51" Source="CustomActionData" Target="HOST=[ELASTICSEARCH_HOST];PORT=[ELASTICSEARCH_PORT];OUTPUT=ELK_CONNECTION"/>
|
||||||
<ROW Action="AI_DATA_SETTER_10" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
|
||||||
<ROW Action="AI_DATA_SETTER_11" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
|
||||||
<ROW Action="AI_DATA_SETTER_12" Type="51" Source="CustomActionData" Target="Elasticsearch"/>
|
|
||||||
<ROW Action="AI_DATA_SETTER_13" Type="51" Source="StartElasticSearchService" Target="Elasticsearch"/>
|
|
||||||
<ROW Action="AI_DATA_SETTER_2" Type="51" Source="CustomActionData" Target="[AI_SETUPEXEPATH]"/>
|
<ROW Action="AI_DATA_SETTER_2" Type="51" Source="CustomActionData" Target="[AI_SETUPEXEPATH]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_3" Type="51" Source="CustomActionData" Target="[~]"/>
|
<ROW Action="AI_DATA_SETTER_3" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_4" Type="51" Source="CustomActionData" Target="HOST=[ZOOKEEPER_HOST];PORT=[ZOOKEEPER_PORT];OUTPUT=ZK_CONNECTION"/>
|
||||||
<ROW Action="AI_DATA_SETTER_5" Type="51" Source="CustomActionData" Target="[SqlConnectionError] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
<ROW Action="AI_DATA_SETTER_5" Type="51" Source="CustomActionData" Target="[SqlConnectionError] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_6" Type="51" Source="CustomActionData" Target="[APPDIR_FORWARD_SLASH]"/>
|
<ROW Action="AI_DATA_SETTER_6" Type="51" Source="CustomActionData" Target="[APPDIR_FORWARD_SLASH]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_7" Type="51" Source="CustomActionData" Target="[~]"/>
|
<ROW Action="AI_DATA_SETTER_7" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_8" Type="51" Source="CustomActionData" Target="[~]"/>
|
<ROW Action="AI_DATA_SETTER_8" Type="51" Source="CustomActionData" Target="[~]"/>
|
||||||
<ROW Action="AI_DATA_SETTER_9" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
<ROW Action="AI_DATA_SETTER_9" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_10" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_11" Type="51" Source="CustomActionData" Target="MySQL80"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_12" Type="51" Source="CustomActionData" Target="Elasticsearch"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_13" Type="51" Source="StartElasticSearchService" Target="Elasticsearch"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_14" Type="51" Source="CustomActionData" Target="[ZOOKEEPER_MSG] \n[ZOOKEEPER_SCHEME]://[ZOOKEEPER_HOST]:[ZOOKEEPER_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_15" Type="51" Source="CustomActionData" Target="HOST=[KAFKA_HOST];PORT=[KAFKA_PORT];OUTPUT=KAFKA_CONNECTION"/>
|
||||||
|
<ROW Action="AI_DATA_SETTER_16" Type="51" Source="CustomActionData" Target="[KAFKA_MSG] \n[KAFKA_SCHEME]://[KAFKA_HOST]:[KAFKA_PORT] |[ProductName] Setup |MB_OK,MB_ICONWARNING,MB_DEFBUTTON1||[CLIENTPROCESSID]"/>
|
||||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||||
<ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/>
|
<ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/>
|
||||||
<ROW Action="AI_DeleteLzma" Type="1025" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
|
<ROW Action="AI_DeleteLzma" Type="1025" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
|
||||||
@ -427,13 +506,19 @@
|
|||||||
<ROW Action="StartMySQLService" Type="1" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_11"/>
|
<ROW Action="StartMySQLService" Type="1" Source="aicustact.dll" Target="StartWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_11"/>
|
||||||
<ROW Action="StopElasticSearchService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_12"/>
|
<ROW Action="StopElasticSearchService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_12"/>
|
||||||
<ROW Action="StopMySQLService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_10"/>
|
<ROW Action="StopMySQLService" Type="1" Source="aicustact.dll" Target="StopWinService" Options="1" AdditionalSeq="AI_DATA_SETTER_10"/>
|
||||||
<ROW Action="TestElasticsearchConnection" Type="1" Source="PowerShellScriptLauncher.dll" Target="RunPowerShellScript" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_1"/>
|
<ROW Action="TestElasticsearchConnection" Type="1" Source="Utils.CA.dll" Target="CheckTCPAvailability" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_1"/>
|
||||||
<ROW Action="TestElasticsearchConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER"/>
|
<ROW Action="TestElasticsearchConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER"/>
|
||||||
|
<ROW Action="TestKafkaConnection" Type="1" Source="Utils.CA.dll" Target="CheckTCPAvailability" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_15"/>
|
||||||
|
<ROW Action="TestKafkaConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_16"/>
|
||||||
<ROW Action="TestSQLConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_5"/>
|
<ROW Action="TestSQLConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_5"/>
|
||||||
<ROW Action="TestSqlConnection" Type="6" Source="utils.vbs" Target="TestSqlConnection" WithoutSeq="true"/>
|
<ROW Action="TestSqlConnection" Type="6" Source="utils.vbs" Target="TestSqlConnection" WithoutSeq="true"/>
|
||||||
|
<ROW Action="TestZookeeperConnection" Type="1" Source="Utils.CA.dll" Target="CheckTCPAvailability" WithoutSeq="true" AdditionalSeq="AI_DATA_SETTER_4"/>
|
||||||
|
<ROW Action="TestZookeeperConnectionMsgBox" Type="1" Source="aicustact.dll" Target="MsgBox" WithoutSeq="true" Options="1" AdditionalSeq="AI_DATA_SETTER_14"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiDialogComponent">
|
||||||
<ROW Dialog="ELKConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
<ROW Dialog="ELKConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||||
|
<ROW Dialog="KAFKAConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||||
|
<ROW Dialog="ZKConnectionDlg" HCentering="50" VCentering="50" Width="370" Height="270" Attributes="3" Title="[ProductName] [Setup]" Control_Default="Next" Control_Cancel="Cancel"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiEnvComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiEnvComponent">
|
||||||
<ROW Environment="JAVA_HOME" Name="=-*JAVA_HOME" Value="[WindowsVolume]Progra~1\Elastic\Elasticsearch\7.13.1\jdk" Component_="AI_ExePath"/>
|
<ROW Environment="JAVA_HOME" Name="=-*JAVA_HOME" Value="[WindowsVolume]Progra~1\Elastic\Elasticsearch\7.13.1\jdk" Component_="AI_ExePath"/>
|
||||||
@ -527,12 +612,12 @@
|
|||||||
<ROW Action="AI_RestartElevated" Sequence="51"/>
|
<ROW Action="AI_RestartElevated" Sequence="51"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="Нельзя установить [ProductName] на [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
<ROW Condition="(VersionNT <> 400)" Description="Нельзя установить [ProductName] на [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on [WindowsTypeNT40Display]." DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
<ROW Condition="(VersionNT <> 500)" Description="Нельзя установить [ProductName] на [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] cannot be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
<ROW Condition="AI_DETECTED_INTERNET_CONNECTION" Description="Для установки [ProductName] требуется активное подключение к Интернету. Пожалуйста, проверьте настройки прокси-сервера и конфигурации сети." DescriptionLocId="AI.LaunchCondition.Internet" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="AI_DETECTED_INTERNET_CONNECTION" Description="[ProductName] requires an active Internet connection for installation. Please check your network configuration and proxy settings." DescriptionLocId="AI.LaunchCondition.Internet" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
<ROW Condition="SETUPEXEDIR OR (REMOVE="ALL")" Description="Этот пакет можно запускать только из загрузчика." DescriptionLocId="AI.LaunchCondition.RequireBootstrapper" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="SETUPEXEDIR OR (REMOVE="ALL")" Description="This package can only be run from a bootstrapper." DescriptionLocId="AI.LaunchCondition.RequireBootstrapper" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
<ROW Condition="VersionNT" Description="[ProductName] не может быть установлен на [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
<ROW Condition="VersionNT" Description="[ProductName] cannot be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||||
</COMPONENT>
|
</COMPONENT>
|
||||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
|
||||||
<ROW Signature_="AI_EXE_PATH_CU" Root="1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
|
<ROW Signature_="AI_EXE_PATH_CU" Root="1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
|
||||||
@ -654,10 +739,10 @@
|
|||||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
|
<COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
|
||||||
<ROW PrereqKey="A918597FE054CCCB65ABDBA0AD8F63C" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x86" VersionMin="14.26" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/d60aa805-26e9-47df-b4e3-cd6fcc392333/A06AAC66734A618AB33C1522920654DDFC44FC13CAFAA0F0AB85B199C3D51DC0/VC_redist.x86.exe" Location="1" ExactSize="14413048" WinNTVersions="Windows Vista RTM x86, Windows Vista SP1 x86, Windows Server 2008 RTM x86, Windows 7 RTM x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64, Windows Server 2008 RTM x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="0" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="fe6eae1c34528d1ea224569dcdc35618" TargetName="Visual C++ Redistributable for Visual Studio 2015-2019"/>
|
<ROW PrereqKey="A918597FE054CCCB65ABDBA0AD8F63C" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x86" VersionMin="14.26" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/d60aa805-26e9-47df-b4e3-cd6fcc392333/A06AAC66734A618AB33C1522920654DDFC44FC13CAFAA0F0AB85B199C3D51DC0/VC_redist.x86.exe" Location="1" ExactSize="14413048" WinNTVersions="Windows Vista RTM x86, Windows Vista SP1 x86, Windows Server 2008 RTM x86, Windows 7 RTM x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64, Windows Server 2008 RTM x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="0" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="fe6eae1c34528d1ea224569dcdc35618" TargetName="Visual C++ Redistributable for Visual Studio 2015-2019"/>
|
||||||
<ROW PrereqKey="A9D0C6C76E024A7A84C9B69789BFB916" DisplayName="ASP.NET Core Runtime 6.0.0 x86" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/7f757d80-b065-430e-ba65-7e95c3ec95e1/4d0335985f09db0650bbf9efe773f46c/aspnetcore-runtime-6.0.0-win-x86.exe" Location="1" ExactSize="8122576" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="5fe23a4a4752deb2218b95cc84557429" TargetName="ASP.NET Core 6.0"/>
|
<ROW PrereqKey="A9D0C6C76E024A7A84C9B69789BFB916" DisplayName="ASP.NET Core Runtime 6.0.0 x86" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/7f757d80-b065-430e-ba65-7e95c3ec95e1/4d0335985f09db0650bbf9efe773f46c/aspnetcore-runtime-6.0.0-win-x86.exe" Location="1" ExactSize="8122576" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="5fe23a4a4752deb2218b95cc84557429" TargetName="ASP.NET Core 6.0"/>
|
||||||
<ROW PrereqKey="ApacheKafka" DisplayName="Apache Kafka" VersionMin="1.0.0" SetupFileUrl="Apache Kafka.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/qn" BasicUiComLine="/qn" NoUiComLine="/qn" Options="y" TargetName="Apache Kafka\Apache Kafka.msi"/>
|
<ROW PrereqKey="ApacheKafka" DisplayName="Apache Kafka" VersionMin="1.0.0" SetupFileUrl="Apache Kafka.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/qn /norestart" BasicUiComLine="/qn /norestart" NoUiComLine="/qn /norestart" Options="y" TargetName="Apache Kafka\Apache Kafka.msi"/>
|
||||||
<ROW PrereqKey="ApacheZooKepper" DisplayName="Apache ZooKepper" VersionMin="1.0.0" SetupFileUrl="Apache ZooKeeper.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/qn" BasicUiComLine="/qn" NoUiComLine="/qn" Options="y" TargetName="Apache ZooKepper\Apache ZooKeeper.msi"/>
|
<ROW PrereqKey="ApacheZooKepper" DisplayName="Apache ZooKepper" VersionMin="1.0.0" SetupFileUrl="Apache ZooKeeper.msi" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/qn /norestart" BasicUiComLine="/qn /norestart" NoUiComLine="/qn /norestart" Options="y" TargetName="Apache ZooKepper\Apache ZooKeeper.msi"/>
|
||||||
<ROW PrereqKey="B365F790B0C4E08A90D54675D858A21" DisplayName=".NET Core Runtime 3.1.10 x64" VersionMin="3.1" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/9845b4b0-fb52-48b6-83cf-4c431558c29b/41025de7a76639eeff102410e7015214/dotnet-runtime-3.1.10-win-x64.exe" Location="1" ExactSize="26230496" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="y" MD5="a6e46b0e884ba62316560e3bd17384a5" TargetName=".NET Core 3.1"/>
|
<ROW PrereqKey="B365F790B0C4E08A90D54675D858A21" DisplayName=".NET Core Runtime 3.1.10 x64" VersionMin="3.1" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/9845b4b0-fb52-48b6-83cf-4c431558c29b/41025de7a76639eeff102410e7015214/dotnet-runtime-3.1.10-win-x64.exe" Location="1" ExactSize="26230496" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="a6e46b0e884ba62316560e3bd17384a5" TargetName=".NET Core 3.1"/>
|
||||||
<ROW PrereqKey="B450414DF7494F99141402B8725A7C" DisplayName=".NET Core Runtime 3.1.10 x86" VersionMin="3.1" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/abb3fb5d-4e82-4ca8-bc03-ac13e988e608/b34036773a72b30c5dc5520ee6a2768f/dotnet-runtime-3.1.10-win-x86.exe" Location="1" ExactSize="23451472" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="y" MD5="03832c85bc74de4fcb7fffa862b9f4a5" TargetName=".NET Core 3.1"/>
|
<ROW PrereqKey="B450414DF7494F99141402B8725A7C" DisplayName=".NET Core Runtime 3.1.10 x86" VersionMin="3.1" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/abb3fb5d-4e82-4ca8-bc03-ac13e988e608/b34036773a72b30c5dc5520ee6a2768f/dotnet-runtime-3.1.10-win-x86.exe" Location="1" ExactSize="23451472" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="03832c85bc74de4fcb7fffa862b9f4a5" TargetName=".NET Core 3.1"/>
|
||||||
<ROW PrereqKey="B96F93FA27E74B02866727AAE83982D0" DisplayName=".NET Framework 4.8" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0fd66638cde16859462a6243a4629a50/ndp48-x86-x64-allos-enu.exe" Location="1" ExactSize="117380440" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86, Windows 10 version 1903 x86, Windows 10 version 1909 x86, Windows 10 version 2004 x86, Windows 10 version 20H2 x86, Windows 10 version 21H1 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 8 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64, Windows 10 version 1903 x64, Windows 10 version 1909 x64, Windows 10 version 2004 x64, Windows 10 version 20H2 x64, Windows 10 version 21H1 x64" Operator="1" ComLine="/q" BasicUiComLine="/q" NoUiComLine="/q" Options="xym" MD5="aebcb9fcafa2becf8bb30458a7e1f0a2" TargetName=".NET Framework 4.8"/>
|
<ROW PrereqKey="B96F93FA27E74B02866727AAE83982D0" DisplayName=".NET Framework 4.8" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/014120d7-d689-4305-befd-3cb711108212/0fd66638cde16859462a6243a4629a50/ndp48-x86-x64-allos-enu.exe" Location="1" ExactSize="117380440" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86, Windows 10 version 1903 x86, Windows 10 version 1909 x86, Windows 10 version 2004 x86, Windows 10 version 20H2 x86, Windows 10 version 21H1 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 8 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64, Windows 10 version 1903 x64, Windows 10 version 1909 x64, Windows 10 version 2004 x64, Windows 10 version 20H2 x64, Windows 10 version 21H1 x64" Operator="1" ComLine="/q" BasicUiComLine="/q" NoUiComLine="/q" Options="xym" MD5="aebcb9fcafa2becf8bb30458a7e1f0a2" TargetName=".NET Framework 4.8"/>
|
||||||
<ROW PrereqKey="C4FE6FD5B7C4D07B3A313E754A9A6A8" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x64" VersionMin="14.26" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/d60aa805-26e9-47df-b4e3-cd6fcc392333/7D7105C52FCD6766BEEE1AE162AA81E278686122C1E44890712326634D0B055E/VC_redist.x64.exe" Location="1" ExactSize="14974616" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64, Windows Server 2008 RTM x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="264c296cc0bf00db6ba8e7bf8cc4e706" TargetName="Visual C++ Redistributable for Visual Studio 2015-2019"/>
|
<ROW PrereqKey="C4FE6FD5B7C4D07B3A313E754A9A6A8" DisplayName="Visual C++ Redistributable for Visual Studio 2015-2019 x64" VersionMin="14.26" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/d60aa805-26e9-47df-b4e3-cd6fcc392333/7D7105C52FCD6766BEEE1AE162AA81E278686122C1E44890712326634D0B055E/VC_redist.x64.exe" Location="1" ExactSize="14974616" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64, Windows Server 2008 RTM x64, Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="264c296cc0bf00db6ba8e7bf8cc4e706" TargetName="Visual C++ Redistributable for Visual Studio 2015-2019"/>
|
||||||
<ROW PrereqKey="C6F7BF650B714DC58735D62C12F214E4" DisplayName=".NET Runtime 6.0.0 x64" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/b9cfdb9e-d5cd-4024-b318-00390b729d2f/65690f2440f40654898020cdfffa1050/dotnet-runtime-6.0.0-win-x64.exe" Location="1" ExactSize="28180712" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="7ec466a9808697c935bd0525a922beca" TargetName=".NET 6.0"/>
|
<ROW PrereqKey="C6F7BF650B714DC58735D62C12F214E4" DisplayName=".NET Runtime 6.0.0 x64" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/b9cfdb9e-d5cd-4024-b318-00390b729d2f/65690f2440f40654898020cdfffa1050/dotnet-runtime-6.0.0-win-x64.exe" Location="1" ExactSize="28180712" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="7ec466a9808697c935bd0525a922beca" TargetName=".NET 6.0"/>
|
||||||
@ -665,7 +750,7 @@
|
|||||||
<ROW PrereqKey="D564007E3BBE4F85950A09B470A7CA65" DisplayName="Visual C++ Redistributable for Visual Studio 2013 Update 5 x86" VersionMin="12.0" SetupFileUrl="http://download.microsoft.com/download/C/C/2/CC2DF5F8-4454-44B4-802D-5EA68D086676/vcredist_x86.exe" Location="1" ExactSize="6510272" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" MD5="6a3a1760342ea699d5e6df1f2a1c7707" TargetName="Visual C++ Redistributable for Visual Studio 2013?vcredist_2013u5_x86.exe"/>
|
<ROW PrereqKey="D564007E3BBE4F85950A09B470A7CA65" DisplayName="Visual C++ Redistributable for Visual Studio 2013 Update 5 x86" VersionMin="12.0" SetupFileUrl="http://download.microsoft.com/download/C/C/2/CC2DF5F8-4454-44B4-802D-5EA68D086676/vcredist_x86.exe" Location="1" ExactSize="6510272" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" MD5="6a3a1760342ea699d5e6df1f2a1c7707" TargetName="Visual C++ Redistributable for Visual Studio 2013?vcredist_2013u5_x86.exe"/>
|
||||||
<ROW PrereqKey="E25D6A62194038942640BDE651049C" DisplayName="ASP.NET Core Runtime 6.0.0 x64" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/3223fa10-441d-406b-af2e-94874ce38199/09347f9b4aea0ab34d6944b6b78fa29d/aspnetcore-runtime-6.0.0-win-x64.exe" Location="1" ExactSize="8897224" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="27ec1b4780b035ac230399c120280a5e" TargetName="ASP.NET Core 6.0"/>
|
<ROW PrereqKey="E25D6A62194038942640BDE651049C" DisplayName="ASP.NET Core Runtime 6.0.0 x64" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/3223fa10-441d-406b-af2e-94874ce38199/09347f9b4aea0ab34d6944b6b78fa29d/aspnetcore-runtime-6.0.0-win-x64.exe" Location="1" ExactSize="8897224" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="xym" MD5="27ec1b4780b035ac230399c120280a5e" TargetName="ASP.NET Core 6.0"/>
|
||||||
<ROW PrereqKey="E92D3665B5E468A8661F6547C8C142C" DisplayName=".NET Runtime 6.0.0 x86" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/34df41d5-c813-4e30-8aa3-3603ce6600c0/976e801af82c7108abbcb736a8bc5c14/dotnet-runtime-6.0.0-win-x86.exe" Location="1" ExactSize="25750728" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="d8033ef93d3a003691f3046ea013447c" TargetName=".NET 6.0"/>
|
<ROW PrereqKey="E92D3665B5E468A8661F6547C8C142C" DisplayName=".NET Runtime 6.0.0 x86" VersionMin="6.0" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/34df41d5-c813-4e30-8aa3-3603ce6600c0/976e801af82c7108abbcb736a8bc5c14/dotnet-runtime-6.0.0-win-x86.exe" Location="1" ExactSize="25750728" WinNTVersions="Windows Vista x86, Windows Server 2008 x86, Windows 7 RTM x86, Windows 8 x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86" WinNT64Versions="Windows Vista x64, Windows Server 2008 x64, Windows 7 RTM x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/q /norestart" BasicUiComLine="/q /norestart" NoUiComLine="/q /norestart" Options="ym" MD5="d8033ef93d3a003691f3046ea013447c" TargetName=".NET 6.0"/>
|
||||||
<ROW PrereqKey="F6D8148C0594E7491C36E27FD5E9E89" DisplayName="Oracle Java SE Runtime Environment 8u281 x64" VersionMin="1.8" SetupFileUrl="https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244068_89d678f2be164786b292527658ca1605" Location="1" ExactSize="83548808" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64" Operator="0" ComLine="/s" BasicUiComLine="/s" NoUiComLine="/s" Options="xy" MD5="c6136758f1fec04a2f7f01249280c315" TargetName="Oracle Java SE Runtime Environment?jre-8u281-windows-x64.exe"/>
|
<ROW PrereqKey="F6D8148C0594E7491C36E27FD5E9E89" DisplayName="Oracle Java SE Runtime Environment 8u281 x64" VersionMin="1.8" SetupFileUrl="https://javadl.oracle.com/webapps/download/AutoDL?BundleId=244068_89d678f2be164786b292527658ca1605" Location="1" ExactSize="83548808" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows Vista RTM x64, Windows Vista SP1 x64" Operator="0" ComLine="/s" BasicUiComLine="/s" NoUiComLine="/s" Options="xym" MD5="c6136758f1fec04a2f7f01249280c315" TargetName="Oracle Java SE Runtime Environment?jre-8u281-windows-x64.exe"/>
|
||||||
<ROW PrereqKey="MySQLInstallerRunn" DisplayName="MySQL Installer Runner 8.0.21 x86" SetupFileUrl="MySQL Installer Runner.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" BasicUiComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" NoUiComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" Options="y" TargetName="MySQL Installer Runner \MySQL Installer Runner.exe" ParentPrereq="RequiredApplication_2"/>
|
<ROW PrereqKey="MySQLInstallerRunn" DisplayName="MySQL Installer Runner 8.0.21 x86" SetupFileUrl="MySQL Installer Runner.exe" Location="0" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" Operator="1" ComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" BasicUiComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" NoUiComLine="/VERYSILENT /PASSWORD_PROP="root" /MYSQL_VERSION="8.0.21"" Options="y" TargetName="MySQL Installer Runner \MySQL Installer Runner.exe" ParentPrereq="RequiredApplication_2"/>
|
||||||
<ROW PrereqKey="RequiredApplication" DisplayName="MySQL Connector/ODBC 8.0.21 x86" SetupFileUrl="https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.21-win32.msi" Location="1" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="MySQL Connector ODBC 8.0.21 x86"/>
|
<ROW PrereqKey="RequiredApplication" DisplayName="MySQL Connector/ODBC 8.0.21 x86" SetupFileUrl="https://dev.mysql.com/get/Downloads/Connector-ODBC/8.0/mysql-connector-odbc-8.0.21-win32.msi" Location="1" ExactSize="0" Operator="1" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="ym" TargetName="MySQL Connector ODBC 8.0.21 x86"/>
|
||||||
<ROW PrereqKey="RequiredApplication_1" DisplayName="Node.js 14.17.4" VersionMin="14.17.4" SetupFileUrl="https://nodejs.org/dist/v14.17.4/node-v14.17.4-x64.msi" Location="1" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="my" TargetName="Node.js v14.17.4 x64"/>
|
<ROW PrereqKey="RequiredApplication_1" DisplayName="Node.js 14.17.4" VersionMin="14.17.4" SetupFileUrl="https://nodejs.org/dist/v14.17.4/node-v14.17.4-x64.msi" Location="1" ExactSize="0" Operator="0" ComLine="/quiet" BasicUiComLine="/quiet" NoUiComLine="/quiet" Options="my" TargetName="Node.js v14.17.4 x64"/>
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||||
|
<supportedRuntime version="v4.0" />
|
||||||
|
<supportedRuntime version="v2.0.50727"/>
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
20
build/install/win/CustomActions/C#/Utils/CustomAction.cs
Normal file
20
build/install/win/CustomActions/C#/Utils/CustomAction.cs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Net.Sockets;
|
||||||
|
using Microsoft.Deployment.WindowsInstaller;
|
||||||
|
|
||||||
|
namespace Utils
|
||||||
|
{
|
||||||
|
public class CustomActions
|
||||||
|
{
|
||||||
|
[CustomAction]
|
||||||
|
public static ActionResult CheckTCPAvailability(Session session)
|
||||||
|
{
|
||||||
|
string HOST = session.CustomActionData["HOST"];
|
||||||
|
string PORT = session.CustomActionData["PORT"];
|
||||||
|
string OUTPUT = session.CustomActionData["OUTPUT"];
|
||||||
|
var success = new TcpClient().BeginConnect(HOST, Convert.ToInt32(PORT), null, null).AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(1));
|
||||||
|
session[OUTPUT] = success.ToString();
|
||||||
|
return ActionResult.Success;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("Utils")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("Utils")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2016")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("31f44d45-4371-4b33-a846-2e3b78131469")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
53
build/install/win/CustomActions/C#/Utils/Utils.csproj
Normal file
53
build/install/win/CustomActions/C#/Utils/Utils.csproj
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{F149436D-C079-4011-88D2-B45167C81595}</ProjectGuid>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<RootNamespace>Utils</RootNamespace>
|
||||||
|
<AssemblyName>Utils</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.CA.targets</WixCATargetsPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.IO.Compression" />
|
||||||
|
<Reference Include="System.Web" />
|
||||||
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="Microsoft.Deployment.WindowsInstaller">
|
||||||
|
<Private>True</Private>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="CustomAction.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Content Include="CustomAction.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="$(WixCATargetsPath)" />
|
||||||
|
</Project>
|
@ -1,3 +1,6 @@
|
|||||||
|
REM echo ######## Set variables ########
|
||||||
|
set "msbuild4="C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe""
|
||||||
|
|
||||||
REM echo ######## Extracting and preparing files to build ########
|
REM echo ######## Extracting and preparing files to build ########
|
||||||
%sevenzip% x build\install\win\nginx-1.21.1.zip -o"build\install\win\Files" -y
|
%sevenzip% x build\install\win\nginx-1.21.1.zip -o"build\install\win\Files" -y
|
||||||
xcopy "build\install\win\Files\nginx-1.21.1" "build\install\win\Files\nginx" /s /y /b /i
|
xcopy "build\install\win\Files\nginx-1.21.1" "build\install\win\Files\nginx" /s /y /b /i
|
||||||
@ -25,6 +28,12 @@ copy "build\install\win\kafka-zookeeper\zookeeper\conf\zoo_sample.cfg" "build\in
|
|||||||
del /f /q "build\install\win\kafka-zookeeper\zookeeper\conf\zoo_sample.cfg"
|
del /f /q "build\install\win\kafka-zookeeper\zookeeper\conf\zoo_sample.cfg"
|
||||||
rmdir build\install\win\publish /s /q
|
rmdir build\install\win\publish /s /q
|
||||||
|
|
||||||
|
REM echo ######## Build Utils ########
|
||||||
|
%msbuild4% build\install\win\CustomActions\C#\Utils\Utils.csproj
|
||||||
|
copy build\install\win\CustomActions\C#\Utils\bin\Debug\Utils.CA.dll build\install\win\Utils.CA.dll /y
|
||||||
|
rmdir build\install\win\CustomActions\C#\Utils\bin /s /q
|
||||||
|
rmdir build\install\win\CustomActions\C#\Utils\obj /s /q
|
||||||
|
|
||||||
REM echo ######## Edit zookeeper/kafka cfg and proprties files ########
|
REM echo ######## Edit zookeeper/kafka cfg and proprties files ########
|
||||||
%sed% -i "s/\(dataDir\).*/\1=.\/..\/zookeeper\/Data/g" build/install/win/kafka-zookeeper/zookeeper/conf/zoo.cfg
|
%sed% -i "s/\(dataDir\).*/\1=.\/..\/zookeeper\/Data/g" build/install/win/kafka-zookeeper/zookeeper/conf/zoo.cfg
|
||||||
%sed% -i "s/\(log.dirs\)=.*/\1=kafka-logs/g" build/install/win/kafka-zookeeper/kafka/config/server.properties
|
%sed% -i "s/\(log.dirs\)=.*/\1=kafka-logs/g" build/install/win/kafka-zookeeper/kafka/config/server.properties
|
||||||
@ -74,4 +83,5 @@ REM echo ######## Build MySQL Server Installer ########
|
|||||||
iscc "build\install\win\MySQL Server Installer Runner.iss"
|
iscc "build\install\win\MySQL Server Installer Runner.iss"
|
||||||
|
|
||||||
REM echo ######## Build AppServer package ########
|
REM echo ######## Build AppServer package ########
|
||||||
|
%AdvancedInstaller% /edit build\install\win\AppServer.aip /SetVersion %BUILD_VERSION%.%BUILD_NUMBER%
|
||||||
%AdvancedInstaller% /rebuild build\install\win\AppServer.aip
|
%AdvancedInstaller% /rebuild build\install\win\AppServer.aip
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
using ASC.Common;
|
using ASC.Common;
|
||||||
using ASC.Common.Logging;
|
using ASC.Common.Logging;
|
||||||
using ASC.Core;
|
using ASC.Core;
|
||||||
|
using ASC.Core.Common.Settings;
|
||||||
using ASC.IPSecurity;
|
using ASC.IPSecurity;
|
||||||
|
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
@ -19,16 +20,18 @@ namespace ASC.Api.Core.Middleware
|
|||||||
public IpSecurityFilter(
|
public IpSecurityFilter(
|
||||||
IOptionsMonitor<ILog> options,
|
IOptionsMonitor<ILog> options,
|
||||||
AuthContext authContext,
|
AuthContext authContext,
|
||||||
IPSecurity.IPSecurity IPSecurity)
|
IPSecurity.IPSecurity IPSecurity,
|
||||||
|
SettingsManager settingsManager)
|
||||||
{
|
{
|
||||||
log = options.CurrentValue;
|
log = options.CurrentValue;
|
||||||
AuthContext = authContext;
|
AuthContext = authContext;
|
||||||
this.IPSecurity = IPSecurity;
|
this.IPSecurity = IPSecurity;
|
||||||
|
SettingsManager = settingsManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AuthContext AuthContext { get; }
|
private AuthContext AuthContext { get; }
|
||||||
public IPRestrictionsSettings IPRestrictionsSettings { get; }
|
|
||||||
private IPSecurity.IPSecurity IPSecurity { get; }
|
private IPSecurity.IPSecurity IPSecurity { get; }
|
||||||
|
private SettingsManager SettingsManager { get; }
|
||||||
|
|
||||||
public void OnResourceExecuted(ResourceExecutedContext context)
|
public void OnResourceExecuted(ResourceExecutedContext context)
|
||||||
{
|
{
|
||||||
@ -36,7 +39,12 @@ namespace ASC.Api.Core.Middleware
|
|||||||
|
|
||||||
public void OnResourceExecuting(ResourceExecutingContext context)
|
public void OnResourceExecuting(ResourceExecutingContext context)
|
||||||
{
|
{
|
||||||
if (AuthContext.IsAuthenticated && !IPSecurity.Verify())
|
|
||||||
|
if (AuthContext.IsAuthenticated)
|
||||||
|
{
|
||||||
|
var enable = SettingsManager.Load<IPRestrictionsSettings>().Enable;
|
||||||
|
|
||||||
|
if (enable && !IPSecurity.Verify())
|
||||||
{
|
{
|
||||||
context.Result = new StatusCodeResult((int)HttpStatusCode.Forbidden);
|
context.Result = new StatusCodeResult((int)HttpStatusCode.Forbidden);
|
||||||
log.WarnFormat("IPSecurity: user {0}", AuthContext.CurrentAccount.ID);
|
log.WarnFormat("IPSecurity: user {0}", AuthContext.CurrentAccount.ID);
|
||||||
@ -44,4 +52,5 @@ namespace ASC.Api.Core.Middleware
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,10 @@
|
|||||||
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
|
using System.Net.Sockets;
|
||||||
using System.Web;
|
using System.Web;
|
||||||
|
|
||||||
using ASC.Common;
|
using ASC.Common;
|
||||||
@ -55,6 +57,7 @@ namespace ASC.IPSecurity
|
|||||||
private SettingsManager SettingsManager { get; }
|
private SettingsManager SettingsManager { get; }
|
||||||
|
|
||||||
private readonly string CurrentIpForTest;
|
private readonly string CurrentIpForTest;
|
||||||
|
private readonly string MyNetworks;
|
||||||
|
|
||||||
public IPSecurity(
|
public IPSecurity(
|
||||||
IConfiguration configuration,
|
IConfiguration configuration,
|
||||||
@ -72,6 +75,7 @@ namespace ASC.IPSecurity
|
|||||||
IPRestrictionsService = iPRestrictionsService;
|
IPRestrictionsService = iPRestrictionsService;
|
||||||
SettingsManager = settingsManager;
|
SettingsManager = settingsManager;
|
||||||
CurrentIpForTest = configuration["ipsecurity:test"];
|
CurrentIpForTest = configuration["ipsecurity:test"];
|
||||||
|
MyNetworks = configuration["ipsecurity:mynetworks"];
|
||||||
var hideSettings = (configuration["web:hide-settings"] ?? "").Split(new[] { ',', ';', ' ' });
|
var hideSettings = (configuration["web:hide-settings"] ?? "").Split(new[] { ',', ';', ' ' });
|
||||||
IpSecurityEnabled = !hideSettings.Contains("IpSecurity", StringComparer.CurrentCultureIgnoreCase);
|
IpSecurityEnabled = !hideSettings.Contains("IpSecurity", StringComparer.CurrentCultureIgnoreCase);
|
||||||
}
|
}
|
||||||
@ -109,6 +113,10 @@ namespace ASC.IPSecurity
|
|||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (IsMyNetwork(ips))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@ -140,5 +148,42 @@ namespace ASC.IPSecurity
|
|||||||
var portIdx = ip.IndexOf(':');
|
var portIdx = ip.IndexOf(':');
|
||||||
return portIdx > 0 ? ip.Substring(0, portIdx) : ip;
|
return portIdx > 0 ? ip.Substring(0, portIdx) : ip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private bool IsMyNetwork(string[] ips)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(MyNetworks))
|
||||||
|
{
|
||||||
|
var myNetworkIps = MyNetworks.Split(new[] { ",", " " }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
|
||||||
|
if (ips.Any(requestIp => myNetworkIps.Any(ipAddress => MatchIPs(GetIpWithoutPort(requestIp), ipAddress))))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var hostName = Dns.GetHostName();
|
||||||
|
var hostAddresses = Dns.GetHostAddresses(Dns.GetHostName());
|
||||||
|
|
||||||
|
var localIPs = new List<IPAddress> { IPAddress.IPv6Loopback, IPAddress.Loopback };
|
||||||
|
|
||||||
|
localIPs.AddRange(hostAddresses.Where(ip => ip.AddressFamily == AddressFamily.InterNetwork || ip.AddressFamily == AddressFamily.InterNetworkV6));
|
||||||
|
|
||||||
|
foreach (var ipAddress in localIPs)
|
||||||
|
{
|
||||||
|
if (ips.Contains(ipAddress.ToString()))
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.ErrorFormat("Can't verify local network from request with IP-address: {0}", string.Join(",", ips), ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -69,6 +69,13 @@ export function setIpRestrictions(data) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getIpRestrictionsEnable() {
|
||||||
|
return request({
|
||||||
|
method: "get",
|
||||||
|
url: "/settings/iprestrictions/settings",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function setIpRestrictionsEnable(data) {
|
export function setIpRestrictionsEnable(data) {
|
||||||
return request({
|
return request({
|
||||||
method: "put",
|
method: "put",
|
||||||
|
@ -31,6 +31,7 @@ const Article = ({
|
|||||||
toggleShowText,
|
toggleShowText,
|
||||||
toggleArticleOpen,
|
toggleArticleOpen,
|
||||||
setIsMobileArticle,
|
setIsMobileArticle,
|
||||||
|
isLoading,
|
||||||
children,
|
children,
|
||||||
...rest
|
...rest
|
||||||
}) => {
|
}) => {
|
||||||
@ -115,7 +116,11 @@ const Article = ({
|
|||||||
className="resizable-block"
|
className="resizable-block"
|
||||||
handleWrapperClass="resizable-border not-selectable"
|
handleWrapperClass="resizable-border not-selectable"
|
||||||
>
|
>
|
||||||
<SubArticleHeader showText={showText} onClick={toggleShowText}>
|
<SubArticleHeader
|
||||||
|
isLoading={isLoading}
|
||||||
|
showText={showText}
|
||||||
|
onClick={toggleShowText}
|
||||||
|
>
|
||||||
{articleHeaderContent ? articleHeaderContent.props.children : null}
|
{articleHeaderContent ? articleHeaderContent.props.children : null}
|
||||||
</SubArticleHeader>
|
</SubArticleHeader>
|
||||||
{articleMainButtonContent && !isMobileOnly && !isMobileUtils() ? (
|
{articleMainButtonContent && !isMobileOnly && !isMobileUtils() ? (
|
||||||
@ -123,7 +128,7 @@ const Article = ({
|
|||||||
{articleMainButtonContent.props.children}
|
{articleMainButtonContent.props.children}
|
||||||
</SubArticleMainButton>
|
</SubArticleMainButton>
|
||||||
) : null}
|
) : null}
|
||||||
<SubArticleBody showText={showText}>
|
<SubArticleBody isLoading={isLoading} showText={showText}>
|
||||||
{articleBodyContent ? articleBodyContent.props.children : null}
|
{articleBodyContent ? articleBodyContent.props.children : null}
|
||||||
</SubArticleBody>
|
</SubArticleBody>
|
||||||
</Resizable>
|
</Resizable>
|
||||||
|
@ -142,10 +142,18 @@ const StyledArticleHeader = styled.div`
|
|||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
padding-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
@media ${tablet} {
|
@media ${tablet} {
|
||||||
padding: 16px 16px 17px;
|
padding: 16px 16px 17px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
|
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
|
||||||
|
.loader {
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 7px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media ${mobile} {
|
@media ${mobile} {
|
||||||
@ -159,6 +167,10 @@ const StyledArticleHeader = styled.div`
|
|||||||
padding: 16px 16px 17px;
|
padding: 16px 16px 17px;
|
||||||
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
|
justify-content: ${(props) => (props.showText ? "flex-start" : "center")};
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
.loader {
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 7px;
|
||||||
|
}
|
||||||
`}
|
`}
|
||||||
|
|
||||||
${isMobileOnly &&
|
${isMobileOnly &&
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
import { isTablet as isTabletUtils } from "@appserver/components/utils/device";
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
padding: 0px 16px 0px;
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
display: block;
|
||||||
|
width: 20px;
|
||||||
|
padding-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
padding: 0px 20px 0px;
|
||||||
|
margin-top: -7px;
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
width: 216px;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderArticleBody = () => {
|
||||||
|
const heightLoader = isTabletUtils() || isTablet ? "20px" : "24px";
|
||||||
|
return (
|
||||||
|
<StyledLoader>
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderArticleBody;
|
@ -1,8 +1,10 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import Scrollbar from "@appserver/components/scrollbar";
|
import Scrollbar from "@appserver/components/scrollbar";
|
||||||
|
import LoaderArticleBody from "./article-body-loader";
|
||||||
const ArticleBody = ({ children }) => {
|
const ArticleBody = ({ children, isLoading = false }) => {
|
||||||
return (
|
return isLoading ? (
|
||||||
|
<LoaderArticleBody />
|
||||||
|
) : (
|
||||||
<Scrollbar className="article-body__scrollbar" stype="mediumBlack">
|
<Scrollbar className="article-body__scrollbar" stype="mediumBlack">
|
||||||
{children}
|
{children}
|
||||||
</Scrollbar>
|
</Scrollbar>
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
import { isTablet as isTabletUtils } from "@appserver/components/utils/device";
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
StyledArticleHeader,
|
StyledArticleHeader,
|
||||||
@ -8,8 +11,20 @@ import {
|
|||||||
StyledMenuIcon,
|
StyledMenuIcon,
|
||||||
} from "../styled-article";
|
} from "../styled-article";
|
||||||
|
|
||||||
const ArticleHeader = ({ showText, children, onClick, ...rest }) => {
|
const ArticleHeader = ({
|
||||||
return (
|
showText,
|
||||||
|
children,
|
||||||
|
onClick,
|
||||||
|
isLoading = false,
|
||||||
|
...rest
|
||||||
|
}) => {
|
||||||
|
const heightLoader = isTabletUtils() || isTablet ? "20px" : "32px";
|
||||||
|
|
||||||
|
return isLoading ? (
|
||||||
|
<StyledArticleHeader>
|
||||||
|
<Loaders.ArticleHeader height={heightLoader} className="loader" />
|
||||||
|
</StyledArticleHeader>
|
||||||
|
) : (
|
||||||
<StyledArticleHeader showText={showText} {...rest}>
|
<StyledArticleHeader showText={showText} {...rest}>
|
||||||
<StyledIconBox name="article-burger">
|
<StyledIconBox name="article-burger">
|
||||||
<StyledMenuIcon onClick={onClick} />
|
<StyledMenuIcon onClick={onClick} />
|
||||||
|
@ -105,6 +105,8 @@ const Navigation = ({
|
|||||||
getContextOptionsFolder={getContextOptionsFolder}
|
getContextOptionsFolder={getContextOptionsFolder}
|
||||||
getContextOptionsPlus={getContextOptionsPlus}
|
getContextOptionsPlus={getContextOptionsPlus}
|
||||||
toggleDropBox={toggleDropBox}
|
toggleDropBox={toggleDropBox}
|
||||||
|
toggleInfoPanel={toggleInfoPanel}
|
||||||
|
isInfoPanelVisible={isInfoPanelVisible}
|
||||||
onClickAvailable={onClickAvailable}
|
onClickAvailable={onClickAvailable}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
@ -9,6 +9,8 @@ const StyledContainer = styled.div`
|
|||||||
grid-template-columns: ${(props) =>
|
grid-template-columns: ${(props) =>
|
||||||
props.isRootFolder ? "auto 1fr" : "29px auto 1fr"};
|
props.isRootFolder ? "auto 1fr" : "29px auto 1fr"};
|
||||||
|
|
||||||
|
padding: ${(props) => (props.isDropBox ? "10px 0 5px" : "10px 0 11px")};
|
||||||
|
|
||||||
.arrow-button {
|
.arrow-button {
|
||||||
width: 17px;
|
width: 17px;
|
||||||
min-width: 17px;
|
min-width: 17px;
|
||||||
@ -16,24 +18,25 @@ const StyledContainer = styled.div`
|
|||||||
|
|
||||||
@media ${tablet} {
|
@media ${tablet} {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: ${(props) => (props.isDropBox ? "16px 0 5px" : "16px 0 0px")};
|
padding: ${(props) => (props.isDropBox ? "14px 0 5px" : "14px 0 15px")};
|
||||||
}
|
}
|
||||||
${isMobile &&
|
${isMobile &&
|
||||||
css`
|
css`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: ${(props) =>
|
padding: ${(props) =>
|
||||||
props.isDropBox ? "16px 0 5px" : " 16px 0 0px"} !important;
|
props.isDropBox ? "12px 0 5px" : " 12px 0 13px"} !important;
|
||||||
`}
|
`}
|
||||||
|
|
||||||
@media ${mobile} {
|
@media ${mobile} {
|
||||||
height: 53px;
|
padding: ${(props) =>
|
||||||
|
props.isDropBox ? "10px 0 5px" : "10px 0 11px"} !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
${isMobileOnly &&
|
${isMobileOnly &&
|
||||||
css`
|
css`
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
padding: ${(props) =>
|
padding: ${(props) =>
|
||||||
props.isDropBox ? "18px 0 5px" : "18px 0 0"} !important;
|
props.isDropBox ? "10px 0 5px" : "10px 0 11px"} !important;
|
||||||
`}
|
`}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ const StyledContainer = styled.div`
|
|||||||
}
|
}
|
||||||
|
|
||||||
.option-button {
|
.option-button {
|
||||||
margin-left: auto;
|
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
min-width: 17px;
|
min-width: 17px;
|
||||||
}
|
}
|
||||||
@ -46,7 +45,7 @@ const StyledInfoPanelToggleWrapper = styled.div`
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-left: ${({ isRootFolder }) => (isRootFolder ? "auto" : "none")};
|
margin-left: auto;
|
||||||
|
|
||||||
.info-panel-toggle-bg {
|
.info-panel-toggle-bg {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
@ -136,7 +135,7 @@ const ControlButtons = ({
|
|||||||
<div className="info-panel-toggle-bg">
|
<div className="info-panel-toggle-bg">
|
||||||
<IconButton
|
<IconButton
|
||||||
className="info-panel-toggle"
|
className="info-panel-toggle"
|
||||||
iconName="images/panel.svg"
|
iconName="images/panel.react.svg"
|
||||||
size="16"
|
size="16"
|
||||||
isFill={true}
|
isFill={true}
|
||||||
onClick={toggleInfoPanel}
|
onClick={toggleInfoPanel}
|
||||||
|
@ -26,7 +26,7 @@ const StyledBox = styled.div`
|
|||||||
top: 0px;
|
top: 0px;
|
||||||
left: ${isMobile ? "-16px" : "-20px"};
|
left: ${isMobile ? "-16px" : "-20px"};
|
||||||
|
|
||||||
padding: ${isMobile ? "0 16px 0 16px" : "0 20px"};
|
padding: ${isMobile ? "0 16px " : "0 20px"};
|
||||||
|
|
||||||
width: ${(props) => props.dropBoxWidth}px;
|
width: ${(props) => props.dropBoxWidth}px;
|
||||||
|
|
||||||
@ -85,7 +85,9 @@ const DropBox = React.forwardRef(
|
|||||||
getContextOptionsFolder,
|
getContextOptionsFolder,
|
||||||
getContextOptionsPlus,
|
getContextOptionsPlus,
|
||||||
toggleDropBox,
|
toggleDropBox,
|
||||||
|
toggleInfoPanel,
|
||||||
onClickAvailable,
|
onClickAvailable,
|
||||||
|
isInfoPanelVisible,
|
||||||
},
|
},
|
||||||
ref
|
ref
|
||||||
) => {
|
) => {
|
||||||
@ -141,6 +143,8 @@ const DropBox = React.forwardRef(
|
|||||||
canCreate={canCreate}
|
canCreate={canCreate}
|
||||||
getContextOptionsFolder={getContextOptionsFolder}
|
getContextOptionsFolder={getContextOptionsFolder}
|
||||||
getContextOptionsPlus={getContextOptionsPlus}
|
getContextOptionsPlus={getContextOptionsPlus}
|
||||||
|
toggleInfoPanel={toggleInfoPanel}
|
||||||
|
isInfoPanelVisible={isInfoPanelVisible}
|
||||||
/>
|
/>
|
||||||
</StyledContainer>
|
</StyledContainer>
|
||||||
|
|
||||||
|
@ -222,7 +222,6 @@ class Section extends React.Component {
|
|||||||
isTabletView,
|
isTabletView,
|
||||||
firstLoad,
|
firstLoad,
|
||||||
dragging,
|
dragging,
|
||||||
isBackdropVisible,
|
|
||||||
isDesktop,
|
isDesktop,
|
||||||
isHomepage,
|
isHomepage,
|
||||||
maintenanceExist,
|
maintenanceExist,
|
||||||
@ -560,9 +559,6 @@ export default inject(({ auth, infoPanelStore }) => {
|
|||||||
isHeaderVisible,
|
isHeaderVisible,
|
||||||
isTabletView,
|
isTabletView,
|
||||||
|
|
||||||
isBackdropVisible,
|
|
||||||
|
|
||||||
setIsBackdropVisible,
|
|
||||||
isDesktopClient,
|
isDesktopClient,
|
||||||
maintenanceExist,
|
maintenanceExist,
|
||||||
snackbarExist,
|
snackbarExist,
|
||||||
@ -579,8 +575,6 @@ export default inject(({ auth, infoPanelStore }) => {
|
|||||||
isTabletView,
|
isTabletView,
|
||||||
isHeaderVisible,
|
isHeaderVisible,
|
||||||
|
|
||||||
isBackdropVisible,
|
|
||||||
setIsBackdropVisible,
|
|
||||||
maintenanceExist,
|
maintenanceExist,
|
||||||
snackbarExist,
|
snackbarExist,
|
||||||
setMaintenanceExist,
|
setMaintenanceExist,
|
||||||
|
@ -22,7 +22,7 @@ const tabletProps = css`
|
|||||||
${isMobileOnly &&
|
${isMobileOnly &&
|
||||||
css`
|
css`
|
||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
margin: 0 -16px;
|
margin: 0 0 0 -16px;
|
||||||
`}
|
`}
|
||||||
}
|
}
|
||||||
.section-body_filter {
|
.section-body_filter {
|
||||||
|
@ -11,59 +11,42 @@ import Base from "@appserver/components/themes/base";
|
|||||||
|
|
||||||
const StyledSectionHeader = styled.div`
|
const StyledSectionHeader = styled.div`
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 53px;
|
|
||||||
min-height: 53px;
|
padding-right: 20px;
|
||||||
margin-right: 20px;
|
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
${NoUserSelect}
|
${NoUserSelect}
|
||||||
|
|
||||||
display: grid;
|
display: grid;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
/* width: calc(100vw - 296px);
|
width: 100%;
|
||||||
max-width: calc(100vw - 296px); */
|
max-width: 100%;
|
||||||
|
|
||||||
width: ${(props) =>
|
|
||||||
props.infoPanelIsVisible ? "calc(100vw - 696px)" : "calc(100vw - 296px)"};
|
|
||||||
max-width: ${(props) =>
|
|
||||||
props.infoPanelIsVisible ? "calc(100vw - 696px)" : "calc(100vw - 296px)"};
|
|
||||||
|
|
||||||
@media ${tablet} {
|
@media ${tablet} {
|
||||||
width: ${(props) =>
|
padding-right: 16px;
|
||||||
props.showText ? "calc(100vw - 272px)" : "calc(100vw - 84px)"};
|
margin-right: 0px;
|
||||||
max-width: ${(props) =>
|
|
||||||
props.showText ? "calc(100vw - 272px)" : "calc(100vw - 84px)"};
|
|
||||||
height: 61px;
|
|
||||||
min-height: 61px;
|
|
||||||
margin-right: 0px !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
${isMobile &&
|
${isMobile &&
|
||||||
css`
|
css`
|
||||||
width: ${(props) =>
|
padding-right: 0 !important;
|
||||||
props.showText ? "calc(100vw - 272px)" : "calc(100vw - 84px)"} !important;
|
margin-right: -16px !important;
|
||||||
max-width: ${(props) =>
|
|
||||||
props.showText ? "calc(100vw - 272px)" : "calc(100vw - 84px)"} !important;
|
|
||||||
height: 61px !important;
|
|
||||||
min-height: 61px !important;
|
|
||||||
margin-right: 0px !important;
|
|
||||||
`}
|
`}
|
||||||
|
|
||||||
@media ${mobile} {
|
@media ${mobile} {
|
||||||
width: calc(100vw - 32px) !important;
|
margin-right: 0px;
|
||||||
max-width: calc(100vw - 32px) !important;
|
|
||||||
height: 53px;
|
|
||||||
min-height: 53px;
|
|
||||||
margin-right: 0px !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
${isMobileOnly &&
|
${isMobileOnly &&
|
||||||
css`
|
css`
|
||||||
width: calc(100vw - 32px) !important;
|
width: 100vw !important;
|
||||||
max-width: calc(100vw - 32px) !important;
|
max-width: 100vw !important;
|
||||||
height: 53px;
|
|
||||||
min-height: 53px;
|
padding-right: 16px !important;
|
||||||
margin-top: -2px;
|
|
||||||
margin-right: 0px !important;
|
margin-top: -2px !important;
|
||||||
`}
|
`}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
@ -52,13 +52,6 @@ class AuthStore {
|
|||||||
this.userStore.user && requests.push(this.moduleStore.init());
|
this.userStore.user && requests.push(this.moduleStore.init());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.isAuthenticated) {
|
|
||||||
this.settingsStore.getPortalPasswordSettings();
|
|
||||||
this.tfaStore.getTfaType();
|
|
||||||
this.settingsStore.getIpRestrictions();
|
|
||||||
this.settingsStore.getSessionLifetime();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Promise.all(requests);
|
return Promise.all(requests);
|
||||||
};
|
};
|
||||||
setLanguage() {
|
setLanguage() {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { makeAutoObservable } from "mobx";
|
import { makeAutoObservable } from "mobx";
|
||||||
import api from "../api";
|
import api from "../api";
|
||||||
import { ARTICLE_PINNED_KEY, LANGUAGE, TenantStatus } from "../constants";
|
import { LANGUAGE, TenantStatus } from "../constants";
|
||||||
import { combineUrl } from "../utils";
|
import { combineUrl } from "../utils";
|
||||||
import FirebaseHelper from "../utils/firebase";
|
import FirebaseHelper from "../utils/firebase";
|
||||||
import { AppServerConfig } from "../constants";
|
import { AppServerConfig } from "../constants";
|
||||||
@ -455,8 +455,8 @@ class SettingsStore {
|
|||||||
|
|
||||||
getIpRestrictions = async () => {
|
getIpRestrictions = async () => {
|
||||||
const res = await api.settings.getIpRestrictions();
|
const res = await api.settings.getIpRestrictions();
|
||||||
if (res.length === 0) this.ipRestrictionEnabled = false;
|
this.ipRestrictions = res?.map((el) => el.ip);
|
||||||
else this.ipRestrictionEnabled = true;
|
console.log(this.ipRestrictions);
|
||||||
};
|
};
|
||||||
|
|
||||||
setIpRestrictions = async (ips) => {
|
setIpRestrictions = async (ips) => {
|
||||||
@ -464,8 +464,12 @@ class SettingsStore {
|
|||||||
ips: ips,
|
ips: ips,
|
||||||
};
|
};
|
||||||
const res = await api.settings.setIpRestrictions(data);
|
const res = await api.settings.setIpRestrictions(data);
|
||||||
console.log("setIpRestrictions", res);
|
this.ipRestrictions = res;
|
||||||
this.ipRestrictions = ips;
|
};
|
||||||
|
|
||||||
|
getIpRestrictionsEnable = async () => {
|
||||||
|
const res = await api.settings.getIpRestrictionsEnable();
|
||||||
|
this.ipRestrictionEnable = res.enable;
|
||||||
};
|
};
|
||||||
|
|
||||||
setIpRestrictionsEnable = async (enable) => {
|
setIpRestrictionsEnable = async (enable) => {
|
||||||
@ -473,8 +477,7 @@ class SettingsStore {
|
|||||||
enable: enable,
|
enable: enable,
|
||||||
};
|
};
|
||||||
const res = await api.settings.setIpRestrictionsEnable(data);
|
const res = await api.settings.setIpRestrictionsEnable(data);
|
||||||
console.log("setIpRestrictionsEnable", res);
|
this.ipRestrictionEnable = res.enable;
|
||||||
this.ipRestrictionEnabled = enable;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
setMessageSettings = async (turnOn) => {
|
setMessageSettings = async (turnOn) => {
|
||||||
|
@ -57,7 +57,7 @@ const Avatar = (props) => {
|
|||||||
const { size, source, userName, role, editing, editAction } = props;
|
const { size, source, userName, role, editing, editAction } = props;
|
||||||
let isDefault = false;
|
let isDefault = false;
|
||||||
|
|
||||||
if (source.includes("default_user_photo")) isDefault = true;
|
if (source?.includes("default_user_photo")) isDefault = true;
|
||||||
|
|
||||||
const avatarContent = source ? (
|
const avatarContent = source ? (
|
||||||
<StyledImage src={source} isDefault={isDefault} />
|
<StyledImage src={source} isDefault={isDefault} />
|
||||||
|
@ -81,7 +81,7 @@ const tabletButtons = css`
|
|||||||
|
|
||||||
.save-button,
|
.save-button,
|
||||||
.cancel-button {
|
.cancel-button {
|
||||||
max-width: max-content;
|
width: auto;
|
||||||
padding-left: 28px;
|
padding-left: 28px;
|
||||||
padding-right: 28px;
|
padding-right: 28px;
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ const StyledSearchInput = styled.div`
|
|||||||
font-style: normal;
|
font-style: normal;
|
||||||
|
|
||||||
.search-input-block {
|
.search-input-block {
|
||||||
|
max-height: 32px;
|
||||||
|
|
||||||
& > input {
|
& > input {
|
||||||
font-size: ${(props) => props.theme.searchInput.fontSize};
|
font-size: ${(props) => props.theme.searchInput.fontSize};
|
||||||
font-weight: ${(props) => props.theme.searchInput.fontWeight};
|
font-weight: ${(props) => props.theme.searchInput.fontWeight};
|
||||||
|
@ -157,6 +157,8 @@ const StyledInfoPanelToggleWrapper = styled.div`
|
|||||||
? props.theme.infoPanel.sectionHeaderToggleIconActive
|
? props.theme.infoPanel.sectionHeaderToggleIconActive
|
||||||
: props.theme.infoPanel.sectionHeaderToggleIcon};
|
: props.theme.infoPanel.sectionHeaderToggleIcon};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
margin-bottom: 1px;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
StyledInfoPanelToggleWrapper.defaultProps = { theme: Base };
|
StyledInfoPanelToggleWrapper.defaultProps = { theme: Base };
|
||||||
@ -199,6 +201,8 @@ const StyledTableHeaderCell = styled.div`
|
|||||||
`}
|
`}
|
||||||
|
|
||||||
svg {
|
svg {
|
||||||
|
width: 12px;
|
||||||
|
height: 12px;
|
||||||
path {
|
path {
|
||||||
fill: ${(props) =>
|
fill: ${(props) =>
|
||||||
props.isActive
|
props.isActive
|
||||||
|
@ -62,7 +62,7 @@ const TableGroupMenu = (props) => {
|
|||||||
<div className="info-panel-toggle-bg">
|
<div className="info-panel-toggle-bg">
|
||||||
<IconButton
|
<IconButton
|
||||||
className="info-panel-toggle"
|
className="info-panel-toggle"
|
||||||
iconName="images/panel.svg"
|
iconName="images/panel.react.svg"
|
||||||
size="16"
|
size="16"
|
||||||
isFill={true}
|
isFill={true}
|
||||||
onClick={toggleInfoPanel}
|
onClick={toggleInfoPanel}
|
||||||
|
@ -1950,7 +1950,7 @@ const Dark = {
|
|||||||
|
|
||||||
header: {
|
header: {
|
||||||
backgroundColor: black,
|
backgroundColor: black,
|
||||||
background: `linear-gradient(180deg,#333333 2.81%,rgba(51, 51, 51, 0.91) 63.03%,rgba(255, 255, 255, 0) 100%)`,
|
background: `linear-gradient(180deg, #333333 2.81%, rgba(51, 51, 51, 0.9) 63.03%, rgba(51, 51, 51, 0) 100%);`,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
3
products/ASC.Files/Client/public/images/panel.react.svg
Normal file
3
products/ASC.Files/Client/public/images/panel.react.svg
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 3.5C0 2.67157 0.671573 2 1.5 2H14.5C15.3284 2 16 2.67157 16 3.5V12.5C16 13.3284 15.3284 14 14.5 14H1.5C0.671573 14 0 13.3284 0 12.5V3.5ZM2 5C2 4.44772 2.44772 4 3 4H9V12H3C2.44772 12 2 11.5523 2 11V5ZM11 12H13C13.5523 12 14 11.5523 14 11V5C14 4.44772 13.5523 4 13 4H11V12Z" fill="#A3A9AE"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 446 B |
@ -1,3 +0,0 @@
|
|||||||
<svg width="17" height="15" viewBox="0 0 17 15" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M11.5 2.5H13.5C14.0523 2.5 14.5 2.94772 14.5 3.5V11.5C14.5 12.0523 14.0523 12.5 13.5 12.5H11.5V2.5ZM9 2.5H3.5C2.94772 2.5 2.5 2.94772 2.5 3.5V11.5C2.5 12.0523 2.94772 12.5 3.5 12.5H9V2.5ZM17 1.5C17 0.671573 16.3284 0 15.5 0H14.5H2.5H1.5C0.671573 0 0 0.671573 0 1.5V2.88462V12.1154V13.5C0 14.3284 0.671573 15 1.5 15H2.5H14.5H15.5C16.3284 15 17 14.3284 17 13.5V12.1154V2.88462V1.5Z" fill="#A3A9AE"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 550 B |
@ -37,7 +37,6 @@ const withHotkeys = (Component) => {
|
|||||||
activateHotkeys,
|
activateHotkeys,
|
||||||
backToParentFolder,
|
backToParentFolder,
|
||||||
|
|
||||||
hideArticle,
|
|
||||||
uploadFile,
|
uploadFile,
|
||||||
someDialogIsOpen,
|
someDialogIsOpen,
|
||||||
} = props;
|
} = props;
|
||||||
@ -147,10 +146,7 @@ const withHotkeys = (Component) => {
|
|||||||
//Crete form template from file
|
//Crete form template from file
|
||||||
useHotkeys(
|
useHotkeys(
|
||||||
"Alt+Shift+o",
|
"Alt+Shift+o",
|
||||||
() => {
|
() => setSelectFileDialogVisible(true),
|
||||||
hideArticle();
|
|
||||||
setSelectFileDialogVisible(true);
|
|
||||||
},
|
|
||||||
hotkeysFilter
|
hotkeysFilter
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -217,14 +213,12 @@ const withHotkeys = (Component) => {
|
|||||||
|
|
||||||
return inject(
|
return inject(
|
||||||
({
|
({
|
||||||
auth,
|
|
||||||
filesStore,
|
filesStore,
|
||||||
dialogsStore,
|
dialogsStore,
|
||||||
settingsStore,
|
settingsStore,
|
||||||
filesActionsStore,
|
filesActionsStore,
|
||||||
hotkeyStore,
|
hotkeyStore,
|
||||||
}) => {
|
}) => {
|
||||||
const { hideArticle } = auth.settingsStore;
|
|
||||||
const { setSelected, viewAs, setViewAs, fileActionStore } = filesStore;
|
const { setSelected, viewAs, setViewAs, fileActionStore } = filesStore;
|
||||||
const { setAction } = fileActionStore;
|
const { setAction } = fileActionStore;
|
||||||
|
|
||||||
@ -291,7 +285,6 @@ const withHotkeys = (Component) => {
|
|||||||
activateHotkeys,
|
activateHotkeys,
|
||||||
backToParentFolder,
|
backToParentFolder,
|
||||||
|
|
||||||
hideArticle,
|
|
||||||
uploadFile,
|
uploadFile,
|
||||||
someDialogIsOpen,
|
someDialogIsOpen,
|
||||||
};
|
};
|
||||||
|
@ -142,7 +142,6 @@ export default inject(
|
|||||||
|
|
||||||
toggleArticleOpen,
|
toggleArticleOpen,
|
||||||
personal,
|
personal,
|
||||||
hideArticle,
|
|
||||||
isDesktopClient,
|
isDesktopClient,
|
||||||
FirebaseHelper,
|
FirebaseHelper,
|
||||||
theme,
|
theme,
|
||||||
@ -171,7 +170,6 @@ export default inject(
|
|||||||
|
|
||||||
setTreeFolders,
|
setTreeFolders,
|
||||||
setNewFilesPanelVisible,
|
setNewFilesPanelVisible,
|
||||||
hideArticle,
|
|
||||||
firstLoad,
|
firstLoad,
|
||||||
isDesktopClient,
|
isDesktopClient,
|
||||||
FirebaseHelper,
|
FirebaseHelper,
|
||||||
|
@ -116,7 +116,11 @@ const StyledTile = styled.div`
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tile-folder-loader {
|
.tile-folder-loader {
|
||||||
padding-top: 4px;
|
padding-top: 16px;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin-left: 21px;
|
||||||
|
margin-right: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
:hover {
|
:hover {
|
||||||
@ -180,8 +184,11 @@ const StyledFileTileBottom = styled.div`
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
.tile-file-loader {
|
.tile-file-loader {
|
||||||
padding-top: 4px;
|
padding-top: 16px;
|
||||||
padding-left: 3px;
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
margin-left: 23px;
|
||||||
|
margin-right: 14px;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ class ContextOptionsStore {
|
|||||||
const {
|
const {
|
||||||
setConvertPasswordDialogVisible,
|
setConvertPasswordDialogVisible,
|
||||||
setFormCreationInfo,
|
setFormCreationInfo,
|
||||||
} = dialogsStore;
|
} = this.dialogsStore;
|
||||||
const { title, id, folderId, fileExst } = item;
|
const { title, id, folderId, fileExst } = item;
|
||||||
|
|
||||||
const newTitle =
|
const newTitle =
|
||||||
@ -412,7 +412,7 @@ class ContextOptionsStore {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "copy",
|
key: "copy",
|
||||||
label: t("Duplicate"),
|
label: t("Common:Duplicate"),
|
||||||
onClick: () => this.onDuplicate(item, t),
|
onClick: () => this.onDuplicate(item, t),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
},
|
},
|
||||||
@ -436,7 +436,7 @@ class ContextOptionsStore {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: "copy",
|
key: "copy",
|
||||||
label: t("Duplicate"),
|
label: t("Common:Duplicate"),
|
||||||
icon: "/static/images/copy.react.svg",
|
icon: "/static/images/copy.react.svg",
|
||||||
onClick: () => this.onDuplicate(item, t),
|
onClick: () => this.onDuplicate(item, t),
|
||||||
disabled: false,
|
disabled: false,
|
||||||
|
@ -153,7 +153,6 @@ class DialogsStore {
|
|||||||
this.setNewFilesIds(null);
|
this.setNewFilesIds(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.authStore.settingsStore.hideArticle();
|
|
||||||
this.newFilesPanelVisible = newFilesPanelVisible;
|
this.newFilesPanelVisible = newFilesPanelVisible;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ class HotkeyStore {
|
|||||||
|
|
||||||
if (!hotkeyCaret) {
|
if (!hotkeyCaret) {
|
||||||
const scroll = document.getElementsByClassName("section-scroll");
|
const scroll = document.getElementsByClassName("section-scroll");
|
||||||
scroll && scroll[0].focus();
|
scroll && scroll[0] && scroll[0].focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!hotkeyCaret && selection.length) {
|
if (!hotkeyCaret && selection.length) {
|
||||||
@ -129,26 +129,31 @@ class HotkeyStore {
|
|||||||
};
|
};
|
||||||
|
|
||||||
selectBottom = () => {
|
selectBottom = () => {
|
||||||
const { viewAs, hotkeyCaret } = this.filesStore;
|
const { viewAs, hotkeyCaret, selection } = this.filesStore;
|
||||||
|
|
||||||
if (!hotkeyCaret) return this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) return this.selectFirstFile();
|
||||||
else if (viewAs === "tile")
|
else if (viewAs === "tile")
|
||||||
this.setSelectionWithCaret([this.nextForTileDown]);
|
this.setSelectionWithCaret([this.nextForTileDown]);
|
||||||
else if (this.nextFile) this.setSelectionWithCaret([this.nextFile]);
|
else if (this.nextFile) this.setSelectionWithCaret([this.nextFile]);
|
||||||
};
|
};
|
||||||
|
|
||||||
selectUpper = () => {
|
selectUpper = () => {
|
||||||
const { hotkeyCaret, viewAs } = this.filesStore;
|
const { hotkeyCaret, viewAs, selection } = this.filesStore;
|
||||||
|
|
||||||
if (!hotkeyCaret) return this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) return this.selectFirstFile();
|
||||||
else if (viewAs === "tile")
|
else if (viewAs === "tile")
|
||||||
this.setSelectionWithCaret([this.prevForTileUp]);
|
this.setSelectionWithCaret([this.prevForTileUp]);
|
||||||
else if (this.prevFile) this.setSelectionWithCaret([this.prevFile]);
|
else if (this.prevFile) this.setSelectionWithCaret([this.prevFile]);
|
||||||
};
|
};
|
||||||
|
|
||||||
selectLeft = () => {
|
selectLeft = () => {
|
||||||
const { hotkeyCaret, filesList, setHotkeyCaretStart } = this.filesStore;
|
const {
|
||||||
if (!hotkeyCaret) {
|
hotkeyCaret,
|
||||||
|
filesList,
|
||||||
|
setHotkeyCaretStart,
|
||||||
|
selection,
|
||||||
|
} = this.filesStore;
|
||||||
|
if (!hotkeyCaret && !selection.length) {
|
||||||
this.selectFirstFile();
|
this.selectFirstFile();
|
||||||
|
|
||||||
setHotkeyCaretStart(filesList[0]);
|
setHotkeyCaretStart(filesList[0]);
|
||||||
@ -158,9 +163,14 @@ class HotkeyStore {
|
|||||||
};
|
};
|
||||||
|
|
||||||
selectRight = () => {
|
selectRight = () => {
|
||||||
const { hotkeyCaret, filesList, setHotkeyCaretStart } = this.filesStore;
|
const {
|
||||||
|
hotkeyCaret,
|
||||||
|
filesList,
|
||||||
|
setHotkeyCaretStart,
|
||||||
|
selection,
|
||||||
|
} = this.filesStore;
|
||||||
|
|
||||||
if (!hotkeyCaret) {
|
if (!hotkeyCaret && !selection.length) {
|
||||||
this.selectFirstFile();
|
this.selectFirstFile();
|
||||||
setHotkeyCaretStart(filesList[0]);
|
setHotkeyCaretStart(filesList[0]);
|
||||||
} else if (this.nextFile) {
|
} else if (this.nextFile) {
|
||||||
@ -183,7 +193,7 @@ class HotkeyStore {
|
|||||||
if (!hotkeyCaretStart) {
|
if (!hotkeyCaretStart) {
|
||||||
setHotkeyCaretStart(hotkeyCaret);
|
setHotkeyCaretStart(hotkeyCaret);
|
||||||
}
|
}
|
||||||
if (!hotkeyCaret) return this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) return this.selectFirstFile();
|
||||||
|
|
||||||
if (viewAs === "tile") {
|
if (viewAs === "tile") {
|
||||||
if (this.nextForTileDown.id === hotkeyCaret.id) return;
|
if (this.nextForTileDown.id === hotkeyCaret.id) return;
|
||||||
@ -218,7 +228,7 @@ class HotkeyStore {
|
|||||||
if (!hotkeyCaretStart) {
|
if (!hotkeyCaretStart) {
|
||||||
setHotkeyCaretStart(hotkeyCaret);
|
setHotkeyCaretStart(hotkeyCaret);
|
||||||
}
|
}
|
||||||
if (!hotkeyCaret) this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) this.selectFirstFile();
|
||||||
|
|
||||||
if (viewAs === "tile") {
|
if (viewAs === "tile") {
|
||||||
if (this.prevForTileUp.id === hotkeyCaret.id) return;
|
if (this.prevForTileUp.id === hotkeyCaret.id) return;
|
||||||
@ -251,7 +261,7 @@ class HotkeyStore {
|
|||||||
filesList,
|
filesList,
|
||||||
} = this.filesStore;
|
} = this.filesStore;
|
||||||
|
|
||||||
if (!hotkeyCaret) return this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) return this.selectFirstFile();
|
||||||
|
|
||||||
const nextFile = this.nextFile;
|
const nextFile = this.nextFile;
|
||||||
if (!nextFile) return;
|
if (!nextFile) return;
|
||||||
@ -309,7 +319,7 @@ class HotkeyStore {
|
|||||||
hotkeyCaretStart,
|
hotkeyCaretStart,
|
||||||
} = this.filesStore;
|
} = this.filesStore;
|
||||||
|
|
||||||
if (!hotkeyCaret) return this.selectFirstFile();
|
if (!hotkeyCaret && !selection.length) return this.selectFirstFile();
|
||||||
|
|
||||||
const prevFile = this.prevFile;
|
const prevFile = this.prevFile;
|
||||||
if (!prevFile) return;
|
if (!prevFile) return;
|
||||||
@ -461,8 +471,9 @@ class HotkeyStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get caretIndex() {
|
get caretIndex() {
|
||||||
const { filesList, hotkeyCaret } = this.filesStore;
|
const { filesList, hotkeyCaret, selection } = this.filesStore;
|
||||||
const caretIndex = filesList.findIndex((f) => f.id === hotkeyCaret.id);
|
const id = selection.length ? selection[0].id : hotkeyCaret?.id;
|
||||||
|
const caretIndex = filesList.findIndex((f) => f.id === id);
|
||||||
|
|
||||||
if (caretIndex !== -1) return caretIndex;
|
if (caretIndex !== -1) return caretIndex;
|
||||||
else return null;
|
else return null;
|
||||||
|
@ -1405,6 +1405,13 @@ namespace ASC.Api.Settings
|
|||||||
return IPRestrictionsService.Save(model.Ips, Tenant.TenantId);
|
return IPRestrictionsService.Save(model.Ips, Tenant.TenantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Read("iprestrictions/settings")]
|
||||||
|
public IPRestrictionsSettings GetIpRestrictionsSettings()
|
||||||
|
{
|
||||||
|
PermissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
|
||||||
|
return SettingsManager.Load<IPRestrictionsSettings>();
|
||||||
|
}
|
||||||
|
|
||||||
[Update("iprestrictions/settings")]
|
[Update("iprestrictions/settings")]
|
||||||
public IPRestrictionsSettings UpdateIpRestrictionsSettingsFromBody([FromBody] IpRestrictionsModel model)
|
public IPRestrictionsSettings UpdateIpRestrictionsSettingsFromBody([FromBody] IpRestrictionsModel model)
|
||||||
{
|
{
|
||||||
|
@ -578,6 +578,7 @@ const ShellWrapper = inject(({ auth, backup }) => {
|
|||||||
setTheme,
|
setTheme,
|
||||||
} = settingsStore;
|
} = settingsStore;
|
||||||
const { setPreparationPortalDialogVisible } = backup;
|
const { setPreparationPortalDialogVisible } = backup;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
loadBaseInfo: async () => {
|
loadBaseInfo: async () => {
|
||||||
await init();
|
await init();
|
||||||
|
@ -6,6 +6,10 @@ import { withTranslation } from "react-i18next";
|
|||||||
|
|
||||||
import { isArrayEqual } from "@appserver/components/utils/array";
|
import { isArrayEqual } from "@appserver/components/utils/array";
|
||||||
|
|
||||||
|
import { isMobileOnly } from "react-device-detect";
|
||||||
|
|
||||||
|
import { isMobile } from "@appserver/components/utils/device";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
//getKeyByLink,
|
//getKeyByLink,
|
||||||
settingsTree,
|
settingsTree,
|
||||||
@ -55,7 +59,7 @@ class ArticleBodyContent extends React.Component {
|
|||||||
componentDidUpdate(prevProps, prevState) {
|
componentDidUpdate(prevProps, prevState) {
|
||||||
if (!isArrayEqual(prevState.selectedKeys, this.state.selectedKeys)) {
|
if (!isArrayEqual(prevState.selectedKeys, this.state.selectedKeys)) {
|
||||||
const { selectedKeys } = this.state;
|
const { selectedKeys } = this.state;
|
||||||
console.log(selectedKeys);
|
|
||||||
const { match, history } = this.props;
|
const { match, history } = this.props;
|
||||||
const settingsPath = getSelectedLinkByKey(selectedKeys[0], settingsTree);
|
const settingsPath = getSelectedLinkByKey(selectedKeys[0], settingsTree);
|
||||||
const newPath = match.path + settingsPath;
|
const newPath = match.path + settingsPath;
|
||||||
@ -66,13 +70,17 @@ class ArticleBodyContent extends React.Component {
|
|||||||
onSelect = (value) => {
|
onSelect = (value) => {
|
||||||
const { selectedKeys } = this.state;
|
const { selectedKeys } = this.state;
|
||||||
|
|
||||||
console.log(selectedKeys, value);
|
const { toggleArticleOpen } = this.props;
|
||||||
|
|
||||||
if (isArrayEqual([value], selectedKeys)) {
|
if (isArrayEqual([value], selectedKeys)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setState({ selectedKeys: [value + "-0"] });
|
this.setState({ selectedKeys: [value + "-0"] });
|
||||||
|
|
||||||
|
if (isMobileOnly || isMobile()) {
|
||||||
|
toggleArticleOpen();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
mapKeys = (tKey) => {
|
mapKeys = (tKey) => {
|
||||||
@ -145,5 +153,6 @@ class ArticleBodyContent extends React.Component {
|
|||||||
export default inject(({ auth }) => {
|
export default inject(({ auth }) => {
|
||||||
return {
|
return {
|
||||||
showText: auth.settingsStore.showText,
|
showText: auth.settingsStore.showText,
|
||||||
|
toggleArticleOpen: auth.settingsStore.toggleArticleOpen,
|
||||||
};
|
};
|
||||||
})(withRouter(withTranslation("Settings")(observer(ArticleBodyContent))));
|
})(withRouter(withTranslation("Settings")(observer(ArticleBodyContent))));
|
||||||
|
@ -110,8 +110,9 @@ class SectionHeaderContent extends React.Component {
|
|||||||
const resultPath = locationPathname.slice(fullSettingsUrlLength + 1);
|
const resultPath = locationPathname.slice(fullSettingsUrlLength + 1);
|
||||||
const arrayOfParams = resultPath.split("/");
|
const arrayOfParams = resultPath.split("/");
|
||||||
|
|
||||||
const key = getKeyByLink(arrayOfParams, settingsTree)[0];
|
const key = getKeyByLink(arrayOfParams, settingsTree);
|
||||||
const header = getTKeyByKey(key, settingsTree);
|
const currKey = key.length > 3 ? key : key[0];
|
||||||
|
const header = getTKeyByKey(currKey, settingsTree);
|
||||||
const isCategory = checkPropertyByLink(
|
const isCategory = checkPropertyByLink(
|
||||||
arrayOfParams,
|
arrayOfParams,
|
||||||
settingsTree,
|
settingsTree,
|
||||||
@ -133,8 +134,9 @@ class SectionHeaderContent extends React.Component {
|
|||||||
componentDidUpdate() {
|
componentDidUpdate() {
|
||||||
const arrayOfParams = this.getArrayOfParams();
|
const arrayOfParams = this.getArrayOfParams();
|
||||||
|
|
||||||
const key = getKeyByLink(arrayOfParams, settingsTree)[0];
|
const key = getKeyByLink(arrayOfParams, settingsTree);
|
||||||
const header = getTKeyByKey(key, settingsTree);
|
const currKey = key.length > 3 ? key : key[0];
|
||||||
|
const header = getTKeyByKey(currKey, settingsTree);
|
||||||
const isCategory = checkPropertyByLink(
|
const isCategory = checkPropertyByLink(
|
||||||
arrayOfParams,
|
arrayOfParams,
|
||||||
settingsTree,
|
settingsTree,
|
||||||
|
@ -0,0 +1,46 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled, { css } from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
import { isDesktop as isDesktopUtils } from "@appserver/components/utils/device";
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
|
const tabletStyles = css`
|
||||||
|
padding-top: 12px;
|
||||||
|
.loader {
|
||||||
|
width: 184px;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
padding-top: 8px;
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
width: 273px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 600px) {
|
||||||
|
${tabletStyles}
|
||||||
|
}
|
||||||
|
|
||||||
|
${isTablet &&
|
||||||
|
css`
|
||||||
|
${tabletStyles}
|
||||||
|
`}
|
||||||
|
|
||||||
|
@media (min-width: 1025px) {
|
||||||
|
.loader {
|
||||||
|
width: 296px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderSectionHeader = () => {
|
||||||
|
const heightLoader = isDesktopUtils() ? "29px" : "37px";
|
||||||
|
return (
|
||||||
|
<StyledLoader>
|
||||||
|
<Loaders.Rectangle height={heightLoader} className="loader" />
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderSectionHeader;
|
@ -4,6 +4,7 @@ import { ArticleHeaderContent, ArticleBodyContent } from "./Article";
|
|||||||
import { SectionHeaderContent, SectionPagingContent } from "./Section";
|
import { SectionHeaderContent, SectionPagingContent } from "./Section";
|
||||||
import { inject, observer } from "mobx-react";
|
import { inject, observer } from "mobx-react";
|
||||||
import Section from "@appserver/common/components/Section";
|
import Section from "@appserver/common/components/Section";
|
||||||
|
import LoaderSectionHeader from "./Section/loaderSectionHeader";
|
||||||
|
|
||||||
const ArticleSettings = React.memo(() => {
|
const ArticleSettings = React.memo(() => {
|
||||||
return (
|
return (
|
||||||
|
@ -10,6 +10,7 @@ import { AppServerConfig } from "@appserver/common/constants";
|
|||||||
import withCultureNames from "@appserver/common/hoc/withCultureNames";
|
import withCultureNames from "@appserver/common/hoc/withCultureNames";
|
||||||
import history from "@appserver/common/history";
|
import history from "@appserver/common/history";
|
||||||
import { Base } from "@appserver/components/themes";
|
import { Base } from "@appserver/components/themes";
|
||||||
|
import LoaderCustomizationNavbar from "./sub-components/loaderCustomizationNavbar";
|
||||||
|
|
||||||
import { StyledArrowRightIcon } from "../common/settingsCustomization/StyledSettings";
|
import { StyledArrowRightIcon } from "../common/settingsCustomization/StyledSettings";
|
||||||
|
|
||||||
@ -51,6 +52,9 @@ const CustomizationNavbar = ({ t, theme, helpUrlCommonSettings }) => {
|
|||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
history.push(e.target.pathname);
|
history.push(e.target.pathname);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//return <LoaderCustomizationNavbar />;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StyledComponent>
|
<StyledComponent>
|
||||||
<div className="category-item-wrapper">
|
<div className="category-item-wrapper">
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { withTranslation } from "react-i18next";
|
import { withTranslation } from "react-i18next";
|
||||||
import styled from "styled-components";
|
import styled from "styled-components";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
import withCultureNames from "@appserver/common/hoc/withCultureNames";
|
import withCultureNames from "@appserver/common/hoc/withCultureNames";
|
||||||
import LanguageAndTimeZone from "./settingsCustomization/language-and-time-zone";
|
import LanguageAndTimeZone from "./settingsCustomization/language-and-time-zone";
|
||||||
import WelcomePageSettings from "./settingsCustomization/welcome-page-settings";
|
import WelcomePageSettings from "./settingsCustomization/welcome-page-settings";
|
||||||
@ -9,8 +10,11 @@ import { isSmallTablet } from "@appserver/components/utils/device";
|
|||||||
import CustomizationNavbar from "./customization-navbar";
|
import CustomizationNavbar from "./customization-navbar";
|
||||||
import { Base } from "@appserver/components/themes";
|
import { Base } from "@appserver/components/themes";
|
||||||
import { setDocumentTitle } from "../../../../../helpers/utils";
|
import { setDocumentTitle } from "../../../../../helpers/utils";
|
||||||
|
import LoaderDescriptionCustomization from "./sub-components/loaderDescriptionCustomization";
|
||||||
|
|
||||||
const StyledComponent = styled.div`
|
const StyledComponent = styled.div`
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
.combo-button-label {
|
.combo-button-label {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
@ -61,9 +65,9 @@ const StyledComponent = styled.div`
|
|||||||
|
|
||||||
StyledComponent.defaultProps = { theme: Base };
|
StyledComponent.defaultProps = { theme: Base };
|
||||||
|
|
||||||
const Customization = ({ t }) => {
|
const Customization = ({ t, setIsLoadingArticleSettings }) => {
|
||||||
const [mobileView, setMobileView] = useState(true);
|
const [mobileView, setMobileView] = useState(true);
|
||||||
const [isLoadingCustomization, setIsLoadingCustomization] = useState(true);
|
const [isLoadingCustomization, setIsLoadingCustomization] = useState(false);
|
||||||
|
|
||||||
const checkInnerWidth = () => {
|
const checkInnerWidth = () => {
|
||||||
if (isSmallTablet()) {
|
if (isSmallTablet()) {
|
||||||
@ -75,8 +79,12 @@ const Customization = ({ t }) => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setDocumentTitle(t("Customization"));
|
setDocumentTitle(t("Customization"));
|
||||||
//TODO: add method to get the portal name
|
//TODO: Add method to get the portal name
|
||||||
|
setIsLoadingArticleSettings(true);
|
||||||
|
setTimeout(() => {
|
||||||
setIsLoadingCustomization(false);
|
setIsLoadingCustomization(false);
|
||||||
|
setIsLoadingArticleSettings(isLoadingCustomization);
|
||||||
|
}, 3000);
|
||||||
|
|
||||||
window.addEventListener("resize", checkInnerWidth);
|
window.addEventListener("resize", checkInnerWidth);
|
||||||
return () => window.removeEventListener("resize", checkInnerWidth);
|
return () => window.removeEventListener("resize", checkInnerWidth);
|
||||||
@ -91,6 +99,7 @@ const Customization = ({ t }) => {
|
|||||||
<div className="category-description">{`${t(
|
<div className="category-description">{`${t(
|
||||||
"Settings:CustomizationDescription"
|
"Settings:CustomizationDescription"
|
||||||
)}`}</div>
|
)}`}</div>
|
||||||
|
{/* <LoaderDescriptionCustomization /> */}
|
||||||
<LanguageAndTimeZone
|
<LanguageAndTimeZone
|
||||||
isLoadingCustomization={isLoadingCustomization}
|
isLoadingCustomization={isLoadingCustomization}
|
||||||
isMobileView={isMobile}
|
isMobileView={isMobile}
|
||||||
@ -101,6 +110,14 @@ const Customization = ({ t }) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default withCultureNames(
|
export default inject(({ setup }) => {
|
||||||
withTranslation(["Settings", "Common"])(Customization)
|
const { setIsLoadingArticleSettings } = setup;
|
||||||
|
|
||||||
|
return {
|
||||||
|
setIsLoadingArticleSettings,
|
||||||
|
};
|
||||||
|
})(
|
||||||
|
withCultureNames(
|
||||||
|
withTranslation(["Settings", "Common"])(observer(Customization))
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
@ -8,7 +8,7 @@ import config from "../../../../../../package.json";
|
|||||||
|
|
||||||
import Customization from "./customization";
|
import Customization from "./customization";
|
||||||
import WhiteLabel from "./whitelabel";
|
import WhiteLabel from "./whitelabel";
|
||||||
import AppLoader from "@appserver/common/components/AppLoader";
|
import LoaderSubmenu from "./sub-components/loaderSubmenu";
|
||||||
|
|
||||||
const SubmenuCommon = (props) => {
|
const SubmenuCommon = (props) => {
|
||||||
const { t, history } = props;
|
const { t, history } = props;
|
||||||
@ -34,7 +34,7 @@ const SubmenuCommon = (props) => {
|
|||||||
if (currentTab !== -1) {
|
if (currentTab !== -1) {
|
||||||
setCurrentTab(currentTab);
|
setCurrentTab(currentTab);
|
||||||
}
|
}
|
||||||
setIsLoading(true);
|
//setIsLoading(true);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onSelect = (e) => {
|
const onSelect = (e) => {
|
||||||
@ -46,9 +46,9 @@ const SubmenuCommon = (props) => {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
//TODO: isLoading
|
||||||
return !isLoading ? (
|
return isLoading ? (
|
||||||
<AppLoader />
|
<LoaderSubmenu />
|
||||||
) : (
|
) : (
|
||||||
<Submenu
|
<Submenu
|
||||||
data={data}
|
data={data}
|
||||||
|
@ -22,7 +22,7 @@ import { isMobileOnly } from "react-device-detect";
|
|||||||
import { isSmallTablet } from "@appserver/components/utils/device";
|
import { isSmallTablet } from "@appserver/components/utils/device";
|
||||||
import checkScrollSettingsBlock from "../utils";
|
import checkScrollSettingsBlock from "../utils";
|
||||||
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
||||||
import LoaderLngTZSettings from "../sub-components/loaderLngTZSettings";
|
import LoaderCustomization from "../sub-components/loaderCustomization";
|
||||||
const mapTimezonesToArray = (timezones) => {
|
const mapTimezonesToArray = (timezones) => {
|
||||||
return timezones.map((timezone) => {
|
return timezones.map((timezone) => {
|
||||||
return { key: timezone.id, label: timezone.displayName };
|
return { key: timezone.id, label: timezone.displayName };
|
||||||
@ -399,6 +399,7 @@ class LanguageAndTimeZone extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//return <LoaderCustomization lngTZSettings={true} />;
|
||||||
return !isLoadedData ? (
|
return !isLoadedData ? (
|
||||||
<Loader className="pageLoader" type="rombs" size="40px" />
|
<Loader className="pageLoader" type="rombs" size="40px" />
|
||||||
) : (
|
) : (
|
||||||
|
@ -18,6 +18,7 @@ import { PortalRenamingTooltip } from "../sub-components/common-tooltips";
|
|||||||
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
import { setDocumentTitle } from "../../../../../../helpers/utils";
|
import { setDocumentTitle } from "../../../../../../helpers/utils";
|
||||||
|
import LoaderCustomization from "../sub-components/loaderCustomization";
|
||||||
|
|
||||||
const PortalRenaming = ({ t, setPortalRename, isMobileView }) => {
|
const PortalRenaming = ({ t, setPortalRename, isMobileView }) => {
|
||||||
// TODO: Change false
|
// TODO: Change false
|
||||||
@ -186,6 +187,7 @@ const PortalRenaming = ({ t, setPortalRename, isMobileView }) => {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//return <LoaderCustomization portalRenaming={true} />;
|
||||||
return !isLoadedData ? (
|
return !isLoadedData ? (
|
||||||
<Loader className="pageLoader" type="rombs" size="40px" />
|
<Loader className="pageLoader" type="rombs" size="40px" />
|
||||||
) : (
|
) : (
|
||||||
|
@ -19,7 +19,7 @@ import { isMobileOnly } from "react-device-detect";
|
|||||||
import { isSmallTablet } from "@appserver/components/utils/device";
|
import { isSmallTablet } from "@appserver/components/utils/device";
|
||||||
import checkScrollSettingsBlock from "../utils";
|
import checkScrollSettingsBlock from "../utils";
|
||||||
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
import { StyledSettingsComponent, StyledScrollbar } from "./StyledSettings";
|
||||||
import LoaderLngTZSettings from "../sub-components/loaderLngTZSettings";
|
import LoaderCustomization from "../sub-components/loaderCustomization";
|
||||||
|
|
||||||
let greetingTitleFromSessionStorage = "";
|
let greetingTitleFromSessionStorage = "";
|
||||||
let greetingTitleDefaultFromSessionStorage = "";
|
let greetingTitleDefaultFromSessionStorage = "";
|
||||||
@ -250,6 +250,7 @@ class WelcomePageSettings extends React.Component {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// return <LoaderCustomization welcomePage={true} />;
|
||||||
return !isLoadedData ? (
|
return !isLoadedData ? (
|
||||||
<Loader className="pageLoader" type="rombs" size="40px" />
|
<Loader className="pageLoader" type="rombs" size="40px" />
|
||||||
) : (
|
) : (
|
||||||
|
@ -0,0 +1,143 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled, { css } from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
|
const tabletStyles = css`
|
||||||
|
.header {
|
||||||
|
display: block;
|
||||||
|
width: ${(props) =>
|
||||||
|
props.lngTZSettings
|
||||||
|
? "283px"
|
||||||
|
: props.welcomePage
|
||||||
|
? "201px"
|
||||||
|
: props.portalRenaming
|
||||||
|
? "150px"
|
||||||
|
: 0};
|
||||||
|
padding-bottom: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: block;
|
||||||
|
width: ${(props) =>
|
||||||
|
props.lngTZSettings
|
||||||
|
? "65px"
|
||||||
|
: props.welcomePage
|
||||||
|
? "31px"
|
||||||
|
: props.portalRenaming
|
||||||
|
? "113px"
|
||||||
|
: 0};
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-box {
|
||||||
|
display: block;
|
||||||
|
width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-container {
|
||||||
|
display: block;
|
||||||
|
width: 350px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.save-cancel-buttons {
|
||||||
|
display: block;
|
||||||
|
position: static;
|
||||||
|
width: 350px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
.header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
width: ${(props) => (props.portalRenaming ? "49px" : "63.7px")};
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title-long {
|
||||||
|
display: block;
|
||||||
|
width: 68px;
|
||||||
|
padding-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.combo-box {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.field-container {
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.save-cancel-buttons {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: calc(100% - 32px);
|
||||||
|
padding: 0 0 16px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 600px) {
|
||||||
|
${tabletStyles}
|
||||||
|
}
|
||||||
|
|
||||||
|
${isTablet &&
|
||||||
|
`
|
||||||
|
${tabletStyles}
|
||||||
|
`}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderCustomization = ({
|
||||||
|
lngTZSettings,
|
||||||
|
portalRenaming,
|
||||||
|
welcomePage,
|
||||||
|
}) => {
|
||||||
|
const heightSaveCancelButtons = window.innerWidth < 600 ? "40px" : "32px";
|
||||||
|
|
||||||
|
return (
|
||||||
|
<StyledLoader
|
||||||
|
lngTZSettings={lngTZSettings}
|
||||||
|
portalRenaming={portalRenaming}
|
||||||
|
welcomePage={welcomePage}
|
||||||
|
className="category-item-wrapper"
|
||||||
|
>
|
||||||
|
<Loaders.Rectangle height="22px" className="header" />
|
||||||
|
|
||||||
|
{portalRenaming && (
|
||||||
|
<Loaders.Rectangle height="80px" className="description" />
|
||||||
|
)}
|
||||||
|
|
||||||
|
<Loaders.Rectangle height="20px" className="title" />
|
||||||
|
<Loaders.Rectangle height="32px" className="combo-box" />
|
||||||
|
{lngTZSettings && (
|
||||||
|
<>
|
||||||
|
<Loaders.Rectangle height="20px" className="field-container" />
|
||||||
|
<Loaders.Rectangle height="20px" className="title-long" />
|
||||||
|
<Loaders.Rectangle height="32px" className="combo-box" />
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
<Loaders.Rectangle
|
||||||
|
height={heightSaveCancelButtons}
|
||||||
|
className="save-cancel-buttons"
|
||||||
|
/>
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderCustomization;
|
@ -0,0 +1,44 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
.title-long {
|
||||||
|
width: 283px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.width {
|
||||||
|
width: 100%;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.link {
|
||||||
|
width: 57px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: block;
|
||||||
|
width: 132px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderCustomizationNavbar = () => {
|
||||||
|
return (
|
||||||
|
<StyledLoader>
|
||||||
|
<Loaders.Rectangle height="22px" className="title-long" />
|
||||||
|
<Loaders.Rectangle height="100px" className="width" />
|
||||||
|
<Loaders.Rectangle height="20px" className="link" />
|
||||||
|
|
||||||
|
<Loaders.Rectangle height="22px" className="title" />
|
||||||
|
<Loaders.Rectangle height="80px" className="width" />
|
||||||
|
|
||||||
|
<Loaders.Rectangle height="22px" className="title" />
|
||||||
|
<Loaders.Rectangle height="20px" className="width" />
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderCustomizationNavbar;
|
@ -0,0 +1,38 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled, { css } from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
|
const tabletStyles = css`
|
||||||
|
.description {
|
||||||
|
width: 684px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
@media (min-width: 600px) {
|
||||||
|
${tabletStyles}
|
||||||
|
}
|
||||||
|
|
||||||
|
${isTablet &&
|
||||||
|
css`
|
||||||
|
${tabletStyles}
|
||||||
|
`}
|
||||||
|
|
||||||
|
@media (min-width: 1024px) {
|
||||||
|
.description {
|
||||||
|
width: 700px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderDescriptionCustomization = () => {
|
||||||
|
return (
|
||||||
|
<StyledLoader>
|
||||||
|
<Loaders.Rectangle height="40px" className="description" />
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderDescriptionCustomization;
|
@ -1,15 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
import styled from "styled-components";
|
|
||||||
import Loaders from "@appserver/common/components/Loaders";
|
|
||||||
|
|
||||||
const StyledLoader = styled.div``;
|
|
||||||
|
|
||||||
const LoaderLngTZSettings = () => {
|
|
||||||
return (
|
|
||||||
<StyledLoader>
|
|
||||||
<Loaders.Rectangle />
|
|
||||||
</StyledLoader>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default LoaderLngTZSettings;
|
|
@ -0,0 +1,32 @@
|
|||||||
|
import React from "react";
|
||||||
|
import styled from "styled-components";
|
||||||
|
import Loaders from "@appserver/common/components/Loaders";
|
||||||
|
import { isTablet } from "react-device-detect";
|
||||||
|
|
||||||
|
const StyledLoader = styled.div`
|
||||||
|
margin-top: -4px;
|
||||||
|
|
||||||
|
.loader {
|
||||||
|
padding-right: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 600px) {
|
||||||
|
margin-top: -9px;
|
||||||
|
}
|
||||||
|
|
||||||
|
${isTablet &&
|
||||||
|
css`
|
||||||
|
margin-top: -9px;
|
||||||
|
`}
|
||||||
|
`;
|
||||||
|
|
||||||
|
const LoaderSubmenu = () => {
|
||||||
|
return (
|
||||||
|
<StyledLoader>
|
||||||
|
<Loaders.Rectangle width="100px" height="28px" className="loader" />
|
||||||
|
<Loaders.Rectangle width="100px" height="28px" />
|
||||||
|
</StyledLoader>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LoaderSubmenu;
|
@ -308,7 +308,6 @@ class WhiteLabel extends React.Component {
|
|||||||
<Loader className="pageLoader" type="rombs" size="40px" />
|
<Loader className="pageLoader" type="rombs" size="40px" />
|
||||||
) : (
|
) : (
|
||||||
<>
|
<>
|
||||||
В разработке
|
|
||||||
<StyledComponent>
|
<StyledComponent>
|
||||||
<div className="settings-block">
|
<div className="settings-block">
|
||||||
<Text fontSize="16px">{t("LogoSettings")}</Text>
|
<Text fontSize="16px">{t("LogoSettings")}</Text>
|
||||||
|
@ -85,34 +85,6 @@ export const StyledMobileCategoryWrapper = styled.div`
|
|||||||
|
|
||||||
StyledMobileCategoryWrapper.defaultProps = { theme: Base };
|
StyledMobileCategoryWrapper.defaultProps = { theme: Base };
|
||||||
|
|
||||||
export const ButtonsWrapper = styled.div`
|
|
||||||
display: flex;
|
|
||||||
flex-direction: row;
|
|
||||||
gap: 8px;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 24px;
|
|
||||||
|
|
||||||
@media (max-width: 600px) {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 16px;
|
|
||||||
width: calc(100vw - 84px);
|
|
||||||
|
|
||||||
.button {
|
|
||||||
height: 40px;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.reminder {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 48px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 430px) {
|
|
||||||
width: calc(100vw - 32px);
|
|
||||||
}
|
|
||||||
`;
|
|
||||||
|
|
||||||
export const LearnMoreWrapper = styled.div`
|
export const LearnMoreWrapper = styled.div`
|
||||||
display: none;
|
display: none;
|
||||||
|
|
||||||
|
@ -8,10 +8,10 @@ import Text from "@appserver/components/text";
|
|||||||
import Link from "@appserver/components/link";
|
import Link from "@appserver/components/link";
|
||||||
import toastr from "@appserver/components/toast/toastr";
|
import toastr from "@appserver/components/toast/toastr";
|
||||||
import { getLanguage } from "@appserver/common/utils";
|
import { getLanguage } from "@appserver/common/utils";
|
||||||
import Buttons from "../sub-components/buttons";
|
|
||||||
import { LearnMoreWrapper } from "../StyledSecurity";
|
import { LearnMoreWrapper } from "../StyledSecurity";
|
||||||
import { size } from "@appserver/components/utils/device";
|
import { size } from "@appserver/components/utils/device";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
|
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||||
|
|
||||||
const MainContainer = styled.div`
|
const MainContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -19,6 +19,10 @@ const MainContainer = styled.div`
|
|||||||
.page-subtitle {
|
.page-subtitle {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.box {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const AdminMessage = (props) => {
|
const AdminMessage = (props) => {
|
||||||
@ -133,11 +137,16 @@ const AdminMessage = (props) => {
|
|||||||
onClick={onSelectType}
|
onClick={onSelectType}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Buttons
|
<SaveCancelButtons
|
||||||
t={t}
|
className="save-cancel-buttons"
|
||||||
showReminder={showReminder}
|
|
||||||
onSaveClick={onSaveClick}
|
onSaveClick={onSaveClick}
|
||||||
onCancelClick={onCancelClick}
|
onCancelClick={onCancelClick}
|
||||||
|
showReminder={showReminder}
|
||||||
|
reminderTest={t("YouHaveUnsavedChanges")}
|
||||||
|
saveButtonLabel={t("Common:SaveButton")}
|
||||||
|
cancelButtonLabel={t("Common:CancelButton")}
|
||||||
|
displaySettings={true}
|
||||||
|
hasScroll={false}
|
||||||
/>
|
/>
|
||||||
</MainContainer>
|
</MainContainer>
|
||||||
);
|
);
|
||||||
|
@ -8,10 +8,10 @@ import RadioButtonGroup from "@appserver/components/radio-button-group";
|
|||||||
import toastr from "@appserver/components/toast/toastr";
|
import toastr from "@appserver/components/toast/toastr";
|
||||||
import { LearnMoreWrapper } from "../StyledSecurity";
|
import { LearnMoreWrapper } from "../StyledSecurity";
|
||||||
import UserFields from "../sub-components/user-fields";
|
import UserFields from "../sub-components/user-fields";
|
||||||
import Buttons from "../sub-components/buttons";
|
|
||||||
import { size } from "@appserver/components/utils/device";
|
import { size } from "@appserver/components/utils/device";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
import isEqual from "lodash/isEqual";
|
import isEqual from "lodash/isEqual";
|
||||||
|
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||||
|
|
||||||
const MainContainer = styled.div`
|
const MainContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -31,19 +31,23 @@ const MainContainer = styled.div`
|
|||||||
.warning-text {
|
.warning-text {
|
||||||
margin-bottom: 9px;
|
margin-bottom: 9px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.save-cancel-buttons {
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const IpSecurity = (props) => {
|
const IpSecurity = (props) => {
|
||||||
const {
|
const {
|
||||||
t,
|
t,
|
||||||
history,
|
history,
|
||||||
ipRestrictionEnabled,
|
ipRestrictionEnable,
|
||||||
setIpRestrictionsEnable,
|
setIpRestrictionsEnable,
|
||||||
ipRestrictions,
|
ipRestrictions,
|
||||||
setIpRestrictions,
|
setIpRestrictions,
|
||||||
} = props;
|
} = props;
|
||||||
|
|
||||||
const regexp = /(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))|((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/; //check ip valid
|
const regexp = /^(?!0)(?!.*\.$)((1?\d?\d|25[0-5]|2[0-4]\d)(\.|$)){4}$/; //check ip valid
|
||||||
|
|
||||||
const [enable, setEnable] = useState(false);
|
const [enable, setEnable] = useState(false);
|
||||||
const [ips, setIps] = useState();
|
const [ips, setIps] = useState();
|
||||||
@ -58,7 +62,7 @@ const IpSecurity = (props) => {
|
|||||||
saveToSessionStorage("defaultIPSettings", defaultSettings);
|
saveToSessionStorage("defaultIPSettings", defaultSettings);
|
||||||
} else {
|
} else {
|
||||||
const defaultData = {
|
const defaultData = {
|
||||||
enable: ipRestrictionEnabled,
|
enable: ipRestrictionEnable,
|
||||||
ips: ipRestrictions,
|
ips: ipRestrictions,
|
||||||
};
|
};
|
||||||
saveToSessionStorage("defaultIPSettings", defaultData);
|
saveToSessionStorage("defaultIPSettings", defaultData);
|
||||||
@ -68,7 +72,7 @@ const IpSecurity = (props) => {
|
|||||||
setEnable(currentSettings.enable);
|
setEnable(currentSettings.enable);
|
||||||
setIps(currentSettings.ips);
|
setIps(currentSettings.ips);
|
||||||
} else {
|
} else {
|
||||||
setEnable(ipRestrictionEnabled);
|
setEnable(ipRestrictionEnable);
|
||||||
setIps(ipRestrictions);
|
setIps(ipRestrictions);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,14 +129,15 @@ const IpSecurity = (props) => {
|
|||||||
setIps([...ips, ""]);
|
setIps([...ips, ""]);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onSaveClick = () => {
|
const onSaveClick = async () => {
|
||||||
const valid = ips.map((ip) => regexp.test(ip));
|
const valid = ips.map((ip) => regexp.test(ip));
|
||||||
if (valid.includes(false)) {
|
if (valid.includes(false)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
setIpRestrictions(ips);
|
try {
|
||||||
setIpRestrictionsEnable(enable);
|
await setIpRestrictions(ips);
|
||||||
|
await setIpRestrictionsEnable(enable);
|
||||||
|
|
||||||
saveToSessionStorage("defaultIPSettings", {
|
saveToSessionStorage("defaultIPSettings", {
|
||||||
enable: enable,
|
enable: enable,
|
||||||
@ -140,6 +145,9 @@ const IpSecurity = (props) => {
|
|||||||
});
|
});
|
||||||
setShowReminder(false);
|
setShowReminder(false);
|
||||||
toastr.success(t("SuccessfullySaveSettingsMessage"));
|
toastr.success(t("SuccessfullySaveSettingsMessage"));
|
||||||
|
} catch (error) {
|
||||||
|
toastr.error(error);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const onCancelClick = () => {
|
const onCancelClick = () => {
|
||||||
@ -188,6 +196,8 @@ const IpSecurity = (props) => {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{enable && (
|
||||||
|
<>
|
||||||
<Text
|
<Text
|
||||||
color="#F21C0E"
|
color="#F21C0E"
|
||||||
fontSize="16px"
|
fontSize="16px"
|
||||||
@ -197,12 +207,19 @@ const IpSecurity = (props) => {
|
|||||||
{t("Common:Warning")}!
|
{t("Common:Warning")}!
|
||||||
</Text>
|
</Text>
|
||||||
<Text>{t("IPSecurityWarningHelper")}</Text>
|
<Text>{t("IPSecurityWarningHelper")}</Text>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
|
|
||||||
<Buttons
|
<SaveCancelButtons
|
||||||
t={t}
|
className="save-cancel-buttons"
|
||||||
showReminder={showReminder}
|
|
||||||
onSaveClick={onSaveClick}
|
onSaveClick={onSaveClick}
|
||||||
onCancelClick={onCancelClick}
|
onCancelClick={onCancelClick}
|
||||||
|
showReminder={showReminder}
|
||||||
|
reminderTest={t("YouHaveUnsavedChanges")}
|
||||||
|
saveButtonLabel={t("Common:SaveButton")}
|
||||||
|
cancelButtonLabel={t("Common:CancelButton")}
|
||||||
|
displaySettings={true}
|
||||||
|
hasScroll={false}
|
||||||
/>
|
/>
|
||||||
</MainContainer>
|
</MainContainer>
|
||||||
);
|
);
|
||||||
@ -210,14 +227,14 @@ const IpSecurity = (props) => {
|
|||||||
|
|
||||||
export default inject(({ auth }) => {
|
export default inject(({ auth }) => {
|
||||||
const {
|
const {
|
||||||
ipRestrictionEnabled,
|
ipRestrictionEnable,
|
||||||
setIpRestrictionsEnable,
|
setIpRestrictionsEnable,
|
||||||
ipRestrictions,
|
ipRestrictions,
|
||||||
setIpRestrictions,
|
setIpRestrictions,
|
||||||
} = auth.settingsStore;
|
} = auth.settingsStore;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
ipRestrictionEnabled,
|
ipRestrictionEnable,
|
||||||
setIpRestrictionsEnable,
|
setIpRestrictionsEnable,
|
||||||
ipRestrictions,
|
ipRestrictions,
|
||||||
setIpRestrictions,
|
setIpRestrictions,
|
||||||
|
@ -11,10 +11,10 @@ import Checkbox from "@appserver/components/checkbox";
|
|||||||
import { getLanguage } from "@appserver/common/utils";
|
import { getLanguage } from "@appserver/common/utils";
|
||||||
import { LearnMoreWrapper } from "../StyledSecurity";
|
import { LearnMoreWrapper } from "../StyledSecurity";
|
||||||
import toastr from "@appserver/components/toast/toastr";
|
import toastr from "@appserver/components/toast/toastr";
|
||||||
import Buttons from "../sub-components/buttons";
|
|
||||||
import { size } from "@appserver/components/utils/device";
|
import { size } from "@appserver/components/utils/device";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
import isEqual from "lodash/isEqual";
|
import isEqual from "lodash/isEqual";
|
||||||
|
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||||
|
|
||||||
const MainContainer = styled.div`
|
const MainContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -30,6 +30,7 @@ const MainContainer = styled.div`
|
|||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: 8px;
|
gap: 8px;
|
||||||
margin-top: 18px;
|
margin-top: 18px;
|
||||||
|
margin-bottom: 24px;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@ -216,11 +217,16 @@ const PasswordStrength = (props) => {
|
|||||||
/>
|
/>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Buttons
|
<SaveCancelButtons
|
||||||
t={t}
|
className="save-cancel-buttons"
|
||||||
showReminder={showReminder}
|
|
||||||
onSaveClick={onSaveClick}
|
onSaveClick={onSaveClick}
|
||||||
onCancelClick={onCancelClick}
|
onCancelClick={onCancelClick}
|
||||||
|
showReminder={showReminder}
|
||||||
|
reminderTest={t("YouHaveUnsavedChanges")}
|
||||||
|
saveButtonLabel={t("Common:SaveButton")}
|
||||||
|
cancelButtonLabel={t("Common:CancelButton")}
|
||||||
|
displaySettings={true}
|
||||||
|
hasScroll={false}
|
||||||
/>
|
/>
|
||||||
</MainContainer>
|
</MainContainer>
|
||||||
);
|
);
|
||||||
|
@ -8,13 +8,17 @@ import Text from "@appserver/components/text";
|
|||||||
import Link from "@appserver/components/link";
|
import Link from "@appserver/components/link";
|
||||||
import toastr from "@appserver/components/toast/toastr";
|
import toastr from "@appserver/components/toast/toastr";
|
||||||
import { getLanguage } from "@appserver/common/utils";
|
import { getLanguage } from "@appserver/common/utils";
|
||||||
import Buttons from "../sub-components/buttons";
|
|
||||||
import { LearnMoreWrapper } from "../StyledSecurity";
|
import { LearnMoreWrapper } from "../StyledSecurity";
|
||||||
import { size } from "@appserver/components/utils/device";
|
import { size } from "@appserver/components/utils/device";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
|
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||||
|
|
||||||
const MainContainer = styled.div`
|
const MainContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
.box {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const TwoFactorAuth = (props) => {
|
const TwoFactorAuth = (props) => {
|
||||||
@ -145,11 +149,16 @@ const TwoFactorAuth = (props) => {
|
|||||||
onClick={onSelectTfaType}
|
onClick={onSelectTfaType}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<Buttons
|
<SaveCancelButtons
|
||||||
t={t}
|
className="save-cancel-buttons"
|
||||||
showReminder={showReminder}
|
|
||||||
onSaveClick={onSaveClick}
|
onSaveClick={onSaveClick}
|
||||||
onCancelClick={onCancelClick}
|
onCancelClick={onCancelClick}
|
||||||
|
showReminder={showReminder}
|
||||||
|
reminderTest={t("YouHaveUnsavedChanges")}
|
||||||
|
saveButtonLabel={t("Common:SaveButton")}
|
||||||
|
cancelButtonLabel={t("Common:CancelButton")}
|
||||||
|
displaySettings={true}
|
||||||
|
hasScroll={false}
|
||||||
/>
|
/>
|
||||||
</MainContainer>
|
</MainContainer>
|
||||||
);
|
);
|
||||||
|
@ -10,24 +10,20 @@ import { LearnMoreWrapper } from "../StyledSecurity";
|
|||||||
import { getLanguage } from "@appserver/common/utils";
|
import { getLanguage } from "@appserver/common/utils";
|
||||||
import toastr from "@appserver/components/toast/toastr";
|
import toastr from "@appserver/components/toast/toastr";
|
||||||
import UserFields from "../sub-components/user-fields";
|
import UserFields from "../sub-components/user-fields";
|
||||||
import Buttons from "../sub-components/buttons";
|
|
||||||
import { size } from "@appserver/components/utils/device";
|
import { size } from "@appserver/components/utils/device";
|
||||||
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
import { saveToSessionStorage, getFromSessionStorage } from "../../../utils";
|
||||||
import isEqual from "lodash/isEqual";
|
import isEqual from "lodash/isEqual";
|
||||||
|
import SaveCancelButtons from "@appserver/components/save-cancel-buttons";
|
||||||
|
|
||||||
const MainContainer = styled.div`
|
const MainContainer = styled.div`
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
.user-fields {
|
|
||||||
margin-bottom: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.box {
|
.box {
|
||||||
margin-bottom: 11px;
|
margin-bottom: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.warning-text {
|
.save-cancel-buttons {
|
||||||
margin-bottom: 9px;
|
margin-top: 24px;
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
@ -45,9 +41,10 @@ const TrustedMail = (props) => {
|
|||||||
const [type, setType] = useState("0");
|
const [type, setType] = useState("0");
|
||||||
const [domains, setDomains] = useState([]);
|
const [domains, setDomains] = useState([]);
|
||||||
const [showReminder, setShowReminder] = useState(false);
|
const [showReminder, setShowReminder] = useState(false);
|
||||||
|
const [isSaving, setIsSaving] = useState(false);
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
|
|
||||||
const getSettings = async () => {
|
const getSettings = () => {
|
||||||
const currentSettings = getFromSessionStorage("currentTrustedMailSettings");
|
const currentSettings = getFromSessionStorage("currentTrustedMailSettings");
|
||||||
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
|
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
|
||||||
|
|
||||||
@ -68,7 +65,6 @@ const TrustedMail = (props) => {
|
|||||||
setType(String(trustedDomainsType));
|
setType(String(trustedDomainsType));
|
||||||
setDomains(trustedDomains);
|
setDomains(trustedDomains);
|
||||||
}
|
}
|
||||||
|
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -81,7 +77,6 @@ const TrustedMail = (props) => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isLoading) return;
|
if (!isLoading) return;
|
||||||
|
|
||||||
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
|
const defaultSettings = getFromSessionStorage("defaultTrustedMailSettings");
|
||||||
const newSettings = {
|
const newSettings = {
|
||||||
type: type,
|
type: type,
|
||||||
@ -124,25 +119,33 @@ const TrustedMail = (props) => {
|
|||||||
setDomains(newInputs);
|
setDomains(newInputs);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onSaveClick = () => {
|
const onSaveClick = async () => {
|
||||||
|
setIsSaving(true);
|
||||||
const valid = domains.map((domain) => regexp.test(domain));
|
const valid = domains.map((domain) => regexp.test(domain));
|
||||||
if (type === "1" && valid.includes(false)) {
|
if (type === "1" && valid.includes(false)) {
|
||||||
|
setIsSaving(false);
|
||||||
toastr.error(t("Common:IncorrectDomain"));
|
toastr.error(t("Common:IncorrectDomain"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
const data = {
|
const data = {
|
||||||
type: Number(type),
|
type: Number(type),
|
||||||
domains: domains,
|
domains: domains,
|
||||||
inviteUsersAsVisitors: true,
|
inviteUsersAsVisitors: true,
|
||||||
};
|
};
|
||||||
setMailDomainSettings(data);
|
await setMailDomainSettings(data);
|
||||||
saveToSessionStorage("defaultTrustedMailSettings", {
|
saveToSessionStorage("defaultTrustedMailSettings", {
|
||||||
type: type,
|
type: type,
|
||||||
domains: domains,
|
domains: domains,
|
||||||
});
|
});
|
||||||
setShowReminder(false);
|
setShowReminder(false);
|
||||||
toastr.success(t("SuccessfullySaveSettingsMessage"));
|
toastr.success(t("SuccessfullySaveSettingsMessage"));
|
||||||
|
} catch (error) {
|
||||||
|
toastr.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
setIsSaving(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
const onCancelClick = () => {
|
const onCancelClick = () => {
|
||||||
@ -194,7 +197,6 @@ const TrustedMail = (props) => {
|
|||||||
|
|
||||||
{type === "1" && (
|
{type === "1" && (
|
||||||
<UserFields
|
<UserFields
|
||||||
className="user-fields"
|
|
||||||
inputs={domains}
|
inputs={domains}
|
||||||
buttonLabel={t("AddTrustedDomain")}
|
buttonLabel={t("AddTrustedDomain")}
|
||||||
onChangeInput={onChangeInput}
|
onChangeInput={onChangeInput}
|
||||||
@ -204,11 +206,16 @@ const TrustedMail = (props) => {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
<Buttons
|
<SaveCancelButtons
|
||||||
t={t}
|
className="save-cancel-buttons"
|
||||||
showReminder={showReminder}
|
|
||||||
onSaveClick={onSaveClick}
|
onSaveClick={onSaveClick}
|
||||||
onCancelClick={onCancelClick}
|
onCancelClick={onCancelClick}
|
||||||
|
showReminder={showReminder}
|
||||||
|
reminderTest={t("YouHaveUnsavedChanges")}
|
||||||
|
saveButtonLabel={t("Common:SaveButton")}
|
||||||
|
cancelButtonLabel={t("Common:CancelButton")}
|
||||||
|
displaySettings={true}
|
||||||
|
hasScroll={false}
|
||||||
/>
|
/>
|
||||||
</MainContainer>
|
</MainContainer>
|
||||||
);
|
);
|
||||||
|
@ -2,6 +2,7 @@ import React, { useEffect, useState } from "react";
|
|||||||
import Submenu from "@appserver/components/submenu";
|
import Submenu from "@appserver/components/submenu";
|
||||||
import { withRouter } from "react-router";
|
import { withRouter } from "react-router";
|
||||||
import { withTranslation } from "react-i18next";
|
import { withTranslation } from "react-i18next";
|
||||||
|
import { inject, observer } from "mobx-react";
|
||||||
import { AppServerConfig } from "@appserver/common/constants";
|
import { AppServerConfig } from "@appserver/common/constants";
|
||||||
import { combineUrl } from "@appserver/common/utils";
|
import { combineUrl } from "@appserver/common/utils";
|
||||||
import config from "../../../../../../package.json";
|
import config from "../../../../../../package.json";
|
||||||
@ -11,7 +12,7 @@ import AccessPortal from "./access-portal/index.js";
|
|||||||
import AppLoader from "@appserver/common/components/AppLoader";
|
import AppLoader from "@appserver/common/components/AppLoader";
|
||||||
|
|
||||||
const SecurityWrapper = (props) => {
|
const SecurityWrapper = (props) => {
|
||||||
const { t, history } = props;
|
const { t, history, loadBaseInfo } = props;
|
||||||
const [currentTab, setCurrentTab] = useState(0);
|
const [currentTab, setCurrentTab] = useState(0);
|
||||||
const [isLoading, setIsLoading] = useState(false);
|
const [isLoading, setIsLoading] = useState(false);
|
||||||
|
|
||||||
@ -28,11 +29,16 @@ const SecurityWrapper = (props) => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
useEffect(() => {
|
const load = async () => {
|
||||||
|
await loadBaseInfo();
|
||||||
const path = location.pathname;
|
const path = location.pathname;
|
||||||
const currentTab = data.findIndex((item) => path.includes(item.id));
|
const currentTab = data.findIndex((item) => path.includes(item.id));
|
||||||
if (currentTab !== -1) setCurrentTab(currentTab);
|
if (currentTab !== -1) setCurrentTab(currentTab);
|
||||||
setIsLoading(true);
|
setIsLoading(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
load();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const onSelect = (e) => {
|
const onSelect = (e) => {
|
||||||
@ -55,4 +61,12 @@ const SecurityWrapper = (props) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default withTranslation("Settings")(withRouter(SecurityWrapper));
|
export default inject(({ setup }) => {
|
||||||
|
const { initSettings } = setup;
|
||||||
|
|
||||||
|
return {
|
||||||
|
loadBaseInfo: async () => {
|
||||||
|
await initSettings();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
})(withTranslation("Settings")(withRouter(observer(SecurityWrapper))));
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
import Button from "@appserver/components/button";
|
|
||||||
import Text from "@appserver/components/text";
|
|
||||||
import { ButtonsWrapper } from "../StyledSecurity";
|
|
||||||
|
|
||||||
const Buttons = (props) => {
|
|
||||||
const { t, showReminder, onSaveClick, onCancelClick } = props;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<ButtonsWrapper>
|
|
||||||
<Button
|
|
||||||
label={t("Common:SaveButton")}
|
|
||||||
size="small"
|
|
||||||
primary={true}
|
|
||||||
className="button"
|
|
||||||
onClick={onSaveClick}
|
|
||||||
isDisabled={!showReminder}
|
|
||||||
/>
|
|
||||||
<Button
|
|
||||||
label={t("Common:CancelButton")}
|
|
||||||
size="small"
|
|
||||||
className="button"
|
|
||||||
onClick={onCancelClick}
|
|
||||||
isDisabled={!showReminder}
|
|
||||||
/>
|
|
||||||
{showReminder && (
|
|
||||||
<Text
|
|
||||||
color="#A3A9AE"
|
|
||||||
fontSize="12px"
|
|
||||||
fontWeight="600"
|
|
||||||
className="reminder"
|
|
||||||
>
|
|
||||||
{t("YouHaveUnsavedChanges")}
|
|
||||||
</Text>
|
|
||||||
)}
|
|
||||||
</ButtonsWrapper>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default Buttons;
|
|
@ -27,7 +27,11 @@ const StyledInputWrapper = styled.div`
|
|||||||
gap: 10px;
|
gap: 10px;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 8px;
|
margin-bottom: 8px;
|
||||||
width: 370px;
|
width: 350px;
|
||||||
|
|
||||||
|
@media (max-width: 375px) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
const StyledAddWrapper = styled.div`
|
const StyledAddWrapper = styled.div`
|
||||||
|
@ -2,12 +2,18 @@ import api from "@appserver/common/api";
|
|||||||
import { makeAutoObservable } from "mobx";
|
import { makeAutoObservable } from "mobx";
|
||||||
const { Filter } = api;
|
const { Filter } = api;
|
||||||
import SelectionStore from "./SelectionStore";
|
import SelectionStore from "./SelectionStore";
|
||||||
|
import authStore from "@appserver/common/store/AuthStore";
|
||||||
import { combineUrl } from "@appserver/common/utils";
|
import { combineUrl } from "@appserver/common/utils";
|
||||||
import { AppServerConfig } from "@appserver/common/constants";
|
import { AppServerConfig } from "@appserver/common/constants";
|
||||||
import config from "../../package.json";
|
import config from "../../package.json";
|
||||||
|
|
||||||
class SettingsSetupStore {
|
class SettingsSetupStore {
|
||||||
selectionStore = null;
|
selectionStore = null;
|
||||||
|
authStore = null;
|
||||||
|
|
||||||
|
isLoadingArticleSettings = false;
|
||||||
|
|
||||||
|
isInit = false;
|
||||||
|
|
||||||
common = {
|
common = {
|
||||||
whiteLabel: {
|
whiteLabel: {
|
||||||
@ -45,9 +51,22 @@ class SettingsSetupStore {
|
|||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.selectionStore = new SelectionStore(this);
|
this.selectionStore = new SelectionStore(this);
|
||||||
|
this.authStore = authStore;
|
||||||
makeAutoObservable(this);
|
makeAutoObservable(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initSettings = async () => {
|
||||||
|
if (this.isInit) return;
|
||||||
|
this.isInit = true;
|
||||||
|
|
||||||
|
if (authStore.isAuthenticated) {
|
||||||
|
await authStore.settingsStore.getPortalPasswordSettings();
|
||||||
|
await authStore.tfaStore.getTfaType();
|
||||||
|
await authStore.settingsStore.getIpRestrictionsEnable();
|
||||||
|
await authStore.settingsStore.getIpRestrictions();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
setIsLoading = (isLoading) => {
|
setIsLoading = (isLoading) => {
|
||||||
this.security.accessRight.isLoading = isLoading;
|
this.security.accessRight.isLoading = isLoading;
|
||||||
};
|
};
|
||||||
@ -302,6 +321,10 @@ class SettingsSetupStore {
|
|||||||
|
|
||||||
this.setCommonThirdPartyList(res);
|
this.setCommonThirdPartyList(res);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setIsLoadingArticleSettings = (isLoading) => {
|
||||||
|
this.isLoadingArticleSettings = isLoading;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export default SettingsSetupStore;
|
export default SettingsSetupStore;
|
||||||
|
@ -802,6 +802,7 @@ Scenario("Trusted mail settings change test success", async ({ I }) => {
|
|||||||
I.mockEndpoint(Endpoints.info, "infoSettings");
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
||||||
I.mockEndpoint(Endpoints.self, "selfSettings");
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
||||||
I.mockEndpoint(Endpoints.common, "common");
|
I.mockEndpoint(Endpoints.common, "common");
|
||||||
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettings");
|
||||||
|
|
||||||
if (deviceType === "mobile") {
|
if (deviceType === "mobile") {
|
||||||
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
||||||
@ -834,6 +835,7 @@ Scenario("Trusted mail settings change test error", async ({ I }) => {
|
|||||||
I.mockEndpoint(Endpoints.info, "infoSettings");
|
I.mockEndpoint(Endpoints.info, "infoSettings");
|
||||||
I.mockEndpoint(Endpoints.self, "selfSettings");
|
I.mockEndpoint(Endpoints.self, "selfSettings");
|
||||||
I.mockEndpoint(Endpoints.common, "common");
|
I.mockEndpoint(Endpoints.common, "common");
|
||||||
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettings");
|
||||||
|
|
||||||
if (deviceType === "mobile") {
|
if (deviceType === "mobile") {
|
||||||
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
||||||
@ -859,3 +861,36 @@ Scenario("Trusted mail settings change test error", async ({ I }) => {
|
|||||||
I.see("Incorrect domain");
|
I.see("Incorrect domain");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Scenario("Trusted mail settings change test server error", async ({ I }) => {
|
||||||
|
I.mockEndpoint(Endpoints.settings, "settings");
|
||||||
|
I.mockEndpoint(Endpoints.build, "build");
|
||||||
|
I.mockEndpoint(Endpoints.info, "info");
|
||||||
|
I.mockEndpoint(Endpoints.self, "self");
|
||||||
|
I.mockEndpoint(Endpoints.common, "common");
|
||||||
|
I.mockEndpoint(Endpoints.maildomainsettings, "maildomainsettingsError");
|
||||||
|
|
||||||
|
if (deviceType === "mobile") {
|
||||||
|
I.amOnPage("/settings/security/access-portal/trusted-mail");
|
||||||
|
|
||||||
|
I.see("Trusted mail domain settings");
|
||||||
|
|
||||||
|
I.click({
|
||||||
|
react: "Checkbox",
|
||||||
|
props: {
|
||||||
|
value: "1",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
I.see("You have unsaved changes");
|
||||||
|
I.click("Add trusted domain");
|
||||||
|
|
||||||
|
I.see({ react: "TextInput" });
|
||||||
|
I.fillField("#domain-input-0", "test");
|
||||||
|
|
||||||
|
I.click("Save");
|
||||||
|
|
||||||
|
I.see("You have unsaved changes");
|
||||||
|
I.see("Request failed with status code 400");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@ -135,4 +135,10 @@ module.exports = class Endpoints {
|
|||||||
method: "PUT",
|
method: "PUT",
|
||||||
baseDir: "settings",
|
baseDir: "settings",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static maildomainsettings = {
|
||||||
|
url: ["http://localhost:8092/api/2.0/settings/maildomainsettings.json"],
|
||||||
|
method: "POST",
|
||||||
|
baseDir: "settings",
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"count": 1,
|
||||||
|
"response": "Settings have been successfully updated",
|
||||||
|
"status": 0,
|
||||||
|
"statusCode": 200
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"count": 1,
|
||||||
|
"response": "Error",
|
||||||
|
"status": 0,
|
||||||
|
"statusCode": 400
|
||||||
|
}
|
@ -36,6 +36,7 @@ using ASC.Core;
|
|||||||
using ASC.Core.Common.Settings;
|
using ASC.Core.Common.Settings;
|
||||||
using ASC.Core.Tenants;
|
using ASC.Core.Tenants;
|
||||||
using ASC.Core.Users;
|
using ASC.Core.Users;
|
||||||
|
using ASC.IPSecurity;
|
||||||
using ASC.MessagingSystem;
|
using ASC.MessagingSystem;
|
||||||
using ASC.Web.Core.PublicResources;
|
using ASC.Web.Core.PublicResources;
|
||||||
using ASC.Web.Core.Utility;
|
using ASC.Web.Core.Utility;
|
||||||
@ -259,7 +260,9 @@ namespace ASC.Web.Core.Users
|
|||||||
email = (email ?? "").Trim();
|
email = (email ?? "").Trim();
|
||||||
if (!email.TestEmailRegex()) throw new ArgumentNullException(nameof(email), Resource.ErrorNotCorrectEmail);
|
if (!email.TestEmailRegex()) throw new ArgumentNullException(nameof(email), Resource.ErrorNotCorrectEmail);
|
||||||
|
|
||||||
if (!IPSecurity.Verify())
|
var settings = SettingsManager.Load<IPRestrictionsSettings>();
|
||||||
|
|
||||||
|
if (settings.Enable && !IPSecurity.Verify())
|
||||||
{
|
{
|
||||||
throw new Exception(Resource.ErrorAccessRestricted);
|
throw new Exception(Resource.ErrorAccessRestricted);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user