2024-01-17 21:57:34 +00:00
|
|
|
// SPDX-FileCopyrightText: 2023 Yury Gubich <blue@macaw.me>
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
import QtQuick
|
|
|
|
import QtQuick.Controls
|
|
|
|
|
|
|
|
import magpie.API
|
|
|
|
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")
|
2024-01-18 22:14:33 +00:00
|
|
|
onClicked: inner.send(titleField.text, iconField.text, colorField.text)
|
2024-01-17 21:57:34 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
Components.Modal {
|
|
|
|
id: modal
|
|
|
|
}
|
|
|
|
|
|
|
|
function send (title, icon, color) {
|
|
|
|
if (modal.inProgress)
|
|
|
|
return;
|
|
|
|
|
|
|
|
titleField.text = title;
|
2024-01-18 22:14:33 +00:00
|
|
|
iconField.text = icon;
|
2024-01-17 21:57:34 +00:00
|
|
|
colorField.text = color;
|
|
|
|
|
|
|
|
modal.inProgress = true;
|
|
|
|
modal.status = qsTr("Creating new asset ") + " " + title + "...";
|
|
|
|
modal.open();
|
|
|
|
|
|
|
|
API.addAsset(title, icon, 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();
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|