Merge branch 'main' of https://git.missing.ninja/LF2/Alisa
This commit is contained in:
commit
890cec0240
2 changed files with 64 additions and 21 deletions
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -104,30 +104,35 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
ScrollView {
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
clip: true
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
model: filteredApiDataModel // Use the filtered model
|
||||
|
||||
delegate: Rectangle {
|
||||
width: listView.width
|
||||
height: 50
|
||||
color: getColors().button
|
||||
ListView {
|
||||
id: listView
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
clip: true
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
model: filteredApiDataModel // Use the filtered model
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 10
|
||||
anchors.margins: 5
|
||||
delegate: Rectangle {
|
||||
width: listView.width
|
||||
height: 50
|
||||
color: getColors().button
|
||||
|
||||
Text { text: model.name; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.key; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.amount; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.start; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.end; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.group; color: getColors().text; Layout.fillWidth: true }
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 10
|
||||
anchors.margins: 5
|
||||
|
||||
Text { text: model.name; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.key; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.amount; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.start; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.end; color: getColors().text; Layout.fillWidth: true }
|
||||
Text { text: model.group; color: getColors().text; Layout.fillWidth: true }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue