Commit Graph

52 Commits

Author SHA1 Message Date
markjcrane
07d2040ddc Use the database connection from the constructor 2025-12-29 09:52:24 -07:00
frytimo
75b5f00812 Fix network widget speed calculation (#7679)
- Fix the speed to calculate on bits instead of bytes so the speed transfer rates are more accurate
- Add PHPDoc blocks to the dashboard class (No code changes)
2025-12-24 09:48:15 -07:00
frytimo
bbe7b9e9b7 Documentation, format class, no modification. (#7628) 2025-11-18 18:49:39 -07:00
markjcrane
bf5bb4f642 Fix multiple PHP warnings 2025-11-01 19:58:21 -06:00
FusionPBX
dda18481ec Refactor PHP code (#7574)
* Use settings-get method
- get default, domain and user settings
- Replace _SESSION

* Simplify get domain paging

* Change isset using empty

* Fix token name and hash

* Add new default settings category: contact, name: default_sort_column, and default_sort_order

* Update app_config.php

* Update footer.php

* Fix require.php and core/dashboard/index.php (#7563)

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Fix require.php and core/dashboard/index.php

* Update destinations.php

* Update permission.php

* Update require.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
Co-authored-by: FusionPBX <mark@fusionpbx.com>

* Update header.php

* Use settings get classes (#7567)

* access_control

* azure

* azure

* basic_operator_panel

* bridges

* call_block

* call_broadcast

* call_center

* call_flows

* call_forward

* call_recordings

* do_not_disturb

* feature_event_notify

* follow_me

* remove unused object properties

* fix esl command

* fix esl command

* conference_centers

* conference_centers - remove whitespace

* conference_controls

* conference_profiles

* conference_profiles

* Delete core/websockets/resources/classes/socket_exception.php.original~

* Delete core/websockets/resources/classes/websocket_server.php.original~

* conferences

* destinations

* device

* dialplan

* email_queue

* event_guard

* extension_settings

* extension

* fax

* fax_queue

* fifo

* gateways

* ivr_menu

* modules

* switch_music_on_hold

* number_translations

* phrases

* pin_numbers

* provision

* switch_recordings

* registrations

* ring_groups

* sip_profiles

* sofia_global_settings

* streams

* presence

* switch_files

* time_conditions

* vars

* voicemail_greetings

* voicemail

* ringbacks

* contacts

* xml_cdr

* authentication

* dashboard

* default_settings

* domain_settings

* email_templates

* permission

* user_logs

* user_settings

* users

* button

* cache

* captcha

* remove cli_option

* remove directory.php for switch_directory class

* email

* file

* groups

* event_socket use config object

* Use intval to give an integer port

* switch_settings

* tones

* fix object used before initialization

* menu

* fix copy paste error for switch_files.php

* always include require.php for framework files

* Fix missing properties

* set the action

* Use the $database object

* Add missing class properties

* Fix the domain_name

* Use public scope for domain_uuid and domain_name

* Add missing parameters

* Correct the user_uuid parameter

* Add json_validate and use it in the dashboard
update indentation on functions.php

* Intialize the active_registrations variable

* Define the $parameters

* Set a default value for user_setting_enabled

* Add condition domain_uuid not empty

* Add not empty condition for domain_uuid

* Declare the global variables

* Update how the defaults are set use ??

* Use ?? to set the default values

* Update call_center_queue_edit.php

* Prevent an error

* Add domain_name property

* Fix the null coalescing operator

* Removed domain_uuid from the URL

* Change condition to check sip_profile_domain_name

* Refactor domain_uuid declaration and comments

Removed redundant domain_uuid declaration and updated comments.

* Account for an empty value

* Refactor constructor to use settings array

Updated constructor to accept settings array for domain UUID and database initialization.

* Refactor xml_cdr.php to improve variable organization

Removed duplicate domain_uuid declaration and reorganized private variables for better structure.

* Enhance transcription button logic and icon display

Updated transcription button visibility conditions and improved application icon handling in the call flow summary.

* Refactor settings initialization in domains.php

Updated settings initialization to include domain_uuid and user_uuid.

* Modify domain change condition in require.php

Updated condition to check if 'domain_change' is not empty before proceeding.

* Set default_setting_enabled to true by default

* Enhance domain UUID check in access controls

* Enhance domain UUID check in settings list

* Refactor category display logic in vars.php

* Simplify list row URL generation

Removed domain UUID check from list row URL construction.

* Refactor module category display logic

* Fix SQL query by removing parameters variable

* Initialize result_count variable for call recordings

* Refactor leg variable usage in xml_cdr_details.php

* Update conference_room_edit.php

* Change GET to REQUEST for order and search variables

* Set timezone and SQL time format in recordings.php

Added timezone and SQL time format settings.

* Set default for ring group greeting

* Improve domain UUID check in stream listing

* Handle null voicemail_option_param safely

* Add file existence check for greeting files

Check if greeting file exists before getting size and date.

* Improve domain UUID check in email templates

* Update FIFO strategy dropdown and description text

* Add multilingual agent descriptions

Added multilingual descriptions for agents in the app_languages.php file.

* Add music on hold descriptions

* Add the chime list description

Updated copyright year from 2024 to 2025.

* Fix domain UUID check and handle email subject decoding

* Add null coalescing for $value in email_test.php

Ensure $value is not null by providing a default empty string.

* Handle undefined dialplan_uuid in input field

* Add translations for 'Status' label in multiple languages

* Fix typo in config instance check

---------

Co-authored-by: frytimo <tim@fusionpbx.com>
2025-10-15 21:24:59 -06:00
Alex
4959f6a1e7 Update dashboard.php (#7560) 2025-10-09 16:09:18 -06:00
Alex
e90d47c6e7 Fix dashboard copy button (#7557) 2025-10-08 16:51:26 -06:00
Alex
3bf031b6f5 Dashboard: Adjust icon widget clickable area (#7536)
* Dashboard: Adjust icon widget clickable area

* Update domains.php

* Update registrations.php
2025-10-01 10:25:04 -06:00
FusionPBX
2fe8b65988 Define app_name and app_uuid as constants (#7534)
* Set a constant on each class for app_name and app_uuid
* Update the database class to use the app_uuid and app_name
* Update the classes to use the database::new()
* Remove the instances of 'new database'
2025-09-30 21:37:09 -06:00
frytimo
c9b76df627 Create network usage dashboard widget (#7531)
* Add new dashboard widget system_network_status

* Add new dashboard widget system_network_status

* Initial working commit

* Fix max_points used twice

* Update system dashboard service to send network traffic

* Remove console logging used for debugging

* Remove interface check

* Return instead of exit on a dashboard widget

* Use default value instead of null coalescing operator

* Disable the details state (to be added later)

* Set to Line type only

* Update config.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2025-09-24 14:27:10 -06:00
Alex
d45740f8fb Dashboard: Fix php warnings (#7492)
* Dashboard: Fix php warnings

* Update dashboard_widget_list.php

* Update dashboard_widget_edit.php

* Update dashboard.php

* Update parent.php

* Update footer.php

* Update active_calls.php

* Update active_calls.php
2025-09-12 11:37:45 -06:00
Alex
abf431ea3b Dashboard Edit: Add widget group assign/unassign feature (#7489)
* Dashboard Edit: Add widget group assign/unassign feature

* Update dashboard.php

* Update app_languages.php

* Update index.php

* Update dashboard_widget_edit.php

* Update dashboard_widget_list.php

* Update dashboard.php
2025-09-10 14:55:59 -06:00
Alex
e8681737dc Add ability to create multiple dashboards (#7483)
* Add ability to create multiple dashboards

* Create dashboard_widget_list.php

* Create dashboard_widget_edit.php

* Update dashboard_edit.php

* Update dashboard_config_json.php

* Update dashboard.php

* Update app_languages.php

* Update app_defaults.php

* Update app_config.php

* Update dashboard.php

* Create config.php

* Update content.php

* Update icon.php

* Update parent.php

* Update template.php

* Update config.php

* Update config.php

* Update domains.php

* Update config.php

* Update active_calls.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update call_forward.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update domain_limits.php

* Update caller_id.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update config.php

* Update registrations.php

* Update ring_group_forward.php

* Update config.php

* Update config.php

* Update switch_status.php

* Update config.php

* Update system_counts.php

* Update system_cpu_status.php

* Update system_disk_usage.php

* Update system_services.php

* Update system_status.php

* Update config.php

* Update config.php

* Update voicemails.php

* Update config.php

* Update missed_calls.php

* Update recent_calls.php

* Update dashboard_widget_edit.php

* Update app_languages.php

* Update dashboard_widget_edit.php

* Update index.php

* Update parent.php
2025-09-08 17:33:29 -06:00
Alex
324c007fd4 Dashboard - Automatically increase parent widget height if there is overflow (#7460)
* Remove scroll bar
2025-08-16 07:57:43 -06:00
Alex
13fcba2b85 Dashboard - Fix child widget styling (#7452)
* Dashboard - Fix child widget styles

* Update parent.php

* Update config.php
2025-08-07 12:22:31 -06:00
Alex
b64ebb374d Dashboard - Use a class to determine the row span (#7451)
* Dashboard - Use a class to determine the row span

* Update parent.php

* Update icon.php

* Update content.php

* Update domains.php

* Update dashboard_edit.php

* Update missed_calls.php

* Update recent_calls.php

* Update voicemails.php

* Update system_counts.php

* Update system_cpu_status.php

* Update system_disk_usage.php

* Update system_services.php

* Update system_status.php

* Update system_services.php

* Update switch_status.php

* Update registrations.php

* Update ring_group_forward.php

* Update caller_id.php

* Update domain_limits.php

* Update call_forward.php

* Update active_calls.php
2025-08-06 17:01:09 -06:00
Alex
9dc4ee9046 Dashboard - Use the uuid instead of name for widget ids (#7443)
* Dashboard - Use the uuid instead of name for widget ids

* Update active_calls.php

* Update domain_limits.php

* Update caller_id.php

* Update registrations.php

* Update ring_group_forward.php

* Update switch_status.php

* Update system_counts.php

* Update system_cpu_status.php

* Update system_services.php

* Update system_status.php

* Update voicemails.php

* Update missed_calls.php

* Update recent_calls.php

* Update content.php

* Update icon.php

* Update parent.php

* Update domains.php
2025-08-01 11:51:34 -06:00
Alex
b1dd179f85 Dashboard - Minor bug fixes (#7440)
* Dashboard - Minor bug fixes

* Update config.php

* Update config.php

* Fix label background color

* Update dashboard_edit.php

* Update parent.php

* Update index.php

* Update index.php
2025-07-31 17:18:33 -06:00
Alex
cf32511d61 Dashboard - Use CSS grid in parent widgets (#7437)
* Dashboard - Use CSS grid on parent widgets

* Update parent.php

* Update css.php

* Update template.php
2025-07-30 10:58:11 -06:00
Alex
0fc28924a1 Dashboard - Allow numbers in dashboard name (#7436)
* Dashboard - Allow numbers in dashboard name

* Update parent.php

* Update parent.php

* Update index.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2025-07-30 10:41:59 -06:00
Alex
fc4b8a2652 Dashboard - Allow drag and drop in parent widgets (#7431)
* Dashboard - Allow drag and drop in parent widgets

* Update parent.php

* Update index.php

* Update config.php

* Update missed_calls.php

* Update recent_calls.php

* Update voicemails.php

* Update active_calls.php

* Update config.php

* Update config.php

* Update config.php

* Update voicemails.php

* Update parent.php

* Update voicemails.php

* Update parent.php

* Update parent.php

* Update index.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2025-07-23 17:32:39 -06:00
frytimo
807f80da94 Update dashboard with cpu status websockets (#7400)
* Remove setting hardcoded timer

* Use websockets for real-time CPU status on dashboard

* Add system_dashboard service file

* moved javascript file to core
2025-06-27 15:25:32 -06:00
FusionPBX
52825a8f59 Allow additional characters for the name, content and details
- Allow additional characters
- Allow multi-lingual
- Use escape to keep it secure
2025-06-11 16:12:30 -06:00
frytimo
08001488f4 Allow namespace in auto loader (#7307)
* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove class_exists wrapper for class definitions

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove include statement of class file

* remove closing tag

* remove invalid method params

* remove closing tag

* remove closing tag

* Update auto_loader to load each class file in the project
Update the auto_loader class to use an include statement on each file in the project to load the class within the file. This will allow mismatched names within the file to be loaded and mapped according to the declaration instead of the filename. The class is then checked against the parsed classes from the PHP engine so that namespaces are available and mapped to the file they were declared in. An update was also made to the search algorithm used to find a file that was not already loaded by collapsing the array to have only valid matches to increase performance on a cache miss. Logging within the auto_loader has been moved to a function.
Multiple files were modified to allow the include statement. When the class has the `if(class_exists())` statement, the auto_loader is called to check for the class. This caused an infinite loop scenario so all wrappers have been removed. The auto_loader will now break the loop by directly modifying the internal classes array instead of trying to restart with the 'reload_classes' method.

- APCu is used to cache classes so any loading of the classes is done only once. To clear the APCu cache, restart php-fpm or call the auto_loader::clear_cache() function.
- Cache file is used when APCu is not available. To clear the cache remove it from the tmp folder or call the auto_loader::clear_cache() function.
- All classes must no longer have a class_exists wrapper to benefit from the performance boost.
- Classes should not be directly included when the auto_loader is used.

* remove include statement of class file

* Update destinations.php
2025-03-12 13:55:47 -06:00
frytimo
dc22e87fc2 fix dashboard php warnings (#7218) 2025-01-17 12:48:11 -07:00
FusionPBX
ced8c16a28 Allow right click open in new window 2024-09-26 09:47:12 -06:00
markjcrane
5cbc53c7d9 Fix end of file line only use one line feed at the end of the file 2024-09-19 16:33:17 -06:00
FusionPBX
54484dedd5 Update dashboard content widget 2024-08-28 12:57:27 -06:00
FusionPBX
a7b1644436 Update the dashboard path 2024-08-22 18:12:43 -06:00
Alex
1a9353ac88 Update parent.php (#7109)
* Update parent.php

* Update dashboard_edit.php

* Update app_defaults.php
2024-08-22 17:59:12 -06:00
FusionPBX
8419ca346d Create parent.php 2024-08-20 17:41:22 -06:00
FusionPBX
193a03291c Update content.php
- Use vertical align for short text and align top for larger amounts of text.
- Adjust values for a row spand of 1, 2, or 3 for height and max-height
2024-08-14 19:14:17 -06:00
Alex
43d102b51c Added label enabled dashboard setting (#7096)
* Added label enabled dashboard setting
2024-08-14 17:44:11 -06:00
FusionPBX
3e9aaf7bfe Dashboard name translation 2024-08-02 14:06:35 -06:00
FusionPBX
8fd37c6c3c Delete needs to include dashboard_groups 2024-08-02 12:19:08 -06:00
Alex
33e491a75d Fix dashboard widget hover transition (#7075)
* Fix dashboard widget hover transition

The background colors were being set twice

* Update dashboard_edit.php

* Update index.php
2024-07-29 21:25:05 -06:00
FusionPBX
f40319ba91 Add dashboard content text align 2024-07-20 23:37:32 -06:00
FusionPBX
f45b6f4033 Add dashboard window size
- Add window width and height
2024-07-19 17:03:21 -06:00
Alex
1ef5f1dab0 Dashboard - Icon widget hover settings (#7016)
* Update system_counts.php

* Update system_cpu_status.php

* Update system_status.php

* Update voicemails.php

* Update missed_calls.php

* Update recent_calls.php

* Update index.php

* Update app_defaults.php

* Update app_defaults.php

* Update index.php

* Update index.php

* Update dashboard_edit.php

* Update index.php

* Update app_defaults.php

* Update css.php

* Update icon.php

* Update dashboard_edit.php

* Update app_config.php

* Update app_defaults.php

* Update css.php

* Update app_languages.php

* Update index.php

* Update dashboard_edit.php
2024-06-21 16:44:31 -06:00
fusionate
7499606fcb Dashboard - Icon & Content Widgets: Better integration of color settings. 2024-06-17 15:27:59 -06:00
fusionate
30c8fe9a51 Dashboard - Widgets: Add Content widget, enhance Icon widget. 2024-06-13 10:48:24 -06:00
Alex
7640cd21c9 Dashboard - Add row span setting (#7007) 2024-06-12 16:49:34 -06:00
fusionate
e692dc35c4 Dashboard - Icon: Mitigate PHP 8.x warning. 2024-06-10 13:03:02 -06:00
Alex
66b57a7784 Dashboard - Add gradient background color settings (#6972)
* Dashboard - Add gradient background color setting
2024-05-08 09:54:18 -06:00
Alex
5eead0d88a Dashboard - Add disabled option to details state (#6962)
* Dashboard - Add disabled option to details state
2024-04-25 23:36:54 -06:00
FusionPBX
64e3a6792d Rename core/dashboard/resources/classes/dashboard/icon.php to core/dashboard/resources/dashboard/icon.php 2024-04-24 20:48:27 -06:00
FusionPBX
d4ae2952a3 Add Dashboard settings URL and Icon 2024-04-24 19:49:16 -06:00
fusionate
9465e36b37 Dashboard - Edit: Updates for PHP 8.1 2023-05-17 00:00:40 +00:00
fusionate
2fbd1b238d Dashboard: Updates for PHP 8.1 2023-05-13 04:51:15 +00:00
frytimo
69bd42af05 remove unneeded destruct methods as GC has higher performance (#6631)
Co-authored-by: Tim Fry <tim@voipstratus.com>
2023-04-27 20:18:53 -06:00