Page MenuHomePhorge

ManiphestPage.qml
No OneTemporary

ManiphestPage.qml

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: "<font color=\"" + priorityColor + "\"><strong><a href='" + settings.phab_url + "/T" + taskID + "' >T" + taskID + ":</a></strong></font> " + 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");
}
}
}

File Metadata

Mime Type
text/html
Expires
Sun, Apr 27, 8:09 PM (1 d, 4 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
154022
Default Alt Text
ManiphestPage.qml (2 KB)

Event Timeline