Commit Graph

261 Commits

Author SHA1 Message Date
Mark J Crane
9ba170b21c Update database select parameters 2025-10-20 12:27:23 -06:00
frytimo
6397baad34 Define button_icon_edit before use (#7584) 2025-10-18 22:27:38 -06:00
FusionPBX
56f4b968ef Refactor menu object creation in restore default 2025-10-16 12:47:00 -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
FusionPBX
76e2e7d3b7 Remove database app_name and app_uuid (#7562)
- Remove database app_name, app_uuid
  - This is handled automatically by the database class
- Remove redundant database::new()
2025-10-09 17:54:05 -06:00
FusionPBX
d1baf05891 Remove redundant database instances (#7535) 2025-10-01 08:56:06 -06:00
Alex
be5a03ce2f Security - Use POST method instead of GET for deleting groups (#7494)
* Security - Use POST method instead of GET for deleting groups

* Update user_edit.php

* Update user_edit.php

* Update dashboard_widget_edit.php

* Update dashboard_widget_edit.php

* Update device_vendor_function_edit.php

* Update dashboard_widget_edit.php

* Update device_vendor_function_edit.php

* Update menu_item_edit.php

* Update device_vendor_function_edit.php

* Update device_vendor_function_edit.php

* Update device_vendor_function_edit.php
2025-09-22 09:46:03 -06:00
Alex
0add297377 Fix menu item delete (#7486) 2025-09-10 11:59:46 -06:00
FusionPBX
ee16644e25 Rename methods used in restore default
Renamed methods
- delete to restore_delete 
- restore to restore_default
2025-05-28 19:49:45 -06:00
FusionPBX
b96b5f8c0f menu_item_protected deprecated
This protected feature has not been working correctly. At the moment commented out depending on feedback it maybe removed entirely.
2025-05-28 19:37:58 -06:00
K-Flagman
62791e4eb3 [CORE] [MENU] Feature Assign/Unassign User Groups (#7373) 2025-05-17 13:50:02 -06:00
FusionPBX
c3952028b1 Use the settings get method for the buttons 2025-04-14 10:36:21 -06:00
FusionPBX
de10ea2a4a Use settings get method for list_row_edit_button 2025-04-14 09:36:05 -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
fusionate
dd3288585c Menu: Add setting to reload menu when changing domains. 2025-03-06 20:08:48 -07:00
frytimo
d529021b3f Use boolean setting as true boolean (#7284)
* 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.
2025-03-04 11:25:47 -07:00
fusionate
7b3b3aa5f9 Menu: New option to set icon colors. 2025-03-03 14:08:05 -07:00
Alex
305f585b17 Add missing counter divs (#7277)
* Add counter div to voicemail messages and domain settings

* Update domain_settings.php

* Update menu_item_list.php

* Update domain_settings.php

* Update voicemail_messages.php
2025-02-25 16:24:16 -07:00
markjcrane
68c79ca0a3 Remove carriage return per line and leave only line feeds 2024-09-19 17:14:21 -06:00
fusionate
b05ebfc440 Menu - Edit: Add icon preview to items list. 2024-09-09 18:42:20 -06:00
fusionate
d8877203c7 Menu Edit - Item List: Fix count. 2024-09-09 17:42:23 -06:00
Alex
0c5a2ca784 Update streams.php (#7127)
* Update streams.php

* Update call_center_queue.php

* Update menu.php

* Update vars.php

* Update dashboard.php

* Update dashboard_edit.php
2024-09-09 15:25:24 -06:00
fusionate
bf7526f0ef Multiple Apps: Integrate content cards. 2024-09-04 17:51:23 -06:00
MarBifrost
b4edb3c3a0 Additional corrections to the Georgian translation (#7115)
* Corrections in Georgian translation

* Additional corrections to the Georgian translation
2024-09-02 09:00:55 -06:00
MarBifrost
906b3edf03 Corrections in Georgian translation (#7113) 2024-08-31 10:02:51 -06:00
FusionPBX
e0ed81a5ba Re-use the Database connection 2024-08-29 03:35:38 -06:00
FusionPBX
83c286c513 Update menu_item_edit.php
Re-use the database connection
2024-08-29 02:40:43 -06:00
NorwayFun
aabc2f33a8 Localization: Add full support for Georgian language (#7110)
* 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
2024-08-28 09:59:02 -06:00
frytimo
2cbb4dbc31 remove instances where a pointer is used in a foreach loop for value (#7108) 2024-08-22 12:41:10 -06:00
fusionate
5416a4dd69 Minor adjustment to comments in previous commit. 2024-08-12 16:33:52 -06:00
fusionate
0e3a861cf5 Dashboard - Edit, Menu Item - Edit: Integrate icon search. 2024-08-12 16:25:21 -06:00
fusionate
4b23913555 Update Font Awesome to v6.6.x, adjust some icon references. 2024-08-09 18:14:52 -06:00
FusionPBX
1252649a0c Replace $db with $database 2024-08-05 19:52:45 -06:00
markjcrane
22ba339505 Allow one line feed at the end of the file 2024-08-05 18:27:59 -06:00
FusionPBX
096fd4f898 Remove redundant new database objects 2024-08-05 09:31:20 -06:00
FusionPBX
30735f6587 Update menu_item_list.php 2024-08-05 09:28:19 -06:00
Anthony
86e588a589 Added/Adjusted translations in core app_languages.php files (#7008)
* Added translations to core/dashboard

* Added Turkish translations to core/menu

* Added Turkish translations to core/install
2024-06-13 13:47:30 -06:00
fusionate
2d3dca985d Upgrade - CLI (Manual & Menu): Mitigate PHP 8.x warnings, minor adjustments. 2024-05-13 14:19:34 -06:00
fusionate
b369fad190 Upgrade - Menu & Permission Defaults: Mitigate PHP 8.x warnings. 2024-05-13 12:49:29 -06:00
FusionPBX
4c60313ed7 Remove deprecated fields id and v_id 2023-12-04 13:27:20 -07:00
Anthony
84f487cba8 Added Greek translations for fusionpbx/core. (#6809)
* Added Greek translations to  domain_settings/app_languages.php

* Added Greek translations for domains/app_languages.php

* Added Greek translations for groups/app_languages.php

* Added Greek translations for menu/app_languages.php

* Added Greek translation for upgrade/app_languages.php

* Added Greek & Great Britain translations for user_logs/app_languages.php

* Added Greek translations for user_settings/app_languages.php

* Added Greek translations for users/app_languages.php
2023-10-06 13:46:03 -06:00
OskarFranck
0773a346c2 Bulk changes of Swedish translations (#6807)
authored-by: oskfra <oskar.franck@bahnhof.net>
2023-09-28 09:32:34 -06:00
FusionPBX
c6d966395e Use settings class for app_defaults.php 2023-09-16 00:22:12 -06:00
FusionPBX
1f0d24a447 Show only the Parent Menus 2023-06-28 14:08:01 -06:00
markjcrane
32051873be Use __dir__ to find resources/require.php 2023-06-16 22:49:09 -06:00
frytimo
d7bbcd89f5 Use magic constant dir (#6711)
* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__

* use magic constant __DIR__ to load only functions.php

* replace spaces with tab character

* update dirname command to use levels instead of nesting

* use magic constant __DIR__

* update dirname command to use levels instead of nesting

* Update access_control_edit.php

* Update access_control_import.php

* Update access_controls.php

* Update dnd.php

* Update access_controls_reload.php

* Update call_center_agents.php

* Update call_center_agents.php

* Update fax_queue.php

* Update login.php

* Update pdo.php

* Update pdo_vm.php

* Update switch.php

* Update index.php

* Update css.php

* Update v_mailto.php

* Update fax_to_email.php

---------

Co-authored-by: FusionPBX <markjcrane@gmail.com>
2023-06-15 11:28:23 -06:00
fusionate
992a7e6f62 Menu Item - List: Updates for PHP 8.1 2023-06-06 22:26:58 +00:00
fusionate
16aa7f8d3a Menu - Edit: Updates for PHP 8.1 2023-06-06 22:26:35 +00:00
Alex
fb8d0e2983 fix bugs in php 8.1 changes (#6744)
* Update voicemail_greetings.php

* Update recordings.php

* Update recording_edit.php

* Update phrases.php

* Update phrase_edit.php

* Update music_on_hold_edit.php

* Update fax_queue.php

* Update extensions.php

* Update email_templates.php

* Update email_queue_edit.php

* Update dialplan_inbound_add.php

* Update device_profiles.php

* Update device_profile_copy.php

* Update contact_address_edit.php

* Update call_recordings.php

* Update call_center_agent_edit.php

* Update call_center_agents.php

* Update call_center_queues.php

* Update call_block.php

* Update menu_edit.php

* Update default_setting_edit.php

* Update database_edit.php
2023-06-05 12:41:28 -06:00
markjcrane
8eb36dc7c2 Clear the group_array between iterations 2023-05-27 12:16:42 -06:00