* add a tries counter so reading websocket data can fail
* fix empty constructor parameters when creating a permission_filter
* Use the message topic for debugging info instead of payload data
* use a socket disconnect exception instead of runtime exception
* Add a wait state for re-connecting to websocket server
* Add PHPDoc return information for connect_to_ws_server method
* Remove the cannot send message for already removed resource
* Remove param in the method call to handle_websocket_event
* Add friendly names for system services
- Adds a $service_friendly_names array at the top of the details block
- For each service, tries to find a match in the array and sets the $display_name
- If no match found in the array, it falls back to prettifying the name automatically (replace underscore with space and capitalize the first letter of each word) so future services don't break the display
* Updated system_services card with more info
- Expanded the system_services card with an additional column for 'Runtime', showing how long the service has been running for
- Added a hover tooltip showing the PID of the service to all three columns
- Added the ability to fetch for additional services string from default settings to show in the system_services card
* system_services dashboard card new default setting
- Added a new default setting (theme -> dashboard_extra_system_services) for defining additional system services to monitor in the system_services dashboard card
- Default setting is enabled by default with a string value of 'freeswitch, nginx, postgresql, sshd'
* Adjusted column widths
* add cpu line graph
* add cpu line graph
* add cpu line graph
* add cpu line graph
* add cpu line graph
* Add FreeBSD CPU status
* Add new dashboard type Line
* Add missing public declaration
* Allow new dashboard type Line to be selected option
* Use new Line type for graphing instead of doughnut
* Remove setting hardcoded timer
* Use websockets for real-time CPU status on dashboard
* Add system_dashboard service file
* moved javascript file to core
* Initial commit of websockets
* Move app_menu to the active_calls websockets
* Fix hangup function
* Remove connection wait-state on web socket server so events can process
* Add timestamp and debug level to console for service debug output
* Remove debug exit
* Fix typo for ws_client instead of ws_server
* Update app_config.php
* Fix typo and remove empty function
* Remove call to empty function
* Fix the menu to point to the correct location
* Remove Logging Class
* Rename service file
* Rename service file
* Fix the in progress browser request
* Fix browser reload and implement 'active_calls' default values
* Add apply_filter function
* Create new permission_filter object
* In progress active calls now use filter
* Add invalid_uuid_exception class
* add event_key_filter to honor user permissions
* add and_link and or_link for filters
* Fix disconnected subscriber and add filters to honor permissions
* Add $key and $value for filter
* define a service name
* catch throwable instead of exception
* Add $key and $value for filter and allow returning null
* Update permission checks when loading page
* Add apply_filter function to honor subscriber permissions
* Add create_filter_chain_for function to honor subscriber permissions
* Add apply_filter function to honor subscriber permissions
* Add apply_filter function to honor subscriber permissions
* create interface to allow filterable payload
* create interface to define functions required for websocket services
* Pass in service class when creating a service token
* Allow key/name and return null for filter
* Adjust subscriber exceptions to return the ID of the subscriber
* Add event filter to filter chain
* Add command line options for ip and port for websockets and switch
* update service to use is_a syntax
* initial commit of base class for websockets system services
* initial commit of the system cpu status service
* remove extra line feed
* fix path on active_calls
* initial proof of concept for cpu status updated by websockets
* Allow returning null
* Use default settings to set the interval for cpu status broadcast
* Improve the CPU percent function for Linux systems
* Show more debug information
* Allow child processes to re-connect to the web socket service
* Fix websockets as plural instead of singular
* Add class name list-row
* Update active_calls.php
* Update active_calls.php
* Update websocket_client.js
* Update app_config.php
* Update app_menu.php
* Update debian-websockets.service
* Update debian-active_calls.service
---------
Co-authored-by: FusionPBX <markjcrane@gmail.com>
* Update system_status.php
Adjust column width to make some overflowing multi-line values into one-line view.
* Enhanced dashboard system_status card with more useful system info
- Added OS version detection
- Fixed not working memory usage with format (60% (1G/2G))
- Replaced memory available with swap usage
- Improved disk usage display format (57% (12G/20G))
- Added DB max connections display (Current/Max)
* Added style colors based on thresholds
* Update app_languages.php
Additional languages for new system_status items
* use boolean setting as true boolean
* Update settings class to use the php filter_var function for boolean
Using the built-in filter type for boolean seems like a better option as they are faster, already hardened, and more widely tested.
I found this better method used originally by Mark J. Crane in 2022 in the content.php page so I included it here.
* Update settings class to use the php filter_var function for boolean
Using the built-in filter type for boolean seems like a better option as they are faster, already hardened, and more widely tested.
I found this better method used originally by Mark J. Crane in 2022 in the content.php page so I included it here.
* fix incorrect name on disk usage chart
* put correct information in disk usage for Linux and FreeBSD systems
* Update system_disk_usage.php
* Update system_disk_usage.php
* Translating apps to Georgian
* Translating apps to Georgian
* Translating more apps to Georgian
* Translating more apps to Georgian
* Translating more apps to Georgian
* Translating more apps to Georgian
* Translating more apps to Georgian
* Translating theme to Georgian
* Translating core to Georgian
* Translating core to Georgian
* Translating core to Georgian by Marie
* Translating core to Georgian
* Translating resources to Georgian by Marie
* Translating core to Georgian
* fix app_languages.php
When using session_path, the session must be active and will automatically activate the session. This is a better method so that the session is never started.
Co-authored-by: Tim Fry <tim@fusionpbx.com>