mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-04-19 07:48:30 +00:00
346 lines
10 KiB
QML
346 lines
10 KiB
QML
import QtQuick 2.7
|
|
|
|
import Common 1.0
|
|
import Linphone 1.0
|
|
|
|
import App.Styles 1.0
|
|
|
|
// =============================================================================
|
|
|
|
DialogPlus {
|
|
id: dialog
|
|
|
|
property LdapModel ldapData
|
|
|
|
buttons: [
|
|
TextButtonA {
|
|
text: qsTr('cancel')
|
|
|
|
onClicked: {
|
|
ldapData.unset()
|
|
exit(0)}
|
|
},
|
|
TextButtonB {
|
|
enabled: ldapData.isValid
|
|
text: qsTr('confirm')
|
|
|
|
onClicked: {ldapData.save()
|
|
exit(1)
|
|
}
|
|
}
|
|
]
|
|
|
|
buttonsAlignment: Qt.AlignCenter
|
|
|
|
height: SettingsSipAccountsEditStyle.height
|
|
width: SettingsSipAccountsEditStyle.width
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
TabContainer {
|
|
anchors.fill: parent
|
|
|
|
Column {
|
|
width: parent.width
|
|
Form {
|
|
title: ''
|
|
width: parent.width
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('displayNameLabel')//'Display Name'
|
|
TextField {
|
|
id:displayName
|
|
placeholderText : (serverUrl.text?serverUrl.text:serverUrl.placeholderText)
|
|
text:ldapData.displayName
|
|
onTextChanged: Qt.callLater(function(){ldapData.displayName = text})
|
|
Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus()
|
|
Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
|
|
TooltipArea{
|
|
text : qsTr('displayNameTooltip')//'The display name of the server to be shown in the list'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Form {
|
|
title: qsTr('connectionTitle')//'Connection'
|
|
width: parent.width
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('serverLabel')+' *'//'Server URL *'
|
|
TextField {
|
|
id:serverUrl
|
|
placeholderText :"Server"
|
|
text:ldapData.server
|
|
onTextChanged: Qt.callLater(function(){ldapData.server = text})
|
|
Keys.onEnterPressed: nextItemInFocusChain().forceActiveFocus()
|
|
Keys.onReturnPressed: nextItemInFocusChain().forceActiveFocus()
|
|
error : ldapData.serverFieldError
|
|
TooltipArea{
|
|
text : qsTr('serverTooltip')//'LDAP Server. eg: ldap:/// for a localhost server or ldap://ldap.example.org/'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('bindDNLabel')+' *'//'Bind DN *'
|
|
|
|
TextField {
|
|
id: bindDn
|
|
placeholderText :"Bind DN"
|
|
text:ldapData.bindDn
|
|
error : ldapData.bindDnFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.bindDn= text})
|
|
TooltipArea{
|
|
text : qsTr('bindDNTooltip')//'The bind DN is the credential that is used to authenticate against an LDAP.\n eg: cn=ausername,ou=people,dc=bc,dc=com'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
id:passwordGroup
|
|
label: qsTr('passwordLabel')//'Password'
|
|
PasswordField {
|
|
id:password
|
|
text:ldapData.password
|
|
error : ldapData.passwordFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.password = text})
|
|
placeholderText :"Password"
|
|
}
|
|
}
|
|
}
|
|
FormLine {
|
|
id:useRow
|
|
width:passwordGroup.width
|
|
FormGroup {
|
|
label: qsTr('useTLSLabel')//'Use TLS'
|
|
Switch {
|
|
id: useTls
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
checked: ldapData.useTls
|
|
onClicked: {
|
|
ldapData.useTls = !checked
|
|
}
|
|
TooltipArea{
|
|
tooltipParent:useRow
|
|
text : qsTr('useTLSTooltip')//'Encrypt transactions by LDAP over TLS(StartTLS). You must use \'ldap\' scheme. \'ldaps\' for LDAP over SSL is non-standardized and deprecated.\nStartTLS in an extension to the LDAP protocol which uses the TLS protocol to encrypt communication. \nIt works by establishing a normal - i.e. unsecured - connection with the LDAP server before a handshake negotiation between the server and the web services is carried out. Here, the server sends its certificate to prove its identity before the secure connection is established.'
|
|
}
|
|
}
|
|
}
|
|
FormGroup {
|
|
label: qsTr('useSalLabel')//'Use Sal'
|
|
Switch {
|
|
id: useSal
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
checked: ldapData.useSal
|
|
onClicked: {
|
|
ldapData.useSal = !checked
|
|
}
|
|
TooltipArea{
|
|
tooltipParent:useRow
|
|
//: 'The dns resolution is done by %1 using Sal. It will pass an IP to LDAP. By doing that, the TLS negociation could not check the hostname. You may deactivate the verifications if wanted to force the connection.'
|
|
text : qsTr('useSalTooltip').arg(applicationName)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
FormLine{
|
|
id:useSalRow
|
|
|
|
FormGroup {
|
|
label: qsTr('verifyTLSLabel')//'Verify Certificates on TLS'
|
|
ComboBox {
|
|
id:verifyServerCertificates
|
|
currentIndex: ldapData.verifyServerCertificates+1
|
|
model: [qsTr('AutoMode'), qsTr('offMode'), qsTr('onMode')]
|
|
width: parent.width
|
|
|
|
onActivated: ldapData.verifyServerCertificates = index-1
|
|
TooltipArea{
|
|
text : qsTr('verifyTLSTooltip')//'Specify whether the tls server certificate must be verified when connecting to a LDAP server.'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
// NAT and Firewall.
|
|
// -----------------------------------------------------------------------
|
|
|
|
Form {
|
|
title: qsTr('searchTitle')//'Search'
|
|
width: parent.width
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('baseObjectLabel')+' *'//'Base Object *'
|
|
TextField {
|
|
id:baseObject
|
|
placeholderText :qsTr('baseObjectPlaceholder')//"Base Object"
|
|
text:ldapData.baseObject
|
|
error : ldapData.baseObjectFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.baseObject = text})
|
|
TooltipArea{
|
|
text : qsTr('baseObjectTooltip')//'BaseObject is a specification for LDAP Search Scopes that specifies that the Search Request should only be performed against the entry specified as the search base DN.\n\nNo entries below it will be considered.'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
id:filterGroup
|
|
label: qsTr('filterLabel')//'Filter'
|
|
TextField {
|
|
id:filter
|
|
text:ldapData.filter
|
|
error : ldapData.filterFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.filter = text})
|
|
placeholderText :"(sn=%s)"
|
|
TooltipArea{
|
|
text : qsTr('filterTooltip')//'The search is base on this filter to search friends. Default value : (sn=%s)'
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
FormLine {
|
|
id:connectionRow
|
|
width:filterGroup.width
|
|
FormGroup {
|
|
label: qsTr('maxResultsLabel')//'Max Results'
|
|
|
|
NumericField {
|
|
id:maxResults
|
|
text:ldapData.maxResults
|
|
error : ldapData.maxResultsFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.maxResults = text})
|
|
TooltipArea{
|
|
tooltipParent:connectionRow
|
|
text : qsTr('maxResultsTooltip')//'The max results when requesting searches'
|
|
}
|
|
}
|
|
}
|
|
FormGroup {
|
|
label: qsTr('timeoutLabel')
|
|
NumericField {
|
|
id:timeout
|
|
text:ldapData.timeout
|
|
error : ldapData.timeoutFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.timeout = text})
|
|
TooltipArea{
|
|
tooltipParent:connectionRow
|
|
text : qsTr('timeoutTooltip')//'The connection and search timeout in seconds. Default is 5'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
// -----------------------------------------------------------------------
|
|
// Parsing
|
|
// -----------------------------------------------------------------------
|
|
|
|
Form {
|
|
id:parsingForm
|
|
title: qsTr('parsingTitle')//'Parsing'
|
|
width: parent.width
|
|
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('nameAttributesLabel')//'Name Attributes'
|
|
TextField {
|
|
id:nameAttributes
|
|
placeholderText :'sn'
|
|
text:ldapData.nameAttributes
|
|
error : ldapData.nameAttributesFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.nameAttributes = text})
|
|
TooltipArea{
|
|
text : qsTr('nameAttributesTooltip')//'Check these attributes To build Name Friend, separated by a comma and the first is the highest priority. The default value is: sn'
|
|
tooltipParent: nameAttributes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('sipAttributesLabel')//'Sip Attributes'
|
|
TextField {
|
|
id:sipAttributes
|
|
placeholderText :'mobile,telephoneNumber,homePhone,sn'
|
|
text:ldapData.sipAttributes
|
|
error : ldapData.sipAttributesFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.sipAttributes = text})
|
|
TooltipArea{
|
|
text : qsTr('sipAttributesTooltip')//'Check these attributes to build the SIP username in address of Friend. Attributes are separated by a comma and the first is the highest priority. The default value is: mobile,telephoneNumber,homePhone,sn'
|
|
tooltipParent: sipAttributes
|
|
}
|
|
}
|
|
}
|
|
}
|
|
FormLine {
|
|
FormGroup {
|
|
label: qsTr('domainLabel')//'Domain'
|
|
TextField {
|
|
id:domain
|
|
placeholderText : AccountSettingsModel.defaultAccountDomain
|
|
text:ldapData.sipDomain
|
|
error : ldapData.sipDomainFieldError
|
|
onTextChanged: Qt.callLater(function(){ldapData.sipDomain = text})
|
|
TooltipArea{
|
|
//: 'Add the domain to the sip address(username@domain).' Tooltip to explain that this field is used to complete a result with this domain.
|
|
text : qsTr('domainTooltip')//
|
|
//tooltipParent: dialog
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// -----------------------------------------------------------------------
|
|
// Misc
|
|
// -----------------------------------------------------------------------
|
|
|
|
Form {
|
|
title: qsTr('miscLabel')//'Misc'
|
|
width: parent.width
|
|
|
|
FormLine {
|
|
id:miscLine
|
|
FormGroup {
|
|
label: qsTr('debugLabel')//'Debug'
|
|
Switch {
|
|
id: debugMode
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
checked: ldapData.debug
|
|
onClicked: {
|
|
ldapData.debug = !checked
|
|
}
|
|
TooltipArea{
|
|
tooltipParent:miscLine
|
|
//:'Get verbose logs in log file when doing transactions (useful to debug TLS connections)'
|
|
text : qsTr('debugTooltip')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|