429 lines
11 KiB
QML
429 lines
11 KiB
QML
import QtQuick
|
||
import QtQuick.Controls
|
||
import QtQuick.Layouts
|
||
|
||
GridLayout
|
||
{
|
||
id: personalData
|
||
columns: 4
|
||
|
||
Label
|
||
{
|
||
text: qsTr("Anrede")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
ComboBox
|
||
{
|
||
property string name: "title"
|
||
id: title
|
||
Layout.fillWidth: true
|
||
editable: false
|
||
Layout.columnSpan: 3
|
||
model: [qsTr("Keine Angabe"), qsTr("Herr"), qsTr("Frau")]
|
||
onCurrentTextChanged:
|
||
{
|
||
switch (title.currentIndex)
|
||
{
|
||
case 1:
|
||
briefAnrede.text = "Sehr geehrter Herr "
|
||
break
|
||
case 2:
|
||
briefAnrede.text = "Sehr geehrte Frau "
|
||
break
|
||
default:
|
||
briefAnrede.text = "Guten Tag "
|
||
}
|
||
}
|
||
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Vorname")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "firstname"
|
||
id: firstname
|
||
Layout.fillWidth: true
|
||
placeholderText: "Pflichtfeld"
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
Layout.columnSpan: 3
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Nachname")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "lastname"
|
||
id: lastname
|
||
Layout.fillWidth: true
|
||
placeholderText: "Pflichtfeld"
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
Layout.columnSpan: 3
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Straße")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "street"
|
||
id: street
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Nr.")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "houseno"
|
||
id: houseno
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /([0-9a-zA-Z\-]{1,6})/
|
||
}
|
||
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("PLZ")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
|
||
|
||
|
||
|
||
ComboBox
|
||
{
|
||
property string name: "postcode"
|
||
id: postcode
|
||
Layout.fillWidth: true
|
||
editable: true
|
||
onEditTextChanged: checkFields()
|
||
onCurrentTextChanged: checkFields()
|
||
onActivated: currentValue
|
||
model: address_model
|
||
textRole: "display"
|
||
popup.height: 300
|
||
popup.y: postcode.y + 5 - (postcode.height * 2)
|
||
currentIndex: -1
|
||
onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /([^$][0-9]{1,4})/
|
||
}
|
||
}
|
||
|
||
|
||
Label
|
||
{
|
||
text: qsTr("Ort")
|
||
Layout.alignment: Qt.AlignRight
|
||
|
||
}
|
||
ComboBox
|
||
{
|
||
property string name: "city"
|
||
id: city
|
||
Layout.fillWidth: true
|
||
editable: true
|
||
onEditTextChanged: checkFields()
|
||
onCurrentTextChanged: checkFields()
|
||
model: address_model
|
||
textRole: "city"
|
||
popup.height: 300
|
||
popup.y: postcode.y + 5 - (postcode.height * 2)
|
||
currentIndex: -1
|
||
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Geburtsname")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "birthname"
|
||
id: birthname
|
||
Layout.fillWidth: true
|
||
onTextChanged: checkFields()
|
||
Layout.columnSpan: 3
|
||
visible: radio.children[1].checked
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Geburtsdatum")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "birthday"
|
||
id: birthday
|
||
Layout.fillWidth: true
|
||
placeholderText: "Pflichtfeld"
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
Layout.columnSpan: 3
|
||
visible: radio.children[1].checked
|
||
validator: RegularExpressionValidator
|
||
|
||
{
|
||
regularExpression: /((^|)(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]))\.((^|)(0[1-9]{1}|1[0-2]{1}))\.((^|)(196[0-9]{1}|19[7-9]{1}[0-9]{1}|20[0-9]{2}))/
|
||
}
|
||
}
|
||
|
||
Label
|
||
{
|
||
text: qsTr("Geburtsort")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "placeofbirth"
|
||
id: placeofbirth
|
||
Layout.fillWidth: true
|
||
placeholderText: "Pflichtfeld"
|
||
placeholderTextColor: "red"
|
||
onTextChanged: checkFields()
|
||
Layout.columnSpan: 3
|
||
visible: radio.children[1].checked
|
||
}
|
||
|
||
Label
|
||
{
|
||
text: qsTr("Telefonnummer")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "phone"
|
||
id: phonenumber
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||
}
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Mobil")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "mobile"
|
||
id: cellphone
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||
}
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("E-Mail")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "email"
|
||
id: email
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~0-9A-Za-z]{1,185})@([0-9A-Za-z\.]{1,64})\.([a-zA-z]{2,5})/
|
||
}
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Familienstand")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
ComboBox
|
||
{
|
||
property string name: "maritalstatus"
|
||
id: maritalstatus
|
||
Layout.fillWidth: true
|
||
editable: false
|
||
model: [qsTr("ledig"), qsTr("verheiratet"), qsTr("verwitwet"), qsTr("geschieden")]
|
||
visible: radio.children[1].checked
|
||
Layout.columnSpan: 3
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Stundenlohn")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "salary"
|
||
id: salary
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Jobbeschreibung")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "jobdesc"
|
||
id: jobdescription
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Vertragsbeginn")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "contractstart"
|
||
id: contractstart
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /((^|)(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]))\.((^|)(0[1-9]{1}|1[0-2]{1}))\.((^|)(196[0-9]{1}|19[7-9]{1}[0-9]{1}|20[0-9]{2}))/
|
||
}
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Vertragsende")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "contractend"
|
||
id: contractend
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
validator: RegularExpressionValidator
|
||
{
|
||
regularExpression: /((^|)(0[1-9]{1}|[1-2]{1}[0-9]{1}|3[0-1]))\.((^|)(0[1-9]{1}|1[0-2]{1}))\.((^|)(196[0-9]{1}|19[7-9]{1}[0-9]{1}|20[0-9]{2}))/
|
||
}
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Arbeitszeiten Tage")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
ComboBox
|
||
{
|
||
property string name: "workdays"
|
||
id: workdays
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
model: ["1","2","3","4","5","6","7"]
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Stunden")
|
||
Layout.alignment: Qt.AlignRight
|
||
visible: radio.children[1].checked
|
||
}
|
||
ComboBox
|
||
{
|
||
property string name: "workhours"
|
||
id: workhours
|
||
Layout.fillWidth: true
|
||
visible: radio.children[1].checked
|
||
model: ["1","2","3","4","5","6","7","8"]
|
||
}
|
||
Label
|
||
{
|
||
text: qsTr("Briefanrede")
|
||
Layout.alignment: Qt.AlignRight
|
||
}
|
||
TextField
|
||
{
|
||
property string name: "formofaddress"
|
||
id: briefAnrede
|
||
Layout.fillWidth: true
|
||
placeholderTextColor: "red"
|
||
Layout.columnSpan: 3
|
||
onTextChanged: checkFields()
|
||
}
|
||
|
||
Item
|
||
{
|
||
Layout.fillHeight: true
|
||
Layout.columnSpan: 4
|
||
}
|
||
function checkPersonalField()
|
||
{
|
||
if (radio.children[0].checked)
|
||
{
|
||
return (firstname.text.trim() && lastname.text.trim())
|
||
}
|
||
else
|
||
{
|
||
return (firstname.text.trim() && lastname.text.trim() && street.text.trim() && houseno.text.trim()
|
||
&& (postcode.editText.trim() || postcode.currentText.trim())
|
||
&& (city.editText.trim() || city.currentText.trim())
|
||
&& birthday.text.trim() && phonenumber.text.trim()
|
||
&& cellphone.text.trim() && email.text.trim() && jobdescription.text.trim()
|
||
&& contractstart.text.trim() && contractend.text.trim() && briefAnrede.text.trim())
|
||
}
|
||
}
|
||
function requiredField()
|
||
{
|
||
var pf = (radio.children[1].checked)?"Pflichtfeld":""
|
||
street.placeholderText = pf
|
||
phonenumber.placeholderText = pf
|
||
cellphone.placeholderText = pf
|
||
email.placeholderText = pf
|
||
jobdescription.placeholderText = pf
|
||
contractstart.placeholderText = pf
|
||
contractend.placeholderText = pf
|
||
briefAnrede.placeholderText = pf
|
||
houseno.placeholderText = pf
|
||
}
|
||
}
|