From 9e7cf3ccd93eff6dadadb3efa46c3a5a7e5b967a Mon Sep 17 00:00:00 2001 From: "vladimir.kuznetsov" Date: Mon, 18 Sep 2023 16:39:26 +0500 Subject: [PATCH] added PageServiceDnsSettings --- client/resources.qrc | 1 + client/ui/controllers/pageController.h | 1 + .../Components/SettingsContainersListView.qml | 23 +++-- .../ui/qml/Pages2/PageServiceDnsSettings.qml | 95 +++++++++++++++++++ 4 files changed, 110 insertions(+), 10 deletions(-) create mode 100644 client/ui/qml/Pages2/PageServiceDnsSettings.qml diff --git a/client/resources.qrc b/client/resources.qrc index d0ff176f..5b919cf4 100644 --- a/client/resources.qrc +++ b/client/resources.qrc @@ -213,5 +213,6 @@ images/controls/trash.svg images/controls/more-vertical.svg ui/qml/Controls2/ListViewWithLabelsType.qml + ui/qml/Pages2/PageServiceDnsSettings.qml diff --git a/client/ui/controllers/pageController.h b/client/ui/controllers/pageController.h index 07e77283..508a9d58 100644 --- a/client/ui/controllers/pageController.h +++ b/client/ui/controllers/pageController.h @@ -32,6 +32,7 @@ namespace PageLoader PageServiceSftpSettings, PageServiceTorWebsiteSettings, + PageServiceDnsSettings, PageSetupWizardStart, PageSetupWizardCredentials, diff --git a/client/ui/qml/Components/SettingsContainersListView.qml b/client/ui/qml/Components/SettingsContainersListView.qml index a0c74a04..edd96bd7 100644 --- a/client/ui/qml/Components/SettingsContainersListView.qml +++ b/client/ui/qml/Components/SettingsContainersListView.qml @@ -43,10 +43,12 @@ ListView { var containerIndex = root.model.mapToSource(index) ContainersModel.setCurrentlyProcessedContainerIndex(containerIndex) - if (config[ContainerProps.containerTypeToString(containerIndex)]["isThirdPartyConfig"]) { - ProtocolsModel.updateModel(config) - PageController.goToPage(PageEnum.PageProtocolRaw) - return + if (serviceType !== ProtocolEnum.Other) { + if (config[ContainerProps.containerTypeToString(containerIndex)]["isThirdPartyConfig"]) { + ProtocolsModel.updateModel(config) + PageController.goToPage(PageEnum.PageProtocolRaw) + return + } } switch (containerIndex) { @@ -78,12 +80,13 @@ ListView { PageController.goToPage(PageEnum.PageServiceTorWebsiteSettings) break } - - default: { - if (serviceType !== ProtocolEnum.Other) { //todo disable settings for dns container - ProtocolsModel.updateModel(config) - PageController.goToPage(PageEnum.PageSettingsServerProtocol) - } + case ContainerEnum.Dns: { + PageController.goToPage(PageEnum.PageServiceDnsSettings) + break + } + default: { // go to the settings page of the container with multiple protocols + ProtocolsModel.updateModel(config) + PageController.goToPage(PageEnum.PageSettingsServerProtocol) } } diff --git a/client/ui/qml/Pages2/PageServiceDnsSettings.qml b/client/ui/qml/Pages2/PageServiceDnsSettings.qml new file mode 100644 index 00000000..016a7c88 --- /dev/null +++ b/client/ui/qml/Pages2/PageServiceDnsSettings.qml @@ -0,0 +1,95 @@ +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts + +import SortFilterProxyModel 0.2 + +import PageEnum 1.0 + +import "./" +import "../Controls2" +import "../Controls2/TextTypes" +import "../Config" +import "../Components" + +PageType { + id: root + + ColumnLayout { + id: backButton + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + + anchors.topMargin: 20 + + BackButtonType { + } + } + + FlickableType { + id: fl + anchors.top: backButton.bottom + anchors.bottom: parent.bottom + contentHeight: content.implicitHeight + + ColumnLayout { + id: content + + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + + HeaderType { + id: header + + Layout.fillWidth: true + Layout.rightMargin: 16 + Layout.leftMargin: 16 + + headerText: "Amnezia DNS" + descriptionText: qsTr("A DNS service is installed on your server, and it is only accessible via VPN.\n") + + qsTr("The DNS address is the same as the address of your server. You can configure DNS in the settings, under the connections tab.") + } + + LabelWithButtonType { + id: removeButton + + Layout.topMargin: 24 + width: parent.width + + text: qsTr("Remove ") + ContainersModel.getCurrentlyProcessedContainerName() + textColor: "#EB5757" + + clickedFunction: function() { + questionDrawer.headerText = qsTr("Remove ") + ContainersModel.getCurrentlyProcessedContainerName() + qsTr(" from server?") + questionDrawer.yesButtonText = qsTr("Continue") + questionDrawer.noButtonText = qsTr("Cancel") + + questionDrawer.yesButtonFunction = function() { + questionDrawer.visible = false + PageController.goToPage(PageEnum.PageDeinstalling) + InstallController.removeCurrentlyProcessedContainer() + } + questionDrawer.noButtonFunction = function() { + questionDrawer.visible = false + } + questionDrawer.visible = true + } + + MouseArea { + anchors.fill: removeButton + cursorShape: Qt.PointingHandCursor + enabled: false + } + } + + DividerType {} + + QuestionDrawer { + id: questionDrawer + } + } + } +}