Files
pyqcrm/Gui/AddObject.qml

144 lines
3.4 KiB
QML

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Controls.Fusion
import QtQuick.Dialogs
import "../js/qmldict.js" as JsLib
ColumnLayout
{
property var new_object: null
property alias checkAddContact: checkAddContact
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 15
Label
{
text: qsTr("Objekt anlegen")
horizontalAlignment: Text.AlignHCenter
Layout.fillWidth: true
font.pixelSize: 35
}
CheckBox
{
id: checkAddContact
text: qsTr("Ansprechpartner hinzufügen")
Layout.alignment: Qt.AlignRight
checked: false
onCheckStateChanged:
{
checkFields()
}
}
RowLayout
{
id: addObject
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 45
Frame
{
Layout.alignment: Qt.AlignTop
Layout.fillWidth: true
AddNewObject
{
id: newObject
width: parent.width
}
}
ObjectAddOns
{
id: addObjectLayout
visible: checkAddContact.checked
}
}
RowLayout
{
Layout.fillHeight: true
Layout.alignment: Qt.AlignRight
Button
{
text: qsTr("Abbrechen")
onClicked: appLoader.source = "ObjectTable.qml"
}
Button
{
property var new_object: null
id: saveBtn
text: qsTr("Speichern")
enabled: false
onClicked:
{
new_object = JsLib.parseForm(newObject)
new_object['lift'] = new_object['lift'] === 'Ja' ? 1 : 0
new_object['mezzanin'] = new_object['mezzanin'] === 'Ja' ? 1 : 0
object_model.addObject(new_object)
}
}
}
Item
{
id: spacer3
Layout.fillHeight: true
}
Component.onCompleted:
{
object_model.objectAdded.connect(onObjectAdded)
contact_model.objectContactAdded.connect(onObjectContact)
}
// Connections
// {
// target: spacer3
// function onObjectIdReady()
// {
// var obj_id = arguments[0]
// object_model.addObject(new_object, obj_id)
// appLoader.source = "ObjectTable.qml"
// }
// }
function onObjectAdded(added, oid)
{
if (!added)
console.log(qsTr("Fehler beim Objekt-Anlegen!"))
if (checkAddContact.checked && oid)
{
var new_objecto = addObjectLayout.getForm()
contact_model.addObjectContact(new_objecto, oid)
}
else appLoader.source = "ObjectTable.qml"
}
function onObjectContact(added)
{
if (!added)
console.log(qsTr("Fehler beim Objekt-Kontakt-Anlegen!"))
else
{
//object_model.viewCriterion("Alle")
appLoader.source = "ObjectTable.qml"
}
}
function checkFields()
{
if(checkAddContact.checked)
{
if(!newObject.checkObjectField() || !addObjectLayout.contactPerson.contacts || !addObjectLayout.contactPerson.contacts.length)
saveBtn.enabled = false
else
saveBtn.enabled = true
}
else if (!newObject.checkObjectField())
saveBtn.enabled = false
else
saveBtn.enabled = true
}
}