some experiments around therems, a request to update asset

This commit is contained in:
Blue 2024-04-07 17:07:52 -03:00
parent 374551d2bb
commit aa815a5bd7
Signed by: blue
GPG key ID: 9B203B252A63EE38
14 changed files with 229 additions and 59 deletions

View file

@ -9,7 +9,11 @@ import magpie
import magpie.Components as Components
Item {
signal add
signal add()
signal edit(id: int)
signal remove(id: int)
id: item
ColumnLayout {
id: column
@ -33,6 +37,9 @@ Item {
delegate: Components.AssetLine {
height: 30
width: listView.width
onRemove: id => item.remove(id)
onEdit: id => item.edit(id)
}
}
}

View file

@ -6,7 +6,9 @@ import QtQuick.Controls
import QtQuick.Layouts
Item {
signal addAsset
signal addAsset()
signal removeAsset(id: int)
signal editAsset(id: int)
property string currentPage: "home"
RowLayout {
@ -71,6 +73,8 @@ Item {
Assets {
StackView.onActivating: currentPage = "assets"
onAdd: addAsset()
onRemove: id => removeAsset(id)
onEdit: id => editAsset(id)
}
}

View file

@ -19,6 +19,23 @@ Item {
id: main
Main {
onAddAsset: stack.push(addAssetForm);
onEditAsset: function(id) {
const asset = Magpie.assets.getAssetByID(id);
stack.push(editAssetForm, {
name: asset.title,
icon: asset.icon,
color: asset.color,
currency: asset.currencyID,
assetID: asset.assetID,
title: qsTr("Editing asset") + " " + asset.title
});
}
onRemoveAsset: function(id) {
API.deleteAsset(id, function(err) {
if (err)
Magpie.displayError("Error deleting asset " + Magpie.assets.getAssetByID(id).title + ": " + err);
});
}
}
}
@ -53,6 +70,40 @@ Item {
}
}
Component {
id: editAssetForm
Forms.Asset {
required property int assetID
onCancel: stack.pop()
onConfirm: function (title, icon, color, currency) {
if (modal.inProgress)
return;
modal.inProgress = true;
modal.status = qsTr("Updating asset ") + " " + Magpie.assets.getAssetByID(assetID).title + "...";
modal.open();
API.updateAsset(assetID, title, icon, color, currency, function (err, result) {
if (!modal.inProgress)
return;
modal.inProgress = false;
if (err)
modal.status = err;
else
modal.status = qsTr("Success");
if (!!result) {
modal.close();
stack.pop()
}
});
}
}
}
Connections {
target: Magpie
function onDisplayError (err) {