107 lines
2.4 KiB
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.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")
|
||
|
onClicked: inner.send(titleField.text, titleField.text, colorField.text)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Components.Modal {
|
||
|
id: modal
|
||
|
}
|
||
|
|
||
|
function send (title, icon, color) {
|
||
|
if (modal.inProgress)
|
||
|
return;
|
||
|
|
||
|
titleField.text = title;
|
||
|
titleField.text = icon;
|
||
|
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();
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
}
|