diff --git a/api/tacticalrmm/scripts/views.py b/api/tacticalrmm/scripts/views.py
index 48af30ad28..8ba0f7f237 100644
--- a/api/tacticalrmm/scripts/views.py
+++ b/api/tacticalrmm/scripts/views.py
@@ -128,7 +128,7 @@ def post(self, request):
agent = get_object_or_404(Agent, pk=request.data["agent"])
parsed_args = Script.parse_script_args(
- self, request.data["shell"], request.data["args"]
+ agent, request.data["shell"], request.data["args"]
)
data = {
diff --git a/api/tacticalrmm/tacticalrmm/settings.py b/api/tacticalrmm/tacticalrmm/settings.py
index bd420a3f79..4853c88251 100644
--- a/api/tacticalrmm/tacticalrmm/settings.py
+++ b/api/tacticalrmm/tacticalrmm/settings.py
@@ -15,14 +15,14 @@
AUTH_USER_MODEL = "accounts.User"
# latest release
-TRMM_VERSION = "0.8.1"
+TRMM_VERSION = "0.8.2"
# bump this version everytime vue code is changed
# to alert user they need to manually refresh their browser
-APP_VER = "0.0.143"
+APP_VER = "0.0.144"
# https://github.com/wh1te909/rmmagent
-LATEST_AGENT_VER = "1.6.0"
+LATEST_AGENT_VER = "1.6.1"
MESH_VER = "0.9.16"
diff --git a/web/src/components/AgentTable.vue b/web/src/components/AgentTable.vue
index d41855ea12..38febfe4c3 100644
--- a/web/src/components/AgentTable.vue
+++ b/web/src/components/AgentTable.vue
@@ -479,7 +479,8 @@ export default {
if (filter === "actionspending") actions = true;
else if (filter === "checksfailing") checks = true;
else if (filter === "rebootneeded") reboot = true;
- else if (filter === "online" || filter === "offline" || filter === "expired") availability = filter;
+ else if (filter === "online" || filter === "offline" || filter === "expired" || filter === "overdue")
+ availability = filter;
} else {
search = param + "";
}
@@ -492,7 +493,8 @@ export default {
if (actions && row.pending_actions_count === 0) return false;
if (reboot && !row.needs_reboot) return false;
if (availability === "online" && row.status !== "online") return false;
- else if (availability === "offline" && row.status !== "overdue") return false;
+ else if (availability === "offline" && row.status !== "offline") return false;
+ else if (availability === "overdue" && row.status !== "overdue") return false;
else if (availability === "expired") {
let now = new Date();
let lastSeen = date.extractDate(row.last_seen, "MM DD YYYY HH:mm");
diff --git a/web/src/views/Dashboard.vue b/web/src/views/Dashboard.vue
index 463322a3bb..f1635f1fda 100644
--- a/web/src/views/Dashboard.vue
+++ b/web/src/views/Dashboard.vue
@@ -337,6 +337,16 @@
+
+
+
+
+
+
+ Show Overdue Only
+
+
+
@@ -809,7 +819,10 @@ export default {
// clear search if availability changes to all
if (
this.filterAvailability === "all" &&
- (this.search.includes("is:online") || this.search.includes("is:offline") || this.search.includes("is:expired"))
+ (this.search.includes("is:online") ||
+ this.search.includes("is:offline") ||
+ this.search.includes("is:expired") ||
+ this.search.includes("is:overdue"))
)
this.clearFilter();
@@ -841,6 +854,8 @@ export default {
filterText += "is:offline ";
} else if (this.filterAvailability === "offline_30days") {
filterText += "is:expired ";
+ } else if (this.filterAvailability === "overdue") {
+ filterText += "is:overdue ";
}
}