From e398cbb1f77a5cb08c963665b961b35e432c92b2 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Thu, 11 Jul 2024 23:08:34 +0200 Subject: [PATCH] native: add group selector --- native/AddData.qml | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 2 deletions(-) diff --git a/native/AddData.qml b/native/AddData.qml index ffe9b2c..23de68f 100644 --- a/native/AddData.qml +++ b/native/AddData.qml @@ -22,6 +22,10 @@ Window { property string authToken: "" + ListModel { + id: groupsModel + } + TextField { id: nameT anchors { @@ -63,6 +67,18 @@ Window { text = text.replace(/[^0-9]/g, "") } + Keys.onReturnPressed: groupSelector.focus = true + } + + ComboBox { + id: groupSelector + anchors { + horizontalCenter: parent.horizontalCenter + topMargin: 5 + top: amountT.bottom + } + model: groupsModel + textRole: "name" Keys.onReturnPressed: submitB.focus = true } @@ -71,7 +87,7 @@ Window { anchors { horizontalCenter: parent.horizontalCenter topMargin: 5 - top: amountT.bottom + top: groupSelector.bottom } text: qsTr("Submit") @@ -96,9 +112,31 @@ Window { name: nameT.text, key: keyT.text, amount: parseInt(amountT.text), - group_id: "ff664d29-68c9-45c2-a6bc-8f378876c90d", + group_id: groupSelector.currentIndex !== -1 ? groupsModel.get(groupSelector.currentIndex).id : "", }); xhr.send(data); } + + function fetchGroups() { + var xhr = new XMLHttpRequest(); + xhr.open("GET", "https://api.clan-war.net/api/v1/licenses"); + xhr.setRequestHeader("Authorization", "Bearer " + authToken); + xhr.onreadystatechange = function() { + if (xhr.readyState === XMLHttpRequest.DONE) { + if (xhr.status === 200) { + var response = JSON.parse(xhr.responseText); + groupsModel.clear(); + for (var i = 0; i < response.length; i++) { + groupsModel.append(response[i]); + } + } else { + console.log("Failed to fetch groups: " + xhr.status); + } + } + } + xhr.send(); + } + + Component.onCompleted: fetchGroups() }