diff --git a/odm/css/styles.css b/odm/css/styles.css
index 770c009..b4ea170 100644
--- a/odm/css/styles.css
+++ b/odm/css/styles.css
@@ -1,7 +1,11 @@
+ html {
+ height: 100%;
+ }
+
body {
margin: 0;
font-family: 'Roboto',arial,sans-serif;
- display: block;
+ height: 100%;
}
.content-overlay-box {
@@ -51,7 +55,7 @@
}
.details-container {
- width: 420px;
+ width: 510px;
}
.details {
@@ -105,9 +109,11 @@
padding: 1px 15px 1px 15px;
margin: 0px 0px 20px 0px;
border: 1px solid black;
- width: 360px;
- height: 70px;
- overflow: auto;
+ width: 450px;
+ height: 100px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ white-space: nowrap;
}
.detail-contents {
@@ -174,7 +180,7 @@
min-width: 248px;
position: absolute;
z-index: 1;
- visibility: hidden;
+ display: none;
}
.device-summary:hover, .selected-tab {
@@ -194,25 +200,15 @@
}
iframe {
- display: block;
- width: 100%;
- border: none;
- overflow-y: auto;
+ display: block;
+ width: 100%;
+ border: none;
+ overflow-y: auto;
overflow-x: hidden;
- }
-
- .loading {
- margin: 0;
- padding: 0;
- background-image: url('../images/loading.gif');
- background-position: center;
- background-repeat: no-repeat;
- height: 18px;
- width: 18px;
- float: left;
}
+
#button {
- visibility: hidden;
+ display: none;
min-width: 0;
padding: 0;
background-image: url('../images/send-cmd.png');
@@ -272,28 +268,11 @@
min-width: 248px;
position: absolute;
z-index: 1;
- visibility: hidden;
+ display: none;
top: 60px;
left: 350px;
}
- .wait-list {
- overflow: hidden;
- padding-left: 20px;
- text-overflow: ellipsis;
- white-space: nowrap;
- color: #737373;
- font-size: 15px;
- }
-
- .wait-list-small {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- color: #737373;
- font-size: 11px;
- }
-
.command-list {
overflow: hidden;
padding: 3px 3px 3px 20px;
@@ -303,25 +282,6 @@
font-size: 12px;
}
- #command-wait-dropdown {
- -moz-border-radius: 3px;
- -webkit-border-radius: 3px;
- border-radius: 3px;
- -moz-box-shadow: 0 2px 40px rgba(0,0,0,0.4);
- -ms-box-shadow: 0 2px 40px rgba(0,0,0,0.4);
- -webkit-box-shadow: 0 2px 40px rgba(0,0,0,0.4);
- box-shadow: 0 2px 40px rgba(0,0,0,0.4);
- background-color: #fff;
- border: 1px solid #d6d6d6;
- max-width: 220px;
- min-width: 220px;
- position: absolute;
- z-index: 1;
- visibility: hidden;
- top: 60px;
- left: 350px;
- }
-
#command-sent-dropdown {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
@@ -336,7 +296,7 @@
min-width: 200px;
position: absolute;
z-index: 1;
- visibility: hidden;
+ display: none;
top: 60px;
left: 350px;
}
@@ -359,7 +319,7 @@
-webkit-box-shadow: 0 2px 6px rgba(0,0,0,0.3),0 -3px 8px rgba(0,0,0,0.2);
box-shadow: 0 2px 6px rgba(0,0,0,0.3),0 -3px 8px rgba(0,0,0,0.2);
background-color: #fff;
- visibility: hidden;
+ display: none;
top: 50px;
left: 100px;
z-index: 3;
@@ -420,6 +380,10 @@
a:active { color: #333; }
- .map_layer {
- overflow: hidden;
+ #map_layer {
+ height: 93%;
+ }
+ #shell_cmd {
+ width: 98%;
+ height: 17px;
}
diff --git a/odm/devices.php b/odm/devices.php
new file mode 100644
index 0000000..da926c3
--- /dev/null
+++ b/odm/devices.php
@@ -0,0 +1,124 @@
+ 0) {
+ $count = 0;
+ $dropdown = "";
+ $first_name = "";
+ $first_gcm_regid = "";
+ $first_created_at = "";
+ $first_id = 0;
+ foreach ($users as $row) {
+ $phpdate = strtotime($row['created_at']);
+ $formated_created_at = date( 'm/d/Y', $phpdate );
+ if (($count == 0 && (!isset($id) || $id=='')) || (isset($id) && $id == $row['id'])) {
+ $first_name = $row['name'];
+ $first_gcm_regid = $row['gcm_regid'];
+ $first_created_at = $formated_created_at;
+ $first_token = $row['token'];
+ $first_id = $row['id'];
+ $dropdown .= '
';
+ } else {
+ $dropdown .= '
';
+ }
+ $dropdown .= '
';
+ $dropdown .= '
'.$row['name'].'
';
+ $dropdown .= '
Registered: '.$formated_created_at.'
';
+ $dropdown .= '
';
+ $dropdown .= '
';
+ $count++;
+ }
+
+?>
+
+
+
+
+
+
+
+
+
+
Get location
+
Get location (GPS only)
+
Send shell command
+
ListSMS
+
ListCallLog
+
ListWhatsapp
+
Request file from device
+
Record audio
+
Take rear photo (Low res)
+
Take front photo (Low res)
+
Take rear photo (High res)
+
Take front photo (High res)
+
Take rear video (Low res)
+
Take front video (Low res)
+
Take rear video (High res)
+
Take front video (High res)
+
Start Ring
+
Stop Ring
+
Lock device
+
Lock device with password
+
Receive SMS
+
Wipe device
+
Send notification
+
Download file to device
+
Delete this device
+
+
+
+
+
+
+
+
+
+
+
+ Log Entries
+
+
+
+
+
+
+
No devices registered.
+
diff --git a/odm/images/blue_ball.png b/odm/images/blue_ball.png
new file mode 100644
index 0000000..517c85f
Binary files /dev/null and b/odm/images/blue_ball.png differ
diff --git a/odm/images/green_ball.png b/odm/images/green_ball.png
new file mode 100644
index 0000000..c881e09
Binary files /dev/null and b/odm/images/green_ball.png differ
diff --git a/odm/images/red_ball.png b/odm/images/red_ball.png
new file mode 100644
index 0000000..9129083
Binary files /dev/null and b/odm/images/red_ball.png differ
diff --git a/odm/include/db.php b/odm/include/db.php
index 222fa9d..b9aa5c4 100644
--- a/odm/include/db.php
+++ b/odm/include/db.php
@@ -100,9 +100,33 @@ function getImg($user_id, $id) {
return $img;
}
+ function getMessage($user_id, $id) {
+ global $con;
+ $message = "";
+ $stmt = $con->prepare("select m.message from gcm_data d, gcm_messages m, gcm_users u where d.id = m.id and m.gcm_regid = u.gcm_regid and u.user_id = ? and d.id = ?");
+ $stmt->execute(array($user_id, $id));
+ $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ foreach ($rows as $row) {
+ $message .= $row['message'];
+ }
+ return $message;
+ }
+
+ function getRegID($user_id, $id) {
+ global $con;
+ $regid = "";
+ $stmt = $con->prepare("select m.gcm_regid from gcm_data d, gcm_messages m, gcm_users u where d.id = m.id and m.gcm_regid = u.gcm_regid and u.user_id = ? and d.id = ?");
+ $stmt->execute(array($user_id, $id));
+ $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ foreach ($rows as $row) {
+ $regid .= $row['gcm_regid'];
+ }
+ return $regid;
+ }
+
function getMessages($gcm_regid, $limit) {
global $con;
- $sql = "select message,created_at,id,data FROM gcm_messages where gcm_regid = ? order by created_at desc";
+ $sql = "select message,created_at,id,data,gcm_regid FROM gcm_messages where gcm_regid = ? order by created_at desc";
if (isset($limit)) {
$sql .= " limit $limit";
}
@@ -112,6 +136,27 @@ function getMessages($gcm_regid, $limit) {
return $rows;
}
+ function getMessagesId($gcm_regid, $minid, $limit) {
+ global $con;
+ $sql = "select message,created_at,id,data,gcm_regid FROM gcm_messages where gcm_regid = ? and id > ? order by created_at desc";
+ if (isset($limit)) {
+ $sql .= " limit $limit";
+ }
+ $stmt = $con->prepare($sql);
+ $stmt->execute(array($gcm_regid,$minid));
+ $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ return $rows;
+ }
+
+ function getLastMessageID($gcm_regid) {
+ global $con;
+ $sql = "select id FROM gcm_messages where gcm_regid = ? order by created_at desc";
+ $stmt = $con->prepare($sql);
+ $stmt->execute(array($gcm_regid));
+ $currentId = $stmt->fetchColumn();
+ return $currentId;
+ }
+
function getUserRecord($username) {
global $con;
$matchrow = null;
@@ -132,7 +177,7 @@ function updatePassword($username, $hash) {
$stmt->execute(array($hash, $token, $username));
return $token;
}
-
+
function storeUsername($username, $hash) {
global $con;
$stmt = $con->prepare("select * from users where username = ?");
diff --git a/odm/include/footer.php b/odm/include/footer.php
index 772ecc8..7fb2bd6 100644
--- a/odm/include/footer.php
+++ b/odm/include/footer.php
@@ -1,5 +1,2 @@
-