v7.0.0-alpha.4
Pre-release
Pre-release
·
57 commits
to master
since this release
[7.0.0-alpha.4] - 2026-02-05
Bug Fixes
- [breaking] Fix error where
DEDALO_HIERARCHY_TLD2_TIPOwas used insteadDEDALO_ONTOLOGY_TLD_TIPOinontology::create_parent_grouper. This makes nothing is saved as model in the ontology record. - [breaking] Fix bug where non cloned
query_objectcauses crashes on reload page because theresolve_query_object_sqlcomponents methods re-parse the same object changing the_Q1_to array. Added new check to prevent re-parse objects with propertysentencealready defined. - [breaking] Fix
component_common::is_emptyerror checking empty objects. - [breaking] Fix DB index name bug where
{$table}_relation_flat_ty_st_gin_idxwas overwrite bydata_relations_flat_ty_st_si. - [breaking] Add
component_common->savecontrol to prevent exec the database from saving the record when the component is in 'search' mode. (component_childrenissue when selecting values in the search panel). - [breaking] Fix
sections::deletebug where delete ontology record tipo was wrong (getting$section_idfrom main section_id instead the correct$current_section_id). - Fix
get_interval_raw_activity_dataissues and optimize code. - Fix
diffusion_section_statsv7 model issues - Fix missing language cases on component
set_data. Now, when given data is checked for id, an additional lang check is made too. - Remove deprecated
get_valor methodand fix diffusion value cleanup - Fix
component_section_recorderrors accessingdata_instanceprivate properties directly instead to access using the proper methods. - Fix
ts_objectterm fallback error where language fallback fails. - Update data handling to use value property instead of direct array access
- Fix non menu scenarios issue in
ui.enter_fullscreen - Improve tag deletion logic and add clarity comments
- Normalize component name constant and improve tag deletion logic
- Update component text area tag data retrieval method
- Refactor text area component to use
get_data()instead ofget_dato()for tag resolution - Improve tag label generation for person components with better data handling and comments
- Improve text sanitation and variable naming
- Correct
context_valuereference andvalueaccessors - Fix incorrect
update_user_activity_statscalculation of last saved user activity. This causes all quit actions to recreate the user activity stats. - Fix
component_security_access::get_element_datalistbug where iterating through multiple request_config items, $v6_children was being replaced on each iteration instead of accumulating results. - Improve tag deletion logic and parameter naming in text area component
- Corrected text area component to check item instead of item value for empty validation
- Update truncate method calls to use component_string_common namespace
- Normalize white space in text area component
- Update data assignment to use
set_datamethod for consistency - Fix v6 mode
editing_presetgetting value inrender_searchthat do not renders the basic search area to place the components. - Fix v6 mode
editing_presetgetting value inrender_searchthat do not renders the basic search area to place the components. - Fix
component_jsonissues saving data in format v6 (non object as {value: []}) - Fix v6 mode
search.save_presetgetting value issues. - Rename test method and enhance data handling tests
- Correct variable name in text area component
- Use $this instead of local component instance for data operations
- Fix
component_numberbug where 'is_empty' was used instead the correctis_empty_data. - Rename dato to data variable and update documentation comment
- Standardize data retrieval and handling in
component_common - Update component data reference in comments from
$this->datato$this->get_data() - Add semicolons for consistency and readability
- Add circular reference detection to
get_caller_by_modelutility - Rename dato to data references and update method calls
- Update nullish coalescing operator syntax for section_id access
- Change value of
section_idcomponent to use first data element instead of full data array - Rename test method and update expected type to array
- Refactor
component_relation_relatedto use 'data' instead of 'dato' for better clarity and consistency - Fix
component_imageold 'valor' call. Changed by 'value'. - Fix
component_media_commonold 'valor' call. Changed by 'value'. - Fix
relation_listissue where do not return and expected array after the search (db_result). - Update return type and documentation for
get_data_with_referencesmethod - Standardize terminology from "dato" to "data" in component_relation_common class
- Add default properties array in
in_array_locatormethod - Enhance locator validation and add
type_relsupport incomponent_relation_common - Rename dato to data and update time machine saving logic
- Rename
data_valuetodata_elementsfor consistency and correct data handling - Handle component portal data retrieval with proper lang value access and ensure consistent value extraction
- Correct line ending in textarea test assertion
- Improve code formatting and readability in render_list_state.js
- Handle null offset in pagination with null coalescing operator
- Fix
section::section_record_existssyntax error. - Refactor config section creation in tools_register class
- Handle missing mandatory properties in component relation parent
- Allow NULL response type in component relation parent test
- Standardize value assignment in component relation model
- Correct typo and enhance section data retrieval. Now
relation_listget fromsection_recordinjected to thesection. - Rename
get_datatodata_paginatedvariable for clarity and consistency - Optimize data handling by returning early when no inverse locators found. Avoid infinity loop setting data again.
- Refactor order clause handling and remove unused variable
- Update test section_id and enhance data validation tests
- Correct variable naming from dato to data for consistency in locator removal logic
- Replace
get_dato()andset_dato()withget_data()andset_data()for consistency - Rename
$datosvariable to$test_datafor clarity - Rename dato to data throughout update component logic and database schema
- Rename set_dato_resolved method to set_data_resolved for consistency
- Rename widget data action from 'get_widget_dato' to 'get_widget_data'
- Rename set_dato_resolved methods to set_data_resolved in component_common_Test
- Rename
get_dato()method toget_data()for consistency - Rename
$current_valueto$valueand$counter_dato_updatedto$counter_data_updatedfor clarity and update DB schema references - Align code formatting for model, order_number and label properties
- Correct variable name consistency in
set_langmethod - Correct debug log to use
section_idinstead ofparentfor better identification - Add optional chaining to widget filtering
- Disable data retrieval and use component list values for filter list
- Fix test unit
elementsissues about value parameters adn new values for safe test. - Update data lookup from 'id' to 'widget_id' across multiple widget files
- Standardize
widget_idproperty usage across state widget and JS logic - Prevent undefined array error in search trait
- Fix
search.recursive_groupsissue where array values from component are not selected correctly (they are no array of objects{value:"car",lang:"lg-eng"}but array of strings like["!*"]because the value comes from search presetq). - Simplify date component search handling and improve data value retrieval
- Enhance type safety and object validation in component relation handling
- Simplify text_value assignment in
render_search_component_json - Handle null/invalid q object gracefully in resolve_query_object_sql
- Handle empty query values and improve q parameter processing
- Improve query logic for empty, not-empty and equals operators with better language scoping and
unaccentsupport - Normalize query whitespace and operator spacing for search components
- Escape q string for DB and trim query values to prevent whitespace issues
- Handle false values in search trait to prevent processing invalid objects
- Add key validation to is_empty_data method to only process 'value' keys
- Fix
component_date::get_final_search_range_secondsbugs about second calculation for the search range seconds. - Rename get_dato to get_data and update related references
- Standardize API response field name and logger documentation
- Fix missing row['full_count'] case issue in search
trait.count->count. - Fix missing
$order_obj->component_pathcase issue in searchtrait.order->build_sql_query_order. Skip order column when component_path is not defined. - Fix
component_iriempty value check error usingcomponent_commonfunction. Created selfis_emptyversion to checkcomponent_irispecific properties. - Fix bug where
component_text_areado not check properly the empty values to add fallback data. - Fix
component_text_areav7 data format issues in client JS render (search mode). - Fix widget class
tagsv7 data format issue. - Update CSS styling and animation for export tool components
- Fix type inconsistency in
get_ontology_file_listinstr_manager. - Change
area_thesaurus->get_hierarchy_name'get_valor' by 'get_value'. - Remove redundant data assignment and standardize language handling
- Enhance
fetch_onemethod with row processing and null safety - Update return type hint and add missing conditional logic in time machine tools
- Update
delete_recordmethod call todelete - Correct sqo filter logic and comment out unused matrix_id config
- Update set_column_data parameter type hint to include object
- Remove unnecessary CSS map file from staging
- Fix v6 issues in
hierarchyandontologyclasses. - Fix v6 issue in
render_tool_hierarchychecking empty values. - Improve destroy method result handling and debugging
- Improve activity logger back-end with better validation and data handling
- Simplify value handling and null safety for activity section case
- Remove trailing brace and add dd_grid handling for tm_record case
- Add missing process row for
db_result->fetch_onemethod. - Correct variable name references in time machine tool
- Fix v6
sectioninstance fromdd_core_api::get_element_context. - Fix
DBi::_getConnection_mysqlissues and duplicates. - Fix
section_record->duplicatesave syntax error. - Fix incorrect API entry pint debug
total_time. - Fix
tools_register::create_simple_tool_objectissue withdescriptionvalue type (expected array). - Fix
ontology::add_section_record_from_dd_ontologyv6 legacy section creation. - Fix legacy section new record creation. Change it to new
create_recordmethod. - Fix
tm_record->get_section_recordissue when the data is not array as expected. Automatic conversion is made. - Rename user ID fields to lowercase for consistency
- Update section record retrieval and variable naming for consistency
- Update component history and time machine modes to 'tm' for consistency
- Standardize user ID property names and component type references
- Update user ID field and component type references in text area note creation
- Update method references to use 'this' context and convert helper functions to class methods
- Update time machine notes parent_section_tipo and clean up value properties
- Add optional chaining and section type validation for time machine records
- Handle
bulk_process_idproperly in time machine list view - Refactor time machine tool to use modern db access and correct component saving logic
- Fix Service Time Machine Null Pointer Error. Add
caller_tipotoservice_time_machineand life-cycle status control for destroyed instance cases. - Fix
component_relation_children::sort_childrenerror where empty $data causes and error. Now is checked and added an basic data when is needed. - Add missing refresh parent children data on
ts_object.delete_termJS when ats_objectinstance/node is deleted. - Cast section_id to int in section_record::get_instance calls
- Enforce integer type for section IDs
- Standardize data access from entries instead of value across components
- Use correct data reference in get_lib_data method
- Pass language parameter to fallback method
- Handle empty config and add ignore_columns support
Documentation
- Enhance
get_grid_valuedocumentation in text area component - Add Apache configuration guide for Dédalo with PHP 8.5 and SSL support
- Update PHP version from 8.4 to 8.5 in installation guide
- Update installation guide with
apache/phpconfiguration reference - Enhance
set_datadocumentation and handle empty string case - Add
component_svgdocumentation with data model and methods - Update comment style and parameter naming in
component_string_common - Update
component_select_langdocumentation and clarify data handling - Update documentation for Dédalo v7 alpha release and dependencies
- Update
component_section_iddocumentation and remove unused methods - Rename 'dato' to 'data' in component_relation_related comments
- Update function names and parameter names in observer documentation
- Update component_relation_index method documentation and variable naming
- Enhance
component_relation_indexdocumentation and remove unused methods - Update text area component documentation and features
- Update
get_data_paginatedmethod documentation and variable naming - Enhance query object resolution documentation and variable naming
- Enhance
component_relation_childrendocumentation and method descriptions - Simplify logger activity comments in component classes
- Update
get_archive_statesclass to use consistentget_data()method and$datavariables instead ofget_dato()and$datofor better code clarity and maintainability - Remove copyright year from `index.php header
- Add direct object comments to component type mappings
- Enhance code documentation for query object handling with detailed comments explaining
BETWEEN,SEQUENCE, and comparison operators logic - Clarify literal string search description and fix accent-insensitive matching
- Enhance
component_jsonclass with detailed JSON path query documentation and optimizations - Rename dato references to data for consistency in
component_common - Rename user ID test methods to snake_case
Features
- [breaking] Aggressive refactoring of the class
ts_objectfor clarity and performance. - [breaking] Refactor save path variable naming and improve empty column handling
- Add
object_cachemanager to handlesection_record_instances_cacheandcomponent_instances_cache. - Rename get_terms to get_annotations and fix HTML cleaning
- Simplify language data propagation in
tool_import_files - Improve geolocation data handling and error reporting
- Refactor fallback data processing with consistent naming
- Refactor
set_valuemethod to accept key and string_value parameters - Enhance
save_valueandupdate_changed_datato properly handleitem_valuepersistence - Add supported tag types array to TR class
- Replace
TR::conform_tr_datawith$this->sanitize_textfor consistent text sanitization - Add
sanitize_textmethod to remove malicious script tags from html content - Add
truncate_textmethod tocomponent_string_commonclass - Add default records separator property to component string common
- Add test for
get_plain_textmethod incomponent_text_area - Add error handling tests for text area component
- Enhance
is_emptymethod and text area component - Enhance
component_text_areatest with dynamic language handling and fallback support - Update
component_text_areatags documentation to includetags_drawproperty - Simplify lang code retrieval and remove deprecated logic
- Add sample context and data files for SVG component
- Implement __get and __set magic methods to prevent access to undeclared properties
- Add password encryption in
set_datamethod - Change
component_relation_childrento useget_datainstead ofload_component_data - Convert data property to private access in sections class
- Update content value rendering to use media URL from files_info
- Add empty data check to prevent processing null values
- Add sample data files for API and context
- Add comprehensive API data sample with rich text content and tag structures
- Add sample API data for svg component
- Add sample data files for testing
- Add sample data files for API and context
- Add locator lookup key builder and data validation methods for relation components
- Refactor data handling to include
validate_data_elementmethod intoset_data. Now the components can change its data before set it. - Refactor component filter data handling to use locator objects
- Enhance locator lookup key generation with comprehensive property set
- Rename
get_all_datatoget_dataand improve filtering logic - Add sample data files for testing
- Add return type declaration and cleanup unused code in component classes
- Uncomment and implement
get_valorandget_diffusion_valuemethods - Refactor section record creation to use section::create_record method
- Add support for forced section_id during creation
- Refactor parent section creation logic to use
section_record::exists_in_the_database() - Add section creation logic for missing sections during CSV import
- Refactor section creation logic in tool_import_files
- Refactor section creation logic to use explicit create_record method
- Add
get_element_datamethod to retrieve component/section data - Remove deprecated
get_valorandget_diffusion_valuemethods - Rename
get_datotoget_datafor consistency - Persist resolved data in component common class
- Enhance data retrieval with caching and null handling
- Add cycle detection to recursive children retrieval
- Rename datos column to data in additional tables
- Update data retrieval methods to use
get_data()instead of deprecatedget_dato()and improve null safety - Optimize ontology update widget data processing
- Add section_id property and refactor class structure
- Rename
set_to_force_reload_datotoset_to_force_reload_dataand update related documentation - Standardize active request config cache file name
- Add new ontology definitions via
ontology.json - Rename
idproperty towidget_idfor better clarity and consistency - Update component_external type mapping from 'misc' to 'relation' and refactor widget implementations
- Rename
get_datotoget_dataand update property references - Rename
widget_idproperty for consistency - Simplify widget filtering logic
- Extend component security access handling to include info and filer records components
- Refactor query building to use parameterized SQL with explicit type casting
- Enhance component relation query handling with improved operator support
- Simplify date query logic with JSON path operators
- Refactor date query construction for improved clarity and parameter handling
- Enhance query object handling and SQL generation for component JSON
- Enhance JSON component query handling with improved JSON path support and database escaping
- Add matrix table reference to search objects
- Enhance query resolution with improved q handling and validation
- Enhance data type handling and query logic
- Update get_archive_weights to use typed return and data property naming
- Handle missing data value gracefully
- Enhance date component query handling with improved documentation and operator support
- Enhance password search query with secure jsonb comparison
- Add reset session for Dédalo API end point. When a section read fails (Throwable exception), the session is removed to unlock next request.
- Add
get_columns_namemethod to retrieve allowed column names - Remove redundant button context additions from component JSON files
- Simplify data path and remove unused diffusion method
- Expand backup columns with new data types and dynamic column retrieval
- Add request_fetch_stream method for generic NDJSON stream handling
- Add seek method to db_result class for PostgreSQL cursor positioning
- Add streaming export functionality for large datasets
- Implement streaming NDJSON export with Fetch ReadableStreams for improved performance in
tool_export - Enhance json column handling and query parsing logic
- Add column format parser with validation support
- Add
set_column_datamethod tosection_recordclass - Remove unused time machine properties and update callback handling
- Enhance Time Machine section handling with improved data injection
- Add static profiler metrics for easy memory debug. API endpoint display based on constant
SHOW_DEBUG_PROFILERdefinition. - Move restore_deleted_section_media_files method to section_record class
- Refactor SQL limit and offset handling correctlly
- Add delete method to tm_record class
- Simplify activity section handling and improve term resolution
- Add integer column handling for tm_record_data class
- Add bulk_process_id to ignore_columns and enable column configuration
- Add API CORS enable config. Allows to set the API entry point headers for cross domain request.
- Added worker (Road Runner) to enable keeping a process alive across multiple requests. Experimental.
- Add alt key click event to refresh widget in
area_maintenance. - Add section info constants for created by user and date
- Adjust mode setting logic for better component portal compatibility
- Implement section record permissions and enhance access control
- Add time machine mode support for parent section tracking and user verification
- Enhance list functionality with default section inheritance
- Update list mode to 'tm' and refactor column mapping
- Enhance section record compatibility and note component handling
- Remove unused service time machine refresh logic and clean up user name info code
- Conditionally apply LIMIT and OFFSET in SQL query
- Add
section_record_tempclass - Add temp table for temporary sections and optimize matrix_notifications
- Include section_record classes in loader
- Add skills for Dédalo flow analysis and ontology mapping
- Update data structure and test assertions to use entries instead of value
- Update component filter tests for admin/non-admin user handling
- Enhance component_common test coverage and skip specific components
Miscellaneous Tasks
- V7 compatibility minor changes. Fix literal string values to objects, change 'dato' by 'data' and other minor changes.
- Add missing search methods
get_data_with_pathandresolve_path_levelused by classstate(component_info widget) to resolve path. Added totrait.utils.phpfile. - Simplify data update logic and streamline null value handling
- Comment out
get_value_fragmentmethod for V5 compatibility - Delete commented-out tag locator removal code
- Change minimum PHP version from '8.3.0' to 8.5.0'.
- Add init the DB connection on API read to open the DB connection for future use.
- Add index 'idx_matrix_time_machine_search_default' on table
time_machineto manage the default search using the following: section_id, section_tipo, tipo, lang, timestamp DESC. - Add index 'matrix_activity_id_asc_idx' on table
time_machineto manage id ASC cases efficiently. - Translate class.TR.php comments to English and update comment syntax
- Update text area component to use
get_tag_idmethod for tag processing - Update truncate_html call to use parent class method and comment out truncation suffix
- Comment
datoscolumn definition from thematrix_db_managerto exclude it from get and parse actions. It is deprecated. - Reduce the size of the spinner to 2rem.
- Add SQO select to
ontology::get_active_elementsto safe used query fields. - Add new class file
OpcacheObjectManager. - Add
context.jsonanddata.jsonsample files with component configuration - Update documentation and implement version update logic
- Delete redundant get_data method from
component_string_common - Remove
$this->data, setting data is not necesary because it access to parent data to obtain its data. - Remove deprecated updata data version case 4.0.12 from
component_select_lang - Delete deprecated component_dataframe version updates
- Add to unit test
bootstrapdefault include forBaseTestCase. Add useful method likeuser_loginandget_sample_datafor convenience. - Change default
component_common->import_saveoldSaveby v7save. - Rename
set_dato_externalreferences toset_data_externalfor consistency in component portal and relation classes - Add custom method
get_search_valuetocomponent_section_idJS to manage the search parsed value used to fill the search SQO. - Update
api_data.jsonanddata.jsonsample files with new relation values and structure - Add new ontology type constant for connected to relationships
- Add return type declaration to import_save method
- Improve unit test for components. Add missing test for non tested methods. [component_3d, component_av, component_check_box, component_date, component_email, component_external, component_filter, component_filter_master, component_filter_records, component_geolocation, component_image, component_input_text]
- Remove unused test methods
get_valorandget_diffusion_value - Delete specific continue config files and add
.continuedirectory to gitignore - Delete unused section methods and update error message
- Fix typo in comment "dato" to "data" for consistency
- Update composer files
- Improve
component_relation_childrenunit test cases. - Add
component_common::get_direct_data_componentsmethod for convenience. This is mainly useful for testing purposes. - Change definition from
data.jsonfiles and clean up security access sample data - Add components to
component_common::get_direct_data_components. [component_security_access, component_filter_records, component_inverse, component_section_id] - Change the response type of the
resolve_query_object_sqlmethod from 'object' to 'object|false' to enable invalid query objects to be dealt with. - Unified
get_section_elements_contextlist ofar_components_excludefrom client and server. - Normalize query string by removing slashes instead of escaping for DB
- Add placeholders to search
build_main_wheremethod for convenience. Now, section_tipo is passed as parameter like $1. - Add
component_portal_Search_Testunit test. - Change
tool_export->get_recordstype definitions from 'array' to 'db_result' iterator. - Remove unused
dd_core_api::$ddo_mapreferences from classcommon. - Add
updatesSQL_update to rename matrix_notifications columndatostodata. - Add check for valid section tipo in
component_relation_index->get_related_section_context. Prevents exceptions on invalid values. - Refactor ddo_map initialization and filtering logic
- Delete unused time machine recovery state setting and add record deletion
- Updated CORS headers to allow cross domain API calls (experimental).
- Update composer files
- Add class
search$sql_queryproperty and method to store final query (for debug purposes only) - Remove unused var
new_matrix_datafrom methodv6_to_v7::reformat_matrix_data. - Update composer files
- V6 to v7 conversion calls:
extract_component_value_fallback=>get_value_with_fallback_from_data. - Change
component_check_box->get_datalistitems resolution. Removed the use oftool_simple_object_tipoand access the required data directly from related components. - Add
tm_db_manager::updatecolumn id skip clause to prevent to update the columnidaccidentally. - Add
ontology::build_cache_filemethod to use as Opcode cache vars. Experimental. - Add
tm_record::savemethod to easy test. Use only for updates and debug. - Add agent development guidelines documentation for Dédalo project
- Update
ontology.jsonwith the last time machine changes - Comment out date and user name methods to disable creation/modification date handling, moving they into
section_record - Adapted
tool_langto v7 model. Add basic unit test. - Add API end point
Throwableexception capture for easy debug. - Add
json_streaming_handlerclass to handle large JSON objects in API output. Experimental. - Refactor component data propagation to use set_data/save methods and improve variable naming
- Rename
service_time_machine.build_request_configSQL id from 'tmp' to 'time_machine_temporal' to avoid temporal section confusion. - Add
test_sort_childrentest tocomponent_relation_children_test. - Change v6 calls to v7 in
section_record. - Improve documentation for
TRclass. - Add flexible type for parameter
section_idinsection_record::get_instancemethod for temporal compatibility. When the value is not an expected integer, automatically is cast to int and a log warning DEPRECATED message is fired. - Add
core_functionscreate_directorydebug info when creating directories for easy debug fro permission denied errors. - Apply
core_functionsminor fixes and cleans. - Add new unit test files:
tool_import_files_test,tool_propagate_component_data_test,tm_record_test,v6_to_v7_Test. - Optimize get_user_tools performance
- Correct search call and non-superuser logic in get_user_tools
- Update composer autoloader with php83 stubs removal and json-machine function addition
Performance
- Change
page_globalsDB calls to store it in cache file for performance. - Add
request_config_presets::get_active_request_configcache file for performance. Is forced to recreate when the user changes the sectiondd1244(DEDALO_REQUEST_CONFIG_PRESETS_SECTION_TIPO). - Optimize
security::get_ar_authorized_areas_for_usermatching strategy for performance. - Add
hierarchy_section_cachecache to optimizehierarchy->get_hierarchy_sectioncalls.
Refactor
- [breaking] Refactorized
tool_time_machine. Add missing documentation. - [breaking] Refactor
dd_cache. Changed to use .php files instead .json to avoid JSON encode/decode process and allow to use PHP Opcode cache (store var_export) - [breaking] The
dd_cacheand its dependencies were refactored to optimize cache file management. A new class,OpcacheObjectManager, has been added to help process and recover file data efficiently. - [breaking] Refactor
component_datesearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_irisearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_jsonsearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_numbersearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_string_commonsearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_relation_childrensearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_relation_commonsearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_relation_indexsearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
component_section_idsearch. Add custom search trait, samples (search.md) and unit test.resolve_query_object_sqlhas been refactored to improve comprehension, modularity, and management of different cases. - [breaking] Refactor
searchclass placeholders manager to ensure consistency and efficiency. This reduces the number of parameters sent to PostgreSQL and keeps the prepared statements more compact. - [breaking] Refactor
common.jsdestroy cycle for performance and memory usage optimization. - [breaking] Refactor upgrade method
v6_to_v7::reformat_matrix_datato split theprocess_matrix_row_datain a separate method. This allow to use it independently. - [breaking] Refactor the
tools_registerclass to improve clarity and achieve v7 convergence. - [breaking] Refactor temporal sections.
DEDALO_SECTION_ID_TEMPis deprecated. Now new component propertyis_temporalis used to track temporal section record data. On true, the data handler to use will bematrix_temp_managerinstead the default `matrix_db_manager``. PHP SESSIONS are used to store the data. - [breaking] Aggressive refactoring of the class
ts_objectfor clarity and performance. - Change
ar_recordsiterations bydb_resultondiffusion_section_stats::cross_users_range_data. - Rename
$datovariable to new$datamodel - Improve variable names and data structure for text truncation
- Move data saving methods to section_record class
- Rename dato variables to new data model
- Refactor method
request_config_presets::get_active_request_configto improve performace and scalability. Prevent to access the components to avoid calculating permissions, etc. - Simplify tag deletion logic and improve data handling
- Rename dato to data and improve note handling logic
- Change save method and improve data regeneration
- Consistent naming from
dato_unchangedto dat_unchangedinupdate_dato_version` methods of all components - Rename
update_dato_versiontoupdate_data_versionin update context strings and docs - Correct
datoto newdataand update function name - Rename dato variables to data for consistency
- Change mode from 'edit' to 'list' in test methods and remove unused
test_get_valor_export - Refactor v6 code for v7 compatibility (
dato=>datamainly). - Refactor method
common::truncate_htmlto handle multybite characters correctly. - Simplify TR class by consolidating tag parsing methods and removing deprecated functions
- Improve plain text generation logic
- Move unused
truncate_textandtruncate_htmlmethods from common tocomponent_string_common - Refactor
component_3dfor version 7. Add samples of data, api_data, context. - Refactor
component_avfor version 7. Add samples of data, api_data, context. - Refactor
component_check_boxfor version 7. Add samples of data, api_data, context. - Refactor
component_datefor version 7. Add samples of data, api_data, context. - Refactor
component_emailfor version 7. Add samples of data, api_data, context. - Refactor
component_externalfor version 7. Add samples of data, api_data, context. - Refactor
component_filterfor version 7. Add samples of data, api_data, context. - Refactor
component_filter_masterfor version 7. Add samples of data, api_data, context. - Refactor
component_filter_recordsfor version 7. Add samples of data, api_data, context. - Refactor
component_geolocationfor version 7. Add samples of data, api_data, context. - Refactor
component_imagefor version 7. Add samples of data, api_data, context. - Refactor
component_common->update_data_valueto manage the data language correctly. Usedset_data_langinsteadset_data. - Rename
get_dato_with_referencestoget_data_with_referencesfor consistency - Refactor
component_input_textfor version 7. Add samples of data, api_data, context. - Change
set_dato_defaulttoset_data_default - Refactor
component_inversefor version 7. Add samples of data, api_data, context. - Improve class
OpcacheObjectManagerremoving trailing array items. - Optimize locator comparison with improved performance and logic
- Optimize locator array search with key-based comparison
- Optimize locator key lookup with direct key comparison
- Detach
ontology::create_dd_ontology_ontology_section_nodemethod calls to set a clear responsibility aboutontology::add_main_sectionandontology::create_dd_ontology_ontology_section_nodeactions. - Add params to
search_relatedfro safe and to improve the statements cache performance. - Refactor
component_irifor version 7. Add samples of data, api_data, context. - Migrate ontology creation to
section_recordapproach - Migrate to new record classes and update data handling methods
- Refactor
component_jsonfor version 7. Add samples of data, api_data, context. - Refactor
component_numberfor version 7. Add samples of data, api_data, context. - Replace
get_dato_full()calls withget_data()for consistency - Refactor
component_passwordfor version 7. Add samples of data, api_data, context. - Refactor
component_nunmberfor version 7. Add samples of data, api_data, context. - Refactor
component_pdffor version 7. Add samples of data, api_data, context. - Refactor
component_portalfor version 7. Add samples of data, api_data, context. - Refactor
component_publicationfor version 7. Add samples of data, api_data, context. - Improve
set_datamethod incomponent_relation_childrenwith better data handling and documentation - Update parent relationship handling and jsonb path queries
- Rename 'datos' to 'data' column and variables for clarity
- Rename
get_widget_datotoget_widget_datafor consistency - Refactor
component_radio_buttonfor version 7. Add samples of data, api_data, context. - Refactor component unit test for v7 compatibility.
- Rename
get_datotoget_dataand update widget_id property - Add
get_search_valuefunction with fallback to handle get_search_value. - Simplify JSONPath query construction and enhance period operator handling
- Refactor
resolve_query_object_sqlforcomponent_string_commonto use JSON path. - Refactor components class by moving its search-related methods into a dedicated trait.
- Simplify relation data access and improve code clarity
- Rename
observable_datotoobservable_datafor clarity and consistency - Refactor JS test adapting data to v7 format.
- Refactored the search query object definitions in
class.hierarchy.phpto align with Dédalo v7 standards. These changes ensure that all search definitions in the hierarchy class use native PHP structures rather than decoded JSON strings. - Refactor
commonwarnings 'WARNING. Ignored non valid section_tipo. Maybe the TLD is not installed' to prevent to show the same warning multiple times. Addedwarning_invalid_tipoprivate method. - Add
component_reation_index::get_referended_locators_with_cachecache control to prevent big array memory and performance problems. Limited to maximum 1000 items in cache. - Add
matrix_db_manager::exec_searchprepared_statements cache control to prevent big array memory and performance problems. Limited to maximum 1000 statement in cache. - Refactor
tool_exportclass to improve clarity and performance. - Refactor static cache vars to be more accessible for memory debugger tools. Add the new class
static_profilerto obtain information about the static cache memory consumption. - Change view rendering and remove unused imports
- Refactor the API entry point to improve robustness and clarity.
- Refactor
search->build_filter_by_user_recordsfor performance. - Add
searchmain selectuse_windowoption. Default false. Experimental. - Refactor the
tool_commonclass to use class static vars instead method scope static vars. - Refactor
tool_common_Testandtools_register_Testfor convenience. - Refactor
tools_registerclass for convenience. Removedsimple_tool_objectdatabase save. Now, the value is calculated on the fly to facilitate maintenance and management and eliminate redundancies. - Refactor
langclass to unify language resolution. Addedlang::fallback_lang_valuefor easy get the language label in desired lang. - Refactor test unit files to v7 coherence.
- Refactor
Errorclass to improve clarity and robustness. - Add
ts_objectclass static vars cache control to prevent overload. Maximum 1000 items. [term_by_locator_data_cache, resolved_child_cache] - Refactor
tool_import_filesclass to be v7 compatible. - Refactor
tool_propagate_component_dataclass to be v7 compatible. - Add table property and use data_instance for data access
- Replace session storage with PostgreSQL temp table
- Replace data_handler parameter with is_temporal flag
- Add is_temporal flag for data handler selection
- Update data handling and save logic
- Remove default 'temp' value for table parameter
- Refactor
tool_dd_label. Fix errors and a improve documentation. - Refactor
tool_diffusion. Fix errors and a improve documentation. - Refactor
tool_export. Fix errors and a improve documentation. - Refactor
tool_hierarchy. Fix errors and a improve documentation. - Refactor
tool_image_rotation. Fix errors and a improve documentation. - Refactor
tool_import_dedalo_csv. Fix errors and a improve documentation. - Refactor
tool_import_files. Fix errors and a improve documentation. - Refactor
tool_import_marc21. Fix errors and a improve documentation. - Refactor
tool_import_rdf. Fix errors and a improve documentation. - Refactor
tool_import_zotero. Fix errors and a improve documentation. - Refactor
tool_lang. Fix errors and a improve documentation. - Refactor
tool_media_versions. Fix errors and a improve documentation. - Refactor
tool_lang_multi. Fix errors and a improve documentation. - Refactor
tool_numisdata_epigraphy. Fix errors and a improve documentation. - Refactor
tool_numisdata_order_coins. Fix errors and a improve documentation. - Refactor
tool_ontology. Fix errors and a improve documentation. - Refactor
tool_ontology_parser. Fix errors and a improve documentation. - Refactor
tool_pdf_extractor. Fix errors and a improve documentation. - Refactor
tool_posterframe. Fix errors and a improve documentation. - Refactor
tool_propagate_component_data. Fix errors and a improve documentation. - Refactor
tool_tc. Fix errors and a improve documentation. - Refactor
tool_tr_print. Fix errors and a improve documentation. - Refactor
tool_transcription. Fix errors and a improve documentation. - Refactor
tool_update_cache. Fix errors and a improve documentation. - Refactor
tool_upload. Fix errors and a improve documentation. - Refactor
tool_user_admin. Fix errors and a improve documentation. - Change
tm_record::createmethod arguments for convenience. Now, values andprevious_dataare passed as separated values for clarity. - Change
loginclass methods using v6 calls for compatibility with v7. - Clean
systemclass code for convenience. - Optimize
get_user_tools(Careful Implementation) - Revert refactor optimization. There are no clear improvements.
- Refactor
ontology_utilsclass to improve documentation and fix issues. Add unit test. - Refactor
ontology_nodeclass to improve documentation and fix issues. Add unit test. - Refactor
area_thesaurusclass to improve documentation and fix issues. Add unit test. - Refactor
dd_utils_api::create_thumbnailmethod to use modern 'finfo' instead old 'mime_content_type' (more compatible). - Refactor ontology_utils to use matrix_db_manager::exec_search
Revert
- Restore removed
deletemethod fromtm_record.
Testing
- Add language fallback scenarios test for text area component
- Add test_conform_import_data for text area component
- Add test for html sanitation in component text area save method
- Enhance text area component empty value checking with detailed test cases
- Enhance text area grid value tests with comprehensive assertions
- Update test case name to uppercase and enhance locator tag test with text content validation
- Update test method naming convention to uppercase
- Remove unused diffusion value tests from component_text_area_Test
- Enhance text area component test with detailed character limit validation
- Update fallback list value test with new content and validation checks
- Enhance fallback edit value test with lang content and length validation
- Update section_tipo value from 'sccmk1' to 'rsc302' in svg test data
- Normalize test method name and remove debug statement
- Remove unused variables and commented code from
test_update_data_versionmethod - Enhance
delete_tag_from_all_langstest with comprehensive assertions and sample data - Add test for get_original_lang method with lang locator validation
- Rename test method and variable for consistency
- Rename set_dato to set_data and get_dato to get_data in component_select_lang_Test
- Update method names to uppercase constants for consistency
- Rename test method and variable for consistency
- Refactor component_select test to use set_data/get_data and remove deprecated methods
- Update test method naming and add save functionality test
- Rename
get_datotoget_datamethod and update test case - Rename
set_datotoset_dataand update variable names - Update datalist test to expect array instead of object
- Update test expectations to use array instead of object
- Rename test method and update data handling to match component read-only behavior
- Refactor test method names to uppercase and remove get_valor test
- Update component section id test case to use correct class and assert sentence format
- Update method name to uppercase convention
- Rename
get_datotoget_datamethod and update test case - Refactor
component_relation_related_Testto use set_data/get_data methods and update test naming convention - Rename test method and update locator handling
- Rename and refactor remove related test to use remove locator from data method
- Update test method names to uppercase constants
- Refactor section creation logic in dd_api_Test to use section_record::exists_in_the_database() method
- Update section creation test to use
create_recordmethod and add validation - Normalize test method name and update assertion logic
- Rename
get_datotoget_dataand removeget_dato_fulltest - Update component relation parent test to use get_data/set_data and reference data format
- Enhance remove_parent test with multiple data handling and validation
- Rename dato to data variables in relation parent test
- Rename test method and variable for consistency
- Rename set_dato to
set_dataand update related test assertions - Update component relation index test to extend BaseTestCase and remove redundant login test
- Fix test method naming and update
get_datotoget_datacall - Rename
set_datotoset_dataand update test assertions - Add comprehensive tests for component relation index methods
- Add user login to filter records test and refactor relation index tests
- Update test class inheritance and add user login call
- Rename test method and variable for consistency
- Rename
set_datotoset_dataand update related tests - Add comprehensive tests for
component_relation_childrenmethods - Remove unused
search_request_configtest method
Change
- [breaking] Set
data.entriesfordata.valuein JavaScript data process. Now all components has itsdata.entries[]for database data. String components can handle its value in this way:data.entries[].value - [breaking] Rename 'value' to 'entries' for consistency across section data handling
- [breaking] Change
common->get_ar_request_configbehavior when checking section model. Now, if the model is empty (because the TLD does not exists) a empty array is return to allow manage invalid tipo situations. If the model exists but is notsectionorarea, the same policy is applied. - [breaking] Force the parameter
tipoin theontology_node::get_instancemethod. Now is mandatory for easy management and debug. - Change
json_handler::decodebyjson_decodefor convenience (better 'json_last_error' detection and control). - Add
!/media_iconsto.gitignoreto prevent the widget update issues. - Remove events from
section_record. It is not suitable for large processes involving thousands of records due to its high memory requirements. - Change
time_machinerender list columns size for convenience. Changed id column default from '5rem' to '8rem' to proper time machine large id display. - Change
section_record_dataproperty 'section_id'. Remove null option. - Change
section_record_dataconstruct table to manage null matrix table resolutions (when the tipo do not exists). - Change
component_text_area->get_component_data_fallbackcall lang fromDEDALO_DATA_LANGto$this->langto allow use the fallback when the component is in another language different from current DEDALO_DATA_LANG. - Change
search_relatedSQO parser to usejsonb_path_queryinstead v6jsonb_array_elements. - Change restricted
array|object|nulltype inontology_node->get_propiedadesto more flexiblemixedto prevent issues with old data.
Cleanup
- Remove unused
get_diffusion_valuemethod - Remove unnecessary whitespace and comment out debug code
- Remove redundant data assignment in component_info class
- Remove unused
get_dataandset_datamethods from section class - Simplify data value retrieval in search.js
Di
- Add workflow documentation for PHP class documentation process
Remove
- [breaking] Delete old DataBound classes and search of v6
- Unused
get_component_ar_langsmethod - Delete unused
get_valorandget_value_fragmentmethods fromcomponent_text_area - Cleanup unused
get_valor_exportmethod fromcomponent_text_area - Debug logging and fix typo in comment
- Delete the data sample model of v6 in
component_svg - Delete unused data assignment in component_image save method
- Delete deprecated password save method and update encryption handling. Now encryption is done by
set_data - Delete unused
get_valorandget_diffusion_valuemethods - Cleanup unused commented code for datalist implementation in
component_select_lang - Delete unused console log and extra whitespace
- Delete unused diffusion methods from component_select
- Improve data version update logic and optimize js child/parent retrieval
- Delete unused
test_get_valormethod and update test method naming convention - Delete old code and coment
component_relation_related - Delete unused
add_relatedandremove_relatedmethods - Delete unused test methods
get_dato_genericandget_dato_as_string - Delete redundant relation component methods and update documentation
- Delete unused get_valor_export method and update array initialization
- Delete unused test methods get_valor and get_diffusion_value
- Delete commented-out get_valor, get_data and get_data_full methods
- Delete unused
test_user_loginmethod. - Delete unused
set_datomethod from common class - Delete unused
build_resolve_querymethod from lang class - Delete unused
search_request_configmethod fromrequest_config_presetsclass - Delete unused and deprecated component_common class properties and methods
Update
- Change callback parameter type from function to callable