import QtQuick 2.1 import QtQuick.Controls 2.3 as QQC2 import org.kde.kirigami 2.10 as Kirigami import Qt.labs.settings 1.0 import "qrc:js/functions.js" as ManifoldJS Kirigami.ScrollablePage { title: "Maniphest Tasks" //Kirigami.Theme.colorSet: Kirigami.Theme.Complementary supportsRefreshing: true // Completely don't understand how to do this in pure QML / JavaScript yet, alas Settings { id: settings property string phab_url: "https://phabricator.example.com" property string api_token: "api-aaaaaaaaaaaaaaaaaaaaaaaaaaaa" } property var phab_url: settings.phab_url //Page contents... ListView { id: taskList model: ListModel { id: model} anchors.fill: parent delegate: Kirigami.SwipeListItem { id: myDelegate //label: "T" + taskID + ": " + title + " | " + status + " | " + priorityName QQC2.Label { text: "T" + taskID + ": " + title } actions: [ Kirigami.Action { //iconName: "internet-web-browser" //iconSource: "qrc:/org/kde/kirigami/icons/internet-web-browser.svg" iconSource: "qrc:/org/kde/kirigami/icons/go-next.svg" // Weirdly stuck in black and white outline, so //iconColor: transparent onTriggered: Qt.openUrlExternally(settings.phab_url + "/T" + taskID) } ] } Component.onCompleted: { // Set some stuff Qt.application.name = "Manifold" Qt.application.domain = "keithzg.ca" Qt.application.organization = "keithzg" console.log("Phab url is " + settings.phab_url); var xhr = new XMLHttpRequest; xhr.open("POST", settings.phab_url + "/api/maniphest.search"); xhr.onreadystatechange = function() { if (xhr.readyState === XMLHttpRequest.DONE) { var data = JSON.parse(xhr.responseText); model.clear(); var list = data["result"]["data"]; for (var i in list) { model.append({ taskID: list[i]["id"], title: list[i]["fields"]["name"], priorityColor: list[i]["fields"]["priority"]["color"], priorityName: list[i]["fields"]["priority"]["name"], status: list[i]["fields"]["status"]["name"], }); } } } xhr.send("api.token="+settings.api_token+"&order=order-priority&queryKey=open"); } } }