diff --git a/.env.test b/.env.test index 1c0acdb..9321907 100644 --- a/.env.test +++ b/.env.test @@ -11,7 +11,6 @@ PROTOCOL="http://" REACT_APP_BACKEND_SERVER="${PROTOCOL}api.${DOMAIN_NAME}" REACT_APP_FRONTEND_SERVER="${PROTOCOL}${DOMAIN_NAME}" -REACT_APP_SOCKET_SERVER=wss://socket.${DOMAIN_NAME} REACT_APP_ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" REACT_APP_ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" REACT_APP_COOKIE_DOMAIN=".${DOMAIN_NAME}" @@ -23,7 +22,6 @@ STRIPE_SECRET_KEY="sk_test_S5kfQwdyRDgKtu9FQYpPh3B3" BACKEND_SERVER="${PROTOCOL}api.${DOMAIN_NAME}" FRONTEND_SERVER="${PROTOCOL}${DOMAIN_NAME}" ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" -SOCKET_SERVER="wss://socket.${DOMAIN_NAME}" ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" COOKIE_DOMAIN=".${DOMAIN_NAME}" SITE_NAME="OpenMHz" diff --git a/account/server/config/express.js b/account/server/config/express.js index 130ca4a..5ddf39a 100644 --- a/account/server/config/express.js +++ b/account/server/config/express.js @@ -65,7 +65,6 @@ module.exports = function(app, passport) { var allowedOrigins = [ account_server]; allowedOrigins.push(frontend_server); allowedOrigins.push(backend_server); - allowedOrigins.push(socket_server); allowedOrigins.push(admin_server); allowedOrigins.push(admin_dev_server); allowedOrigins.push(account_dev_server); diff --git a/admin/server/config/express.js b/admin/server/config/express.js index 3c3f93d..01d1632 100644 --- a/admin/server/config/express.js +++ b/admin/server/config/express.js @@ -8,7 +8,6 @@ const secrets = require("./secrets"); var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var socket_server = process.env['REACT_APP_SOCKET_SERVER'] != null ? process.env['REACT_APP_SOCKET_SERVER'] : 'wss://socket.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var dev_server = "http://admin.openmhz.test:3000" @@ -64,7 +63,6 @@ module.exports = function(app, passport) { var allowedOrigins = [ account_server]; allowedOrigins.push(frontend_server); allowedOrigins.push(backend_server); - allowedOrigins.push(socket_server); allowedOrigins.push(dev_server); var origin = req.headers.origin; diff --git a/backend/config/express.js b/backend/config/express.js index 4041096..00e29f2 100644 --- a/backend/config/express.js +++ b/backend/config/express.js @@ -4,7 +4,6 @@ var bodyParser = require("body-parser"); var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var socket_server = process.env['REACT_APP_SOCKET_SERVER'] != null ? process.env['REACT_APP_SOCKET_SERVER'] : 'wss://socket.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var admin_server = process.env['REACT_APP_ADMIN_SERVER'] != null ? process.env['REACT_APP_ADMIN_SERVER'] : 'https://admin.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var dev_server = frontend_server + ":3000" @@ -34,7 +33,6 @@ module.exports = function(app) { var allowedOrigins = [ admin_server]; allowedOrigins.push(frontend_server); allowedOrigins.push(backend_server); - allowedOrigins.push(socket_server); allowedOrigins.push(dev_server); allowedOrigins.push("https://www.openmhz.com"); diff --git a/backend/public/js/scanner.js b/backend/public/js/scanner.js deleted file mode 100644 index 8d1f206..0000000 --- a/backend/public/js/scanner.js +++ /dev/null @@ -1,345 +0,0 @@ -var Scanner = function() { - this._socket = null; - this.FilterType = { - All: 0, - Talkgroup: 1, - Group: 2, - Unit: 3 - }; - this.talkgroups = {}; - this.url = ""; - this.sources = {}; - this.filterCode = ""; - this.filterDate = 0; - this.filterName = "All"; - this.filterType = this.FilterType.All; - - this.groups = [{ - name: 'Fire', - code: 'group-fire' - }, - - { - name: 'Medical', - code: 'group-medical' - }, - { - name: 'Services', - code: 'group-services' - }, - { - name: 'Emergency', - code: 'group-emergency' - }, - { - name: 'Police', - code: 'group-police' - }, - { - name: 'Security', - code: 'group-security' - }, - { - name: 'Transportation', - code: 'group-transportation' - } - ]; -}; - - - -if (typeof console === "undefined") { - console = { - log: function() {}, - debug: function() {} - }; -} - -Scanner.prototype.socketUpdate = function(messageCallback) { - if (this._socket) { - var typeString = 'all'; - switch (this.filterType) { - case this.FilterType.Group: - var typeString = 'group'; - break; - case this.FilterType.Talkgroup: - var typeString = 'talkgroup'; - break; - case this.FilterType.Unit: - var typeString = 'unit'; - break; - } - var shortName = startUp.shortName.toLowerCase(); - - this._socket.send(JSON.stringify({ - type: 'update', - filterCode: this.filterCode, - filterType: typeString, - filterName: this.filterName, - shortName: shortName - })); - } -} - - - -Scanner.prototype.socketConnect = function(messageCallback) { - console.log("WebSocket trying to connect"); - - var typeString = 'all'; - switch (this.filterType) { - case this.FilterType.Group: - var typeString = 'group'; - break; - case this.FilterType.Talkgroup: - var typeString = 'talkgroup'; - break; - case this.FilterType.Unit: - var typeString = 'unit'; - break; - } - var shortName = startUp.shortName.toLowerCase(); - if (!this._socket) { - - this._socket = new WebSocket(startUp.socket_server); // + startUp.backend_server); // 'wss://openmhz.com/'); - if (typeof messageCallback === "function") { - - this._socket.onmessage = messageCallback.bind(this); - } - - this._socket.onopen = function(e) { - console.log('Socket Connected - sending add: ' + e); - this._socket.send(JSON.stringify({ - type: 'add', - filterCode: this.filterCode, - filterType: typeString, - filterName: this.filterName, - shortName: shortName - })); - }.bind(this); - } else { - console.log('Socket Already Connected - sending update'); - this._socket.send(JSON.stringify({ - type: 'update', - filterCode: this.filterCode, - filterType: typeString, - filterName: this.filterName, - shortName: shortName - })); - } -}; - -Scanner.prototype.socketDisconnect = function() { - console.log('Disconnecting WebSocket'); - if (this._socket) { - this._socket.close(); - } -}; - - -Scanner.prototype.updateFilter = function(name, type, code) { - this.filterCode = code; - this.filterName = name; - this.filterType = type; - -}; - -Scanner.prototype.updateArchive = function(archiveDateTime) { - if (archiveDateTime != null) { - this.filterDate = archiveDateTime.getTime(); - } else { - this.filterDate = 0; - } -}; - -Scanner.prototype.getUrl = function() { - return this.url; -}; - -Scanner.prototype.buildTags = function(talkgroups) { - var tags = {} - for (var tg in talkgroups) { - var tag = talkgroups[tg].tag; - if (!tags.hasOwnProperty(tag)) { - tags[tag] = {}; - tags[tag].talkgroupNums = [] - } - tags[tag].talkgroupNums.push(talkgroups[tg].num); - } - console.log(tags); - return tags; -}; - -Scanner.prototype.buildGroups = function(talkgroups) { - var groups = {} - for (var tg in talkgroups) { - var group = talkgroups[tg].group; - if (!groups.hasOwnProperty(group)) { - groups[group] = {}; - groups[group].talkgroupNums = [] - } - groups[group].talkgroupNums.push(talkgroups[tg].num); - } - console.log(groups); - return groups; -}; - -Scanner.prototype.fetchTalkgroups = function(successCallback) { - console.log(startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/talkgroups"); - var scanner = this; - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/talkgroups", - type: "GET", - contentType: "application/json", - success: function(data) { - this.talkgroups = data.talkgroups; - this.sources = data.sources; - data.groups = scanner.buildGroups(data.talkgroups); - data.tags = scanner.buildTags(data.talkgroups); - successCallback(data); - } - }); -}; - - -Scanner.prototype.fetchCallInfo = function(id, successCallback) { - - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/call/" + id, - type: "GET", - contentType: "application/json", - success: successCallback - }); -}; - -Scanner.prototype.fetchSingleCall = function(success, error, callId) { - - if ((typeof error !== 'function') && (typeof error !== 'undefined')) { - callId = error; - error = this.fetchCallsError; - } - //contentType: "application/json", - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/call/" + callId, - type: "GET", - dataType: "json", - cache: true, - timeout: 5000, - complete: function() { - //called when complete - console.log('process complete'); - }, - - success: function(data) { - success(data); - }, - - error: function(request, status, error) { - console.log(request.responseText); - }, - }); -}; - -Scanner.prototype.fetchCalls = function(success, error, date, direction) { - var params = {}; - var url = ""; - - if ((typeof error !== 'function') && (typeof error !== 'undefined')) { - direction = date; - date = error; - error = this.fetchCallsError; - } - - - if ((typeof direction === 'string') && (typeof date === 'number')) { - url = url + '/' + direction; - params["time"] = date; - } - - if (this.filterCode != "") { - params["filter-code"] = this.filterCode; - } - - if (this.filterType == this.FilterType.Group) { - params["filter-type"] = "group"; - params["filter-name"] = this.filterName; - } - - if (this.filterType == this.FilterType.Talkgroup) { - params["filter-type"] = "talkgroup"; - } - - if (this.filterType == this.FilterType.Unit) { - params["filter-type"] = "unit"; - } - - - url = url + '?' + $.param(params); - this.url = url; - console.log("Trying to fetch data from this url: " + url); - //contentType: "application/json", - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/calls" + url, - type: "GET", - dataType: "json", - cache: true, - timeout: 5000, - complete: function() { - //called when complete - console.log('process complete'); - }, - - success: function(data) { - success(data); - }, - - error: function(request, status, error) { - console.log(request.responseText); - }, - }); -}; - -Scanner.prototype.fetchStats = function(successCallback) { - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/stats", - type: "GET", - contentType: "application/json", - success: successCallback - }); -}; - -Scanner.prototype.setSource = function(sourceId, tagName, name, callId) { - var data = { - sourceId: sourceId, - tagName: tagName, - shortName: startUp.shortName.toLowerCase(), - name: name, - callId: callId - }; - $.ajax({ - url: startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/pending_sources", - type: "POST", - dataType: "json", - cache: true, - data: data, - timeout: 5000, - complete: function() { - //called when complete - //console.log('process complete'); - - }, - - success: function(data) { - sources = data.sources; - }, - - error: function() { - //console.log('process error'); - }, - }); - -}; - -Scanner.prototype.fetchCallsError = function() { - console.log("Errr fetching calls"); -} diff --git a/docker-compose.yml b/docker-compose.yml index dccbcbb..8707f85 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -68,7 +68,6 @@ services: - REACT_APP_BACKEND_SERVER - REACT_APP_ADMIN_SERVER - REACT_APP_FRONTEND_SERVER - - REACT_APP_SOCKET_SERVER - REACT_APP_ACCOUNT_SERVER - S3_ENDPOINT - S3_BUCKET diff --git a/frontend/env-example b/frontend/env-example index c98b592..45cbba2 100644 --- a/frontend/env-example +++ b/frontend/env-example @@ -1,6 +1,5 @@ REACT_APP_BACKEND_SERVER=https://api.openmhz.com REACT_APP_FRONTEND_SERVER=https://openmhz.com -REACT_APP_SOCKET_SERVER=wss://api.openmhz.com REACT_APP_SITE_NAME=OpenMHz REACT_APP_ARCHIVE_DAYS=30 diff --git a/frontend/server/config/express.js b/frontend/server/config/express.js index e1cc920..86f9477 100644 --- a/frontend/server/config/express.js +++ b/frontend/server/config/express.js @@ -8,7 +8,6 @@ const secrets = require("./secrets"); var cookie_domain = process.env['REACT_APP_COOKIE_DOMAIN'] != null ? process.env['REACT_APP_COOKIE_DOMAIN'] : '.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var backend_server = process.env['REACT_APP_BACKEND_SERVER'] != null ? process.env['REACT_APP_BACKEND_SERVER'] : 'https://api.openmhz.com'; var frontend_server = process.env['REACT_APP_FRONTEND_SERVER'] != null ? process.env['REACT_APP_FRONTEND_SERVER'] : 'https://openmhz.com'; -var socket_server = process.env['REACT_APP_SOCKET_SERVER'] != null ? process.env['REACT_APP_SOCKET_SERVER'] : 'wss://socket.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var account_server = process.env['REACT_APP_ACCOUNT_SERVER'] != null ? process.env['REACT_APP_ACCOUNT_SERVER'] : 'https://account.openmhz.com'; //'https://s3.amazonaws.com/robotastic'; var dev_server = frontend_server + ":3000" @@ -41,7 +40,6 @@ module.exports = function(app) { var allowedOrigins = [ account_server]; allowedOrigins.push(frontend_server); allowedOrigins.push(backend_server); - allowedOrigins.push(socket_server); allowedOrigins.push(dev_server); var origin = req.headers.origin; diff --git a/frontend/src/Call/Activity.js b/frontend/src/Call/Activity.js index 3a311ab..f806454 100644 --- a/frontend/src/Call/Activity.js +++ b/frontend/src/Call/Activity.js @@ -1,31 +1,16 @@ -import React, { useEffect, useLayoutEffect, useState, useRef, useCallback, useMemo } from "react"; -import { Link, useLocation, useParams, useNavigate } from 'react-router-dom'; -import FilterModal from "./components/FilterModal"; -import GroupModal from "./components/GroupModal"; -import CalendarModal from "./components/CalendarModal"; -import CallPlayer from "./CallPlayer"; +import React, { useMemo } from "react"; +import { useParams } from 'react-router-dom'; -import { useSelector, useDispatch } from 'react-redux' -import { setFilter, setDateFilter } from "../features/callPlayer/callPlayerSlice"; import { useGetStatsQuery,useGetTalkgroupsQuery } from '../features/api/apiSlice' import ActivityChart from "./BetterActivityChart"; -import { selectSystem } from "../features/systems/systemsSlice"; import { Container, - Label, - Rail, - Sticky, - Menu, - Icon, - Sidebar, Header } from "semantic-ui-react"; import "./CallPlayer.css"; -import queryString from '../query-string'; -import io from 'socket.io-client'; -import { useCallLink } from "./components/CallLinks"; + function Activity(props) { diff --git a/prod.env.example b/prod.env.example index 2dba07f..24ddb02 100644 --- a/prod.env.example +++ b/prod.env.example @@ -18,7 +18,6 @@ export PROTOCOL="https://" export REACT_APP_BACKEND_SERVER="${PROTOCOL}api.${DOMAIN_NAME}" export REACT_APP_FRONTEND_SERVER="${PROTOCOL}${DOMAIN_NAME}" -export REACT_APP_SOCKET_SERVER=wss://socket.${DOMAIN_NAME} export REACT_APP_ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" export REACT_APP_ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" export REACT_APP_COOKIE_DOMAIN=".${DOMAIN_NAME}" diff --git a/test.env.example b/test.env.example index b7b87a0..e740fb6 100644 --- a/test.env.example +++ b/test.env.example @@ -18,7 +18,6 @@ export PROTOCOL="http://" export REACT_APP_BACKEND_SERVER="${PROTOCOL}api.${DOMAIN_NAME}" export REACT_APP_FRONTEND_SERVER="${PROTOCOL}${DOMAIN_NAME}" -export REACT_APP_SOCKET_SERVER=wss://socket.${DOMAIN_NAME} export REACT_APP_ACCOUNT_SERVER="${PROTOCOL}account.${DOMAIN_NAME}" export REACT_APP_ADMIN_SERVER="${PROTOCOL}admin.${DOMAIN_NAME}" export REACT_APP_COOKIE_DOMAIN=".${DOMAIN_NAME}"