// SPDX-FileCopyrightText: 2023 Yury Gubich // 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 text: "New Asset" } Label { text: qsTr("Icon") + ":"; } Components.IconPicker { id: iconField icon: "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.confirm() } } Components.Modal { id: modal } function confirm () { //TODO validation send(titleField.text, iconField.icon, colorField.text); } function send (title, icon, color) { if (modal.inProgress) return; titleField.text = title; iconField.icon = 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(); } }); } } }