diff --git a/assets/css/other.css b/assets/css/other.css
new file mode 100644
index 0000000..92d14c5
--- /dev/null
+++ b/assets/css/other.css
@@ -0,0 +1,9 @@
+/*
+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/.
+*/
+
+#card-box .col {
+ padding: 15px;
+}
\ No newline at end of file
diff --git a/cards/js/qwikclock_punchinout.js b/cards/js/qwikclock_punchinout.js
new file mode 100644
index 0000000..26f3aea
--- /dev/null
+++ b/cards/js/qwikclock_punchinout.js
@@ -0,0 +1,39 @@
+/*
+ * 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/.
+ */
+
+$(".card_qwikclock_punchinout").on("click", ".start_btn", function () {
+ var parent = $(this).parents(".card_app");
+ var url = parent.data("apiurl");
+ console.log(url + " " + getuser());
+ $.post(url, {
+ username: getuser(),
+ password: getAPIKey(),
+ action: "punchin"
+ }, function (resp) {
+ if (resp.status == "OK") {
+ showmsg(resp.msg, "success");
+ } else {
+ showmsg(resp.msg, "danger");
+ }
+ }, "json");
+});
+
+$(".card_qwikclock_punchinout").on("click", ".stop_btn", function () {
+ var parent = $(this).parents(".card_app");
+ var url = parent.data("apiurl");
+ console.log(url + " " + getuser());
+ $.post(url, {
+ username: getuser(),
+ password: getAPIKey(),
+ action: "punchout"
+ }, function (resp) {
+ if (resp.status == "OK") {
+ showmsg(resp.msg, "success");
+ } else {
+ showmsg(resp.msg, "danger");
+ }
+ }, "json");
+});
\ No newline at end of file
diff --git a/cards/js/taskfloor_viewmessages.js b/cards/js/taskfloor_viewmessages.js
new file mode 100644
index 0000000..66549fe
--- /dev/null
+++ b/cards/js/taskfloor_viewmessages.js
@@ -0,0 +1,31 @@
+/*
+ * 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/.
+ */
+
+
+$(".card_taskfloor_viewmessages").each(function () {
+ $(this).find(".card_title").append(" Messages");
+ var msglist = $(this).find(".message-list");
+ var url = $(this).data("apiurl");
+ $.post(url, {
+ username: getuser(),
+ password: getAPIKey(),
+ action: "getmsgs"
+ }, function (resp) {
+ if (resp.status == "OK") {
+ var msgs = resp.messages;
+ for (var msg in msgs) {
+ msglist.append(
+ '
');
+ }
+ } else {
+ showmsg(resp.msg, "danger");
+ }
+ }, "json");
+});
\ No newline at end of file
diff --git a/cards/js/taskfloor_viewtasks.js b/cards/js/taskfloor_viewtasks.js
new file mode 100644
index 0000000..73354b5
--- /dev/null
+++ b/cards/js/taskfloor_viewtasks.js
@@ -0,0 +1,32 @@
+/*
+ * 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/.
+ */
+
+
+$(".card_taskfloor_viewtasks").each(function () {
+ $(this).find(".card_title").append(" 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") {
+ var tasks = resp.tasks;
+ for (var i = 0; i < tasks.length; i++) {
+ tasklist.append(
+ '
'
+ + '
'
+ + '
' + tasks[i]['title'] + '
'
+ + '
'
+ + '
' + tasks[i]['description'] + '
'
+ + '
');
+ }
+ } else {
+ showmsg(resp.msg, "danger");
+ }
+ }, "json");
+});
\ No newline at end of file
diff --git a/cards/qwikclock_punchinout.html b/cards/qwikclock_punchinout.html
new file mode 100644
index 0000000..964f966
--- /dev/null
+++ b/cards/qwikclock_punchinout.html
@@ -0,0 +1,10 @@
+
+
QwikClock
+
+
+
+
\ No newline at end of file
diff --git a/cards/taskfloor_viewmessages.html b/cards/taskfloor_viewmessages.html
new file mode 100644
index 0000000..f5b68dd
--- /dev/null
+++ b/cards/taskfloor_viewmessages.html
@@ -0,0 +1,10 @@
+
+
TaskFloor Messages
+
+
+
+
\ No newline at end of file
diff --git a/cards/taskfloor_viewtasks.html b/cards/taskfloor_viewtasks.html
new file mode 100644
index 0000000..a519452
--- /dev/null
+++ b/cards/taskfloor_viewtasks.html
@@ -0,0 +1,10 @@
+
+
TaskFloor Tasks
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
index 7515bb3..b92d882 100644
--- a/index.html
+++ b/index.html
@@ -9,9 +9,22 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
-
+
+
Log out
+
+
+
+
+
+
+
+
+
+
+
@@ -22,5 +35,5 @@ file, You can obtain one at http://mozilla.org/MPL/2.0/.
\ No newline at end of file
diff --git a/js/functions.js b/js/functions.js
index cfce340..ce93f14 100644
--- a/js/functions.js
+++ b/js/functions.js
@@ -7,10 +7,49 @@
function openScreen(id) {
$('#content-frame').fadeOut('fast', function () {
- $('#content-frame').load("pages/" + id + ".html", function () {
- $('#content-frame').fadeIn('fast', function () {
-
- });
- });
+ $('#content-frame').load("pages/" + id + ".html", function () {
+ $('#content-frame').fadeIn('fast', function () {
+
+ });
+ });
});
+}
+
+function getApps(callback) {
+ $.post(accounthubapi, {
+ key: apikey,
+ action: "listapps"
+ }, function (resp) {
+ if (resp.status == "OK") {
+ callback(resp.apps);
+ } else {
+ alert(resp.msg);
+ }
+ }, "json");
+}
+
+var msgtimeout = null;
+
+function showmsg(text, style, details, timeout) {
+ if (timeout == null) {
+ timeout = 5 * 1000;
+ }
+ if (details == null) {
+ details = "";
+ } else {
+ details = "