142 lines
4.2 KiB
QML
142 lines
4.2 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import QtQuick.Controls
|
|
import Qt.labs.qmlmodels
|
|
|
|
ColumnLayout {
|
|
spacing: Dimensions.l
|
|
|
|
RowLayout {
|
|
Layout.fillWidth: true
|
|
spacing: Dimensions.l
|
|
|
|
SearchBar {
|
|
}
|
|
QuickFilter {
|
|
model: ListModel {
|
|
ListElement {
|
|
name: "Alle"
|
|
selected: true
|
|
text: qsTr("Alle")
|
|
}
|
|
ListElement {
|
|
name: "Bewerber"
|
|
selected: false
|
|
text: qsTr("Bewerber")
|
|
}
|
|
ListElement {
|
|
name: "Mitarbeiter"
|
|
selected: false
|
|
text: qsTr("Kunde")
|
|
}
|
|
ListElement {
|
|
name: "Erledigt"
|
|
selected: false
|
|
text: qsTr("Erledigt")
|
|
}
|
|
}
|
|
|
|
onSelectedChanged: name => {
|
|
employee_model.viewCriterion(name);
|
|
}
|
|
}
|
|
Button {
|
|
Layout.alignment: Qt.AlignRight
|
|
flat: true
|
|
icon.source: "qrc:/images/PlusCircle.svg"
|
|
text: qsTr("Bewerber Hinzufügen")
|
|
|
|
onClicked: contentStack.push("AddApplicant.qml")
|
|
}
|
|
Button {
|
|
Layout.alignment: Qt.AlignRight
|
|
flat: true
|
|
icon.source: "qrc:/images/PlusCircle.svg"
|
|
text: qsTr("Mitarbeiter Hinzufügen")
|
|
|
|
onClicked: contentStack.push("AddEmployee.qml")
|
|
}
|
|
}
|
|
ColumnLayout {
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
spacing: 2
|
|
|
|
HorizontalHeaderView {
|
|
movableColumns: true
|
|
syncView: employeesTable
|
|
|
|
delegate: Rectangle {
|
|
Layout.fillWidth: true
|
|
color: Colors.primary
|
|
implicitHeight: 33
|
|
implicitWidth: 1
|
|
|
|
Text {
|
|
color: Colors.primaryContrast
|
|
elide: Text.ElideRight
|
|
font: Typography.smallBold
|
|
height: parent.height
|
|
horizontalAlignment: Text.AlignLeft
|
|
padding: Dimensions.s
|
|
text: model.display
|
|
verticalAlignment: Text.AlignVCenter
|
|
width: parent.width
|
|
}
|
|
}
|
|
}
|
|
TableView {
|
|
id: employeesTable
|
|
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
columnSpacing: 2
|
|
model: employee_model
|
|
resizableColumns: true
|
|
rowSpacing: 2
|
|
selectionBehavior: TableView.SelectRows
|
|
z: 1
|
|
|
|
ScrollBar.vertical: ScrollBar {
|
|
policy: ScrollBar.AsNeeded
|
|
}
|
|
delegate: Rectangle {
|
|
required property bool selected
|
|
|
|
color: selected ? Colors.primaryHighlight : Colors.transparent
|
|
implicitHeight: 33
|
|
implicitWidth: employeesTable.width / employeesTable.columns
|
|
|
|
Text {
|
|
color: Colors.foreground
|
|
elide: Text.ElideRight
|
|
font: Typography.small
|
|
height: parent.height
|
|
padding: Dimensions.s
|
|
text: (model.display === null || model.display === undefined) ? "" : model.display
|
|
verticalAlignment: Text.AlignVCenter
|
|
width: parent.width
|
|
}
|
|
MouseArea {
|
|
anchors.fill: parent
|
|
cursorShape: Qt.PointingHandCursor
|
|
hoverEnabled: true
|
|
|
|
onClicked: {
|
|
contentStack.push("EmployeeDetails.qml", {
|
|
selectedEmployee: row
|
|
});
|
|
}
|
|
onEntered: {
|
|
employeesTable.selectionModel.select(employeesTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows);
|
|
}
|
|
}
|
|
}
|
|
selectionModel: ItemSelectionModel {
|
|
model: employeesTable.model
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|