+
+
Select project to track
+
+ +
+ Tracking +
+ + Updated every 30 seconds+ +
diff --git a/juggl-server/api/getRunningRecords.php b/juggl-server/api/getRunningRecords.php
new file mode 100644
index 0000000..6c90fdf
--- /dev/null
+++ b/juggl-server/api/getRunningRecords.php
@@ -0,0 +1,29 @@
+get("user_id");
+
+ $records = getRunningRecords($user_id);
+
+ $json = new JsonBuilder();
+ $json->addRecords($records);
+
+ respondJson($json);
+ }
+}
+
+$branch = new GetRunningRecordsBranch();
+$branch->execute();
diff --git a/juggl-server/api/services/jsonBuilder.inc.php b/juggl-server/api/services/jsonBuilder.inc.php
index 80d2db0..2c3ef10 100644
--- a/juggl-server/api/services/jsonBuilder.inc.php
+++ b/juggl-server/api/services/jsonBuilder.inc.php
@@ -18,6 +18,8 @@ class JsonBuilder
function addRecords(array $records)
{
+ if ($records === null) return;
+
$columns = array(
"record_id" => "",
"start_time" => "",
@@ -37,6 +39,8 @@ class JsonBuilder
function addProjects(array $projects)
{
+ if ($projects === null) return;
+
$columns = array(
"project_id" => "",
"name" => "",
diff --git a/juggl-server/api/services/jugglDbApi.inc.php b/juggl-server/api/services/jugglDbApi.inc.php
index 6612972..a8f5232 100644
--- a/juggl-server/api/services/jugglDbApi.inc.php
+++ b/juggl-server/api/services/jugglDbApi.inc.php
@@ -98,13 +98,12 @@ function getProjectRecord($user_id, $project_id, $finished = null)
$db->where("user_id", Comparison::EQUAL, $user_id);
$db->where("project_id", Comparison::EQUAL, $project_id);
- if ($finished != null) {
- $comp = Comparison::UNEQUAL;
- if ($finished == false) {
- $comp = Comparison::EQUAL;
+ if ($finished !== null) {
+ if ($finished) {
+ $db->addSql(" AND end_time IS NOT NULL");
+ } else {
+ $db->addSql(" AND end_time IS NULL");
}
-
- $db->where("end_time", $comp, null);
}
$db->orderBy("start_time", Order::DESC);
@@ -123,12 +122,30 @@ function getProjectRecord($user_id, $project_id, $finished = null)
return $result;
}
+function getRunningRecords($user_id)
+{
+ $db = new DbOperations();
+ $db->select("time_records");
+ $db->where("user_id", Comparison::EQUAL, $user_id);
+ $db->addSql(" AND end_time IS NULL");
+ $results = $db->execute();
+
+ // Is still running?
+ foreach ($results as $key => $value) {
+ $results[$key]["duration"] = calcDuration($results[$key]["start_time"]);
+ }
+
+ return $results;
+}
+
function updateEndRecord($user_id, $params)
{
$record_id = $params->get("record_id");
// Get start instance to calculate duration
- $start_time = getTimeRecord($user_id, $record_id)[0]["start_time"];
+ $start_time = getTimeRecord($user_id, $record_id)["start_time"];
+ var_dump($start_time);
+ var_dump($params->get("end_time"));
$data = [
"end_time" => $params->get("end_time"),
@@ -202,5 +219,5 @@ function isDeviceValid($start_device_id, $user_id)
function calcDuration($start_time, $end_time = "NOW")
{
- return (int)((new DateTime($start_time))->diff(new DateTime($end_time))->format("%s"));
+ return (int)(strtotime($end_time) - strtotime($start_time));
}
diff --git a/juggl-server/css/style.css b/juggl-server/css/style.css
index fc7e3da..672bdfc 100644
--- a/juggl-server/css/style.css
+++ b/juggl-server/css/style.css
@@ -122,4 +122,12 @@ thead * {
color: #AAA;
margin: 0px;
padding: 0px;
+}
+
+#current-record-duration {
+ margin-bottom: 0px;
+}
+
+#update-notice {
+ margin-bottom: 20px;
}
\ No newline at end of file
diff --git a/juggl-server/index.html b/juggl-server/index.html
index 701533a..acd8b07 100644
--- a/juggl-server/index.html
+++ b/juggl-server/index.html
@@ -16,15 +16,70 @@
@@ -36,20 +91,28 @@