linphone-desktop/Linphone/view/Page/Layout/Settings/LdapSettingsLayout.qml
2025-03-20 17:45:52 +01:00

191 lines
6 KiB
QML

import QtCore
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls.Basic as Control
import QtQuick.Dialogs
import Linphone
import SettingsCpp 1.0
import UtilsCpp
import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle
AbstractSettingsLayout {
id: mainItem
width: parent?.width
contentModel: [
{
title: qsTr("settings_contacts_ldap_title"),
subTitle: qsTr("settings_contacts_ldap_subtitle"),
contentComponent: ldapParametersComponent
}
]
topbarOptionalComponent: topBar
property alias ldapGui: mainItem.model
property bool isNew: false
onSave: {
if (ldapGui.core.isValid()) {
ldapGui.core.save()
UtilsCpp.showInformationPopup(qsTr("information_popup_success_title"),
//: "L'annuaire LDAP a été sauvegardé"
qsTr("settings_contacts_ldap_success_toast"), true, mainWindow)
} else {
UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"),
//: "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !"
qsTr("settings_contacts_ldap_error_toast"), false, mainWindow)
}
}
Component {
id: topBar
RowLayout {
spacing: Math.round(20 * DefaultStyle.dp)
Button {
style: ButtonStyle.noBackground
icon.source: AppIcons.trashCan
icon.width: Math.round(32 * DefaultStyle.dp)
icon.height: Math.round(32 * DefaultStyle.dp)
visible: !isNew
onClicked: {
var mainWin = UtilsCpp.getMainWindow()
mainWin.showConfirmationLambdaPopup("",
//: "Supprimer l'annuaire LDAP ?"
qsTr("settings_contacts_ldap_delete_confirmation_message"),
"",
function (confirmed) {
if (confirmed) {
ldapGui.core.remove()
mainItem.container.pop()
}
}
)
}
}
}
}
Component {
id: ldapParametersComponent
ColumnLayout {
Layout.fillWidth: true
spacing: Math.round(20 * DefaultStyle.dp)
Layout.rightMargin: Math.round(44 * DefaultStyle.dp)
Layout.topMargin: Math.round(20 * DefaultStyle.dp)
Layout.leftMargin: Math.round(64 * DefaultStyle.dp)
DecoratedTextField {
id: server
propertyName: "serverUrl"
propertyOwnerGui: ldapGui
//: "URL du serveur (ne peut être vide)"
title: qsTr("settings_contacts_ldap_server_url_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "bindDn"
propertyOwnerGui: ldapGui
//: "Bind DN"
title: qsTr("settings_contacts_ldap_bind_dn_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "password"
hidden: true
propertyOwnerGui: ldapGui
//: "Mot de passe"
title: qsTr("settings_contacts_ldap_password_title")
toValidate: true
Layout.fillWidth: true
}
SwitchSetting {
//: "Utiliser TLS"
titleText: qsTr("settings_contacts_ldap_use_tls_title")
propertyName: "tls"
propertyOwnerGui: ldapGui
}
DecoratedTextField {
propertyName: "baseObject"
propertyOwnerGui: ldapGui
//: "Base de recherche (ne peut être vide)"
title: qsTr("settings_contacts_ldap_search_base_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "filter"
propertyOwnerGui: ldapGui
//: "Filtre"
title: qsTr("settings_contacts_ldap_search_filter_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "limit"
propertyOwnerGui: ldapGui
validator: RegularExpressionValidator { regularExpression: /[0-9]+/ }
//: "Nombre maximum de résultats"
title: qsTr("settings_contacts_ldap_max_results_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "delay"
propertyOwnerGui: ldapGui
validator: RegularExpressionValidator { regularExpression: /[0-9]+/ }
//: "Délai entre 2 requêtes (en millisecondes)"
title: qsTr("settings_contacts_ldap_request_delay_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "timeout"
propertyOwnerGui: ldapGui
//: "Durée maximun (en secondes)"
title: qsTr("settings_contacts_ldap_request_timeout_title")
validator: RegularExpressionValidator { regularExpression: /[0-9]+/ }
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "minCharacters"
propertyOwnerGui: ldapGui
//: "Nombre minimum de caractères pour la requête"
title: qsTr("settings_contacts_ldap_min_characters_title")
validator: RegularExpressionValidator { regularExpression: /[0-9]+/ }
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "nameAttribute"
propertyOwnerGui: ldapGui
//: "Attributs de nom"
title: qsTr("settings_contacts_ldap_name_attributes_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "sipAttribute"
propertyOwnerGui: ldapGui
//: "Attributs SIP"
title: qsTr("settings_contacts_ldap_sip_attributes_title")
toValidate: true
Layout.fillWidth: true
}
DecoratedTextField {
propertyName: "sipDomain"
propertyOwnerGui: ldapGui
//: "Domaine SIP"
title: qsTr("settings_contacts_ldap_sip_domain_title")
toValidate: true
Layout.fillWidth: true
}
SwitchSetting {
//: "Débogage"
titleText: qsTr("settings_contacts_ldap_debug_title")
propertyName: "debug"
propertyOwnerGui: ldapGui
}
}
}
}