56 lines
1.3 KiB
QML
56 lines
1.3 KiB
QML
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
||
|
|
||
|
import QtQuick 2.12
|
||
|
import QtQuick.Layouts 1.12
|
||
|
import "../../Base"
|
||
|
import "../../Base/Buttons"
|
||
|
|
||
|
SignInBase {
|
||
|
id: page
|
||
|
|
||
|
function takeFocus() { urlField.forceActiveFocus() }
|
||
|
|
||
|
function startSignIn() {
|
||
|
errorMessage.text = ""
|
||
|
|
||
|
page.loginFuture = py.callCoro("start_sso_auth", [serverUrl], url => {
|
||
|
urlField.text = url
|
||
|
urlField.cursorPosition = 0
|
||
|
|
||
|
Qt.openUrlExternally(url)
|
||
|
|
||
|
page.loginFuture = py.callCoro("continue_sso_auth", [], userId => {
|
||
|
page.loginFuture = null
|
||
|
page.finishSignIn(userId)
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
|
||
|
|
||
|
applyButton.text: qsTr("Waiting")
|
||
|
applyButton.loading: true
|
||
|
Component.onCompleted: page.startSignIn()
|
||
|
|
||
|
HLabel {
|
||
|
wrapMode: HLabel.Wrap
|
||
|
text: qsTr(
|
||
|
"Complete the single sign-on process in your web browser to " +
|
||
|
"continue.\n\n" +
|
||
|
"If no page appeared, you can also manually open this address:"
|
||
|
)
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
}
|
||
|
|
||
|
HTextArea {
|
||
|
id: urlField
|
||
|
width: parent.width
|
||
|
readOnly: true
|
||
|
radius: 0
|
||
|
wrapMode: HTextArea.WrapAnywhere
|
||
|
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
}
|
||
|
}
|