magpie/qml/Forms/AddAsset.qml

107 lines
2.4 KiB
QML

// SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later
import QtQuick
import QtQuick.Controls
import magpie
import magpie.Components as Components
Item {
signal success
signal cancel
Column {
id: inner
spacing: 5
anchors.centerIn: parent
Label {
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("New asset")
font.pixelSize: 14
}
Grid {
anchors.horizontalCenter: parent.horizontalCenter
columns: 2
columnSpacing: 10
rowSpacing: 5
verticalItemAlignment: Grid.AlignVCenter
horizontalItemAlignment: Grid.AlignRight
Label {
text: qsTr("Title") + ":";
}
TextField {
id: titleField
}
Label {
text: qsTr("Icon") + ":";
}
TextField {
id: iconField
text: "list-add"
}
Label {
text: qsTr("Color") + ":";
}
TextField {
id: colorField
}
}
Row {
spacing: 5
anchors.horizontalCenter: parent.horizontalCenter
Button {
text: qsTr("Cancel")
onClicked: cancel()
}
Button {
text: qsTr("Create")
onClicked: inner.send(titleField.text, iconField.text, colorField.text)
}
}
Components.Modal {
id: modal
}
function send (title, icon, color) {
if (modal.inProgress)
return;
titleField.text = title;
iconField.text = icon;
colorField.text = color;
modal.inProgress = true;
modal.status = qsTr("Creating new asset ") + " " + title + "...";
modal.open();
API.addAsset(title, icon, "blue", function (err, result) {
if (!modal.inProgress)
return;
modal.inProgress = false;
if (err)
modal.status = err;
else
modal.status = qsTr("Success");
if (!!result) {
modal.close();
success();
}
});
}
}
}