2022-08-02 18:37:27 +00:00
import QtQuick 2.12
import QtQuick . Controls 2.3
import StatusQ . Core 0.1
import StatusQ . Core . Theme 0.1
import StatusQ . Components 0.1
import StatusQ . Controls 0.1
import StatusQ . Controls . Validators 0.1
import StatusQ . Popups 0.1
import utils 1.0
StatusModal {
id: popup
anchors.centerIn: parent
height: 560
2023-05-31 20:58:23 +00:00
padding: 8
2022-08-02 18:37:27 +00:00
header.title: qsTr ( "Waku nodes" )
property var messagingStore
property var advancedStore
onClosed: {
destroy ( )
}
onOpened: {
nameInput . text = "" ;
enodeInput . text = "" ;
}
2023-05-31 20:58:23 +00:00
StatusScrollView {
id: scrollView
anchors.fill: parent
contentWidth: availableWidth
2022-08-02 18:37:27 +00:00
Column {
id: nodesColumn
2023-05-31 20:58:23 +00:00
width: scrollView . availableWidth
2022-08-02 18:37:27 +00:00
StatusInput {
id: nameInput
2023-05-31 20:58:23 +00:00
width: parent . width
2022-08-02 18:37:27 +00:00
label: qsTr ( "Name" )
placeholderText: qsTr ( "Specify a name" )
validators: [ StatusMinLengthValidator {
minLength: 1
errorMessage: qsTr ( "You need to enter a name" )
} ]
validationMode: StatusInput . ValidationMode . Always
}
StatusInput {
id: enodeInput
2023-05-31 20:58:23 +00:00
width: parent . width
2022-08-02 18:37:27 +00:00
label: popup . advancedStore . isWakuV2 ? qsTr ( "Storenode multiaddress" ) : qsTr ( "History node address" )
placeholderText: popup . advancedStore . isWakuV2 ? "/ip4/0.0.0.0/tcp/123/..." : "enode://{enode-id}:{password}@{ip-address}:{port-number}"
validators: [
StatusMinLengthValidator {
minLength: 1
errorMessage: popup . advancedStore . isWakuV2 ? qsTr ( "You need to enter the storenode multiaddress" ) : qsTr ( "You need to enter the enode address" )
} ,
StatusRegularExpressionValidator {
errorMessage: popup . advancedStore . isWakuV2 ? qsTr ( 'Multiaddress must start with a "/"' ) : qsTr ( "The format must be: enode://{enode-id}:{password}@{ip-address}:{port}" )
regularExpression: popup . advancedStore . isWakuV2 ? /\/.+/ : /enode:\/\/[a-z0-9]+:[a-z0-9]+@(\b25[0-5]|\b2[0-4][0-9]|\b[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}:[0-9]+/
} ]
validationMode: StatusInput . ValidationMode . Always
}
}
}
rightButtons: [
StatusButton {
text: qsTr ( "Save" )
enabled: nameInput . valid && enodeInput . valid
// enabled: nameInput.text !== "" && enodeInput.text !== ""
onClicked: {
root . messagingStore . saveNewMailserver ( nameInput . text , enodeInput . text )
popup . close ( )
}
}
]
}