You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Station/www/cards/js/taskfloor_viewtasks.js

74 lines
3.3 KiB
JavaScript

/*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
function loadTaskCards() {
$(".card_taskfloor_viewtasks").each(function () {
var card = $(this);
if (!$(this).find(".card_title").text().startsWith("Tasks | ")) {
$(this).find(".card_title").prepend("Tasks | ");
}
var tasklist = $(this).find(".task-list");
var url = $(this).data("apiurl");
$.post(url, {
username: getuser(),
password: getAPIKey(),
action: "gettasks"
}, function (resp) {
if (resp.status == "OK") {
tasklist.html("");
var tasks = resp.tasks;
for (var i = 0; i < tasks.length; i++) {
var taskhtml =
'<div class="list-group-item task" data-taskid="' + tasks[i]['id'] + '">'
+ '<div class="d-flex w-100 justify-content-between">'
+ '<h5 class="mb-1"><i class="fas fa-' + tasks[i]['icon'] + ' fa-fw"></i> ' + tasks[i]['title'] + '</h5>'
+ '</div>'
+ '<p>' + tasks[i]['description'] + '</p>'
+ '<div class="btn-bin">';
if (tasks[i]['status'] == "0") {
taskhtml += '<div class="btn btn-primary status-btn bin-btn" data-status="start"><i class="fas fa-play"></i> Start</div>';
} else if (tasks[i]['status'] == "1") {
taskhtml += '<div class="btn btn-success status-btn bin-btn" data-status="finish"><i class="fas fa-stop"></i> Finish</div>';
taskhtml += '<div class="btn btn-warning status-btn bin-btn" data-status="pause"><i class="fas fa-pause"></i> Pause</div>';
taskhtml += '<div class="btn btn-danger status-btn bin-btn" data-status="problem"><i class="fas fa-exclamation"></i> Problem</div>';
} else if (tasks[i]['status'] == "3" || tasks[i]['status'] == "4") {
taskhtml += '<div class="btn btn-primary status-btn bin-btn" data-status="resume"><i class="fas fa-play"></i> Continue</div>';
}
taskhtml += '</div>\n</div>';
tasklist.append(taskhtml);
}
} else {
showmsg(resp.msg, "danger");
}
}, "json").fail(function () {
card.css("display", "none");
});
});
}
loadTaskCards();
$(".card_taskfloor_viewtasks").on("click", ".status-btn", function () {
var cardapp = $(this).parents(".card_app");
var taskitem = $(this).parents(".task");
var url = cardapp.data("apiurl");
$.post(url, {
username: getuser(),
password: getAPIKey(),
action: "updatetask",
taskid: taskitem.data("taskid"),
status: $(this).data("status")
}, function (resp) {
if (resp.status == "OK") {
showmsg('<i class="fas fa-check"></i> ' + resp.msg, "success");
} else {
showmsg('<i class="fas fa-times"></i> ' + resp.msg, "danger");
}
loadTaskCards();
}, "json");
});