diff --git a/Gui/AddObjectEmployee.qml b/Gui/AddObjectEmployee.qml index f78a74d..52a68e6 100644 --- a/Gui/AddObjectEmployee.qml +++ b/Gui/AddObjectEmployee.qml @@ -3,7 +3,7 @@ import QtQuick.Layouts import QtQuick.Controls ApplicationWindow { - id: addmitarbeiter + id: addMitarbeiter title: qsTr("Objekt - Neuer Mitarbeiter") ColumnLayout @@ -31,6 +31,7 @@ ApplicationWindow } TextField { + id: assignee Layout.fillWidth: true } Label @@ -40,6 +41,7 @@ ApplicationWindow } TextField { + id: wage Layout.fillWidth: true } Label @@ -49,6 +51,7 @@ ApplicationWindow } TextField { + id: duration Layout.fillWidth: true } Label @@ -58,6 +61,7 @@ ApplicationWindow } TextField { + id: cleanDays Layout.fillWidth: true } Label @@ -67,6 +71,7 @@ ApplicationWindow } TextField { + id: tasks Layout.fillWidth: true } Label @@ -76,6 +81,7 @@ ApplicationWindow } TextField { + id: output Layout.fillWidth: true } } @@ -90,11 +96,30 @@ ApplicationWindow Button { text: qsTr("Abbrechen") + onClicked: addMitarbeiter.close() } Button { text: qsTr("Hinzufügen") + onClicked: + { + if (assignee.text.trim() !== "" && duration.text.trim() !== "" && wage.text.trim() !== "" && cleanDays.text.trim() !== "" && tasks.text.trim() !== "" && output.text.trim() !== "") + { + var ne = { + "assignee": assignee.text.trim(), + "duration": duration.text.trim(), + "wage": wage.text.trim(), + "cleandays": cleanDays.text.trim(), + "tasks": tasks.text.trim(), + "output": output.text.trim(), + }; + addMitarbeiter.addNewEmployee(ne) + addMitarbeiter.close() + } + } } } } + + signal addNewEmployee(var new_employee) } diff --git a/Gui/ObjectAddOnContactPerson.qml b/Gui/ObjectAddOnContactPerson.qml index 4f4ab07..17f0dd2 100644 --- a/Gui/ObjectAddOnContactPerson.qml +++ b/Gui/ObjectAddOnContactPerson.qml @@ -4,6 +4,7 @@ import QtQuick.Controls GridLayout { + property var contacts: null columns: 2 CheckBox @@ -11,14 +12,6 @@ GridLayout id: contactperson text: qsTr("Ansprechpartner") Layout.columnSpan: 2 - onCheckStateChanged: - { - title.enabled = contactperson.checked - firstname.enabled = contactperson.checked - lastname.enabled = contactperson.checked - phonenumber.enabled = contactperson.checked - posizion.enabled = contactperson.checked - } } Label { @@ -30,7 +23,7 @@ GridLayout id: title model: [qsTr("Herr"),qsTr("Frau")] Layout.fillWidth: true - enabled: false + enabled: contactperson.checked } Label { @@ -43,7 +36,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" - enabled: false + enabled: contactperson.checked } Label { @@ -56,7 +49,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" - enabled: false + enabled: contactperson.checked } Label { @@ -69,7 +62,7 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" - enabled: false + enabled: contactperson.checked } Label { @@ -82,8 +75,147 @@ GridLayout Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" - enabled: false + enabled: contactperson.checked } + RowLayout + { + Layout.fillWidth: true + Layout.columnSpan: 2 + + Item + { + Layout.fillWidth: true + } + + Button + { + id: removeContact + text: qsTr("Entfernen") + enabled: contactperson.checked + } + + Button + { + id: addContact + text: qsTr("Hinzufügen") + enabled: contactperson.checked + onClicked: + { + var num_contacts = 0 + if (contacts !== null && contacts !== undefined) num_contacts = Object.keys(contacts).length + else contacts = {} + if (num_contacts < 3 && firstname.text.trim() !== "" && lastname.text.trim() !== "" && phonenumber.text.trim() !== "" && posizion.text.trim() !== "") + { + contacts[num_contacts] = {} + contacts[num_contacts]["title"] = title.currentText + contacts[num_contacts]["fname"] = firstname.text.trim() + contacts[num_contacts]["lname"] = lastname.text.trim() + contacts[num_contacts]["phone"] = phonenumber.text.trim() + contacts[num_contacts]["position"] = posizion.text.trim() + + contactModel.append({name: title.currentText + " " + firstname.text.trim() + " " + lastname.text.trim(), phone: phonenumber.text.trim(), posizion: posizion.text.trim()}) + + firstname.text = "" + lastname.text = "" + phonenumber.text = "" + posizion.text = "" + } + } + } + } + + Label + { + text: qsTr("Ansprechpartner") + Layout.alignment: Qt.AlignRight | Qt.AlignTop + } + + ListModel + { + id: contactModel + } + + Component + { + id: headline + Row + { + Text + { + id: cpname + text: qsTr("Name") + width: 175 + font.bold: true + horizontalAlignment: Text.AlignLeft + color: "black" + } + + Text + { + id: cpphone + text: qsTr("Telefon") + width: 100 + font.bold: true + horizontalAlignment: Text.AlignLeft + color: "black" + } + + Text + { + id: cppos + text: qsTr("Position") + width: 150 + font.bold: true + horizontalAlignment: Text.AlignLeft + color: "black" + } + } + } + + Rectangle + { + Layout.fillWidth: true + implicitHeight: 100 + color: firstname.palette.base + border.color: firstname.activeFocus? firstname.palette.highlight: firstname.palette.base + ListView + { + id: contactView + implicitHeight: parent.height + model: contactModel + + header: headline + + delegate: Item + { + width: parent.width + height: 15 + + Row + { + //spacing: 9 + Text + { + text: model.name + width: 175 + horizontalAlignment: Text.AlignLeft + } + Text + { + text: model.phone + width: 100 + horizontalAlignment: Text.AlignLeft + } + Text + { + text: model.posizion + width: 150 + horizontalAlignment: Text.AlignLeft + } + } + } + } + } } diff --git a/Gui/ObjectAddOnEmployee.qml b/Gui/ObjectAddOnEmployee.qml index 28660d4..990dd7f 100644 --- a/Gui/ObjectAddOnEmployee.qml +++ b/Gui/ObjectAddOnEmployee.qml @@ -4,50 +4,125 @@ import QtQuick.Controls GridLayout { + property var employeeForm: null + property var employees: null id: oaoemployee columns: 2 rows: 4 Label { text: qsTr("Mitarbeiter") + Layout.alignment: Qt.AlignRight | Qt.AlignTop } - ScrollView - { - Layout.rowSpan: 3 - Layout.fillWidth: true - TextArea + ListModel + { + id: employeeModel + } + + Component + { + id: employeesHeader + Row { - id: mitarbeitertext - implicitWidth: parent.width - implicitHeight: 100 - wrapMode: TextEdit.Wrap - background: Rectangle + Text { - color: mitarbeiterhin.palette.base - border.color: mitarbeiterhin.activeFocus? mitarbeiterhin.palette.highlight: mitarbeiterhin.palette.base + id: empName + text: qsTr("Mitarbeiter") + width: 175 + font.bold: true + horizontalAlignment: Text.AlignHCenter + color: "yellow" } } } - Button + + Rectangle + { + Layout.fillWidth: true + implicitHeight: 75 + Layout.rowSpan: 2 + color: mitarbeiterhin.palette.base + border.color: mitarbeiterhin.activeFocus? mitarbeiterhin.palette.highlight: mitarbeiterhin.palette.base + ListView + { + id: employeesList + //anchors.fill: parent + implicitHeight: parent.height + + model: employeeModel + + header: employeesHeader + + delegate: Row + { + width: 200 + height: 15 + padding: 7 + Text + { + text: model.namens + color: "yellow" + } + } + + } + } + RowLayout { - id: mitarbeiterhin - property var neuermitarbeiter: undefined - text: qsTr("Mitarbeiter hinzufügen") Layout.columnSpan: 2 Layout.fillWidth: true - Layout.alignment: Qt.AlignRight - Layout.maximumWidth: mitarbeitertext.width - onClicked: + Item { - var nm = Qt.createComponent("AddObjectEmployee.qml") - if (nm.status === Component.Ready) + Layout.fillWidth: true + } + + Button + { + id: mitarbeiterraus + text: qsTr("Mitarbeiter entfernen") + } + + Button + { + id: mitarbeiterhin + text: qsTr("Mitarbeiter hinzufügen") + onClicked: { - neuermitarbeiter = nm.createObject (appWindow, {width: 600, height: 400}) - neuermitarbeiter.show() + var nm = Qt.createComponent("AddObjectEmployee.qml") + if (nm.status === Component.Ready) + { + employeeForm = nm.createObject (appWindow, {width: 600, height: 400}) + employeeForm.addNewEmployee.connect(onAddEmployee) + employeeForm.show() + } + else console.log(nm.errorString()) } } } + + function onAddEmployee(new_employee) + { + var num_employees = 0 + + if (employees === null || employees === undefined) employees = {} + else num_employees = Object.keys(employees).length; + + employees[num_employees] = {} + employees[num_employees]["assignee"] = new_employee["assignee"]; + employees[num_employees]["duration"] = new_employee["duration"]; + employees[num_employees]["wage"] = new_employee["wage"]; + employees[num_employees]["cleandays"] = new_employee["cleandays"]; + employees[num_employees]["tasks"] = new_employee["tasks"]; + employees[num_employees]["output"] = new_employee["output"]; + + employeeModel.append({namens: new_employee["assignee"]}); + + console.log(employeeModel.get(num_employees).namens) + + console.log(new_employee["assignee"]) + console.log(JSON.stringify(new_employee)) + } } diff --git a/Gui/ObjectView.qml b/Gui/ObjectView.qml index 1bb9a92..31bacd6 100644 --- a/Gui/ObjectView.qml +++ b/Gui/ObjectView.qml @@ -164,10 +164,8 @@ GridLayout { id: infoview Layout.fillWidth: true - Layout.preferredHeight: 200 - //Layout.columnSpan: 3 + Layout.preferredHeight: 110 ScrollBar.horizontal: ScrollBar - { policy: ScrollBar.AlwaysOn } @@ -176,9 +174,7 @@ GridLayout { id: objectInfo property string name: "objectinfo" - Layout.fillWidth: true - Layout.fillHeight: true - + implicitWidth: parent.width wrapMode: TextEdit.Wrap background: Rectangle { diff --git a/Gui/main.qml b/Gui/main.qml index 543f8d6..593cf2b 100644 --- a/Gui/main.qml +++ b/Gui/main.qml @@ -7,8 +7,8 @@ import QtCore ApplicationWindow { id: appWindow - width: Screen.width * .6 - height: Screen.height * .75 + width: Screen.width * .75 + height: Screen.height * .85 visible: true title: "PYQCRM" property string confile: ""