Skip to content

v7.0.0-alpha.4

Pre-release
Pre-release

Choose a tag to compare

@renderpci renderpci released this 05 Feb 19:20
· 57 commits to master since this release

[7.0.0-alpha.4] - 2026-02-05

Bug Fixes

  • [breaking] Fix error where DEDALO_HIERARCHY_TLD2_TIPO was used instead DEDALO_ONTOLOGY_TLD_TIPO in ontology::create_parent_grouper. This makes nothing is saved as model in the ontology record.
  • [breaking] Fix bug where non cloned query_object causes crashes on reload page because the resolve_query_object_sql components methods re-parse the same object changing the _Q1_ to array. Added new check to prevent re-parse objects with property sentence already defined.
  • [breaking] Fix component_common::is_empty error checking empty objects.
  • [breaking] Fix DB index name bug where {$table}_relation_flat_ty_st_gin_idx was overwrite by data_relations_flat_ty_st_si.
  • [breaking] Add component_common->save control to prevent exec the database from saving the record when the component is in 'search' mode. (component_children issue when selecting values in the search panel).
  • [breaking] Fix sections::delete bug where delete ontology record tipo was wrong (getting $section_id from main section_id instead the correct $current_section_id).
  • Fix get_interval_raw_activity_data issues and optimize code.
  • Fix diffusion_section_stats v7 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 method and fix diffusion value cleanup
  • Fix component_section_record errors accessing data_instance private properties directly instead to access using the proper methods.
  • Fix ts_object term 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 of get_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_value reference and value accessors
  • Fix incorrect update_user_activity_stats calculation of last saved user activity. This causes all quit actions to recreate the user activity stats.
  • Fix component_security_access::get_element_datalist bug 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_data method for consistency
  • Fix v6 mode editing_preset getting value in render_search that do not renders the basic search area to place the components.
  • Fix v6 mode editing_preset getting value in render_search that do not renders the basic search area to place the components.
  • Fix component_json issues saving data in format v6 (non object as {value: []})
  • Fix v6 mode search.save_preset getting 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_number bug where 'is_empty' was used instead the correct is_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->data to $this->get_data()
  • Add semicolons for consistency and readability
  • Add circular reference detection to get_caller_by_model utility
  • Rename dato to data references and update method calls
  • Update nullish coalescing operator syntax for section_id access
  • Change value of section_id component to use first data element instead of full data array
  • Rename test method and update expected type to array
  • Refactor component_relation_related to use 'data' instead of 'dato' for better clarity and consistency
  • Fix component_image old 'valor' call. Changed by 'value'.
  • Fix component_media_common old 'valor' call. Changed by 'value'.
  • Fix relation_list issue where do not return and expected array after the search (db_result).
  • Update return type and documentation for get_data_with_references method
  • Standardize terminology from "dato" to "data" in component_relation_common class
  • Add default properties array in in_array_locator method
  • Enhance locator validation and add type_rel support in component_relation_common
  • Rename dato to data and update time machine saving logic
  • Rename data_value to data_elements for 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_exists syntax 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_list get from section_record injected to the section.
  • Rename get_data to data_paginated variable 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() and set_dato() with get_data() and set_data() for consistency
  • Rename $datos variable to $test_data for 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 to get_data() for consistency
  • Rename $current_value to $value and $counter_dato_updated to $counter_data_updated for clarity and update DB schema references
  • Align code formatting for model, order_number and label properties
  • Correct variable name consistency in set_lang method
  • Correct debug log to use section_id instead of parent for better identification
  • Add optional chaining to widget filtering
  • Disable data retrieval and use component list values for filter list
  • Fix test unit elements issues about value parameters adn new values for safe test.
  • Update data lookup from 'id' to 'widget_id' across multiple widget files
  • Standardize widget_id property usage across state widget and JS logic
  • Prevent undefined array error in search trait
  • Fix search.recursive_groups issue 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 preset q).
  • 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 unaccent support
  • 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_seconds bugs 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_path case issue in search trait.order->build_sql_query_order. Skip order column when component_path is not defined.
  • Fix component_iri empty value check error using component_common function. Created self is_empty version to check component_iri specific properties.
  • Fix bug where component_text_area do not check properly the empty values to add fallback data.
  • Fix component_text_area v7 data format issues in client JS render (search mode).
  • Fix widget class tags v7 data format issue.
  • Update CSS styling and animation for export tool components
  • Fix type inconsistency in get_ontology_file_list in str_manager.
  • Change area_thesaurus->get_hierarchy_name 'get_valor' by 'get_value'.
  • Remove redundant data assignment and standardize language handling
  • Enhance fetch_one method with row processing and null safety
  • Update return type hint and add missing conditional logic in time machine tools
  • Update delete_record method call to delete
  • 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 hierarchy and ontology classes.
  • Fix v6 issue in render_tool_hierarchy checking 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_one method.
  • Correct variable name references in time machine tool
  • Fix v6 section instance from dd_core_api::get_element_context.
  • Fix DBi::_getConnection_mysql issues and duplicates.
  • Fix section_record->duplicate save syntax error.
  • Fix incorrect API entry pint debug total_time.
  • Fix tools_register::create_simple_tool_object issue with description value type (expected array).
  • Fix ontology::add_section_record_from_dd_ontology v6 legacy section creation.
  • Fix legacy section new record creation. Change it to new create_record method.
  • Fix tm_record->get_section_record issue 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_id properly 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_tipo to service_time_machine and life-cycle status control for destroyed instance cases.
  • Fix component_relation_children::sort_children error 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_term JS when a ts_object instance/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_value documentation 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/php configuration reference
  • Enhance set_data documentation and handle empty string case
  • Add component_svg documentation with data model and methods
  • Update comment style and parameter naming in component_string_common
  • Update component_select_lang documentation and clarify data handling
  • Update documentation for Dédalo v7 alpha release and dependencies
  • Update component_section_id documentation 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_index documentation and remove unused methods
  • Update text area component documentation and features
  • Update get_data_paginated method documentation and variable naming
  • Enhance query object resolution documentation and variable naming
  • Enhance component_relation_children documentation and method descriptions
  • Simplify logger activity comments in component classes
  • Update get_archive_states class to use consistent get_data() method and $data variables instead of get_dato() and $dato for 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_json class 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_object for clarity and performance.
  • [breaking] Refactor save path variable naming and improve empty column handling
  • Add object_cache manager to handle section_record_instances_cache and component_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_value method to accept key and string_value parameters
  • Enhance save_value and update_changed_data to properly handle item_value persistence
  • Add supported tag types array to TR class
  • Replace TR::conform_tr_data with $this->sanitize_text for consistent text sanitization
  • Add sanitize_text method to remove malicious script tags from html content
  • Add truncate_text method to component_string_common class
  • Add default records separator property to component string common
  • Add test for get_plain_text method in component_text_area
  • Add error handling tests for text area component
  • Enhance is_empty method and text area component
  • Enhance component_text_area test with dynamic language handling and fallback support
  • Update component_text_area tags documentation to include tags_draw property
  • 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_data method
  • Change component_relation_children to use get_data instead of load_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 into set_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_data to get_data and improve filtering logic
  • Add sample data files for testing
  • Add return type declaration and cleanup unused code in component classes
  • Uncomment and implement get_valor and get_diffusion_value methods
  • 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_data method to retrieve component/section data
  • Remove deprecated get_valor and get_diffusion_value methods
  • Rename get_dato to get_data for 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 deprecated get_dato() and improve null safety
  • Optimize ontology update widget data processing
  • Add section_id property and refactor class structure
  • Rename set_to_force_reload_dato to set_to_force_reload_data and update related documentation
  • Standardize active request config cache file name
  • Add new ontology definitions via ontology.json
  • Rename id property to widget_id for better clarity and consistency
  • Update component_external type mapping from 'misc' to 'relation' and refactor widget implementations
  • Rename get_dato to get_data and update property references
  • Rename widget_id property 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_name method 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_data method to section_record class
  • 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_PROFILER definition.
  • 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_temp class
  • 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_path and resolve_path_level used by class state (component_info widget) to resolve path. Added to trait.utils.php file.
  • Simplify data update logic and streamline null value handling
  • Comment out get_value_fragment method 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_machine to 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_machine to manage id ASC cases efficiently.
  • Translate class.TR.php comments to English and update comment syntax
  • Update text area component to use get_tag_id method for tag processing
  • Update truncate_html call to use parent class method and comment out truncation suffix
  • Comment datos column definition from the matrix_db_manager to 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_elements to safe used query fields.
  • Add new class file OpcacheObjectManager.
  • Add context.json and data.json sample 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 bootstrap default include for BaseTestCase. Add useful method like user_login and get_sample_data for convenience.
  • Change default component_common->import_save old Save by v7 save.
  • Rename set_dato_external references to set_data_external for consistency in component portal and relation classes
  • Add custom method get_search_value to component_section_id JS to manage the search parsed value used to fill the search SQO.
  • Update api_data.json and data.json sample 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_valor and get_diffusion_value
  • Delete specific continue config files and add .continue directory 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_children unit test cases.
  • Add component_common::get_direct_data_components method for convenience. This is mainly useful for testing purposes.
  • Change definition from data.json files 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_sql method from 'object' to 'object|false' to enable invalid query objects to be dealt with.
  • Unified get_section_elements_context list of ar_components_exclude from client and server.
  • Normalize query string by removing slashes instead of escaping for DB
  • Add placeholders to search build_main_where method for convenience. Now, section_tipo is passed as parameter like $1.
  • Add component_portal_Search_Test unit test.
  • Change tool_export->get_records type definitions from 'array' to 'db_result' iterator.
  • Remove unused dd_core_api::$ddo_map references from class common.
  • Add updates SQL_update to rename matrix_notifications column datos to data.
  • 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_query property and method to store final query (for debug purposes only)
  • Remove unused var new_matrix_data from method v6_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_datalist items resolution. Removed the use of tool_simple_object_tipo and access the required data directly from related components.
  • Add tm_db_manager::update column id skip clause to prevent to update the column id accidentally.
  • Add ontology::build_cache_file method to use as Opcode cache vars. Experimental.
  • Add tm_record::save method to easy test. Use only for updates and debug.
  • Add agent development guidelines documentation for Dédalo project
  • Update ontology.json with 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_lang to v7 model. Add basic unit test.
  • Add API end point Throwable exception capture for easy debug.
  • Add json_streaming_handler class 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_config SQL id from 'tmp' to 'time_machine_temporal' to avoid temporal section confusion.
  • Add test_sort_children test to component_relation_children_test.
  • Change v6 calls to v7 in section_record.
  • Improve documentation for TR class.
  • Add flexible type for parameter section_id in section_record::get_instance method 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_functions create_directory debug info when creating directories for easy debug fro permission denied errors.
  • Apply core_functions minor 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_globals DB calls to store it in cache file for performance.
  • Add request_config_presets::get_active_request_config cache file for performance. Is forced to recreate when the user changes the section dd1244 (DEDALO_REQUEST_CONFIG_PRESETS_SECTION_TIPO).
  • Optimize security::get_ar_authorized_areas_for_user matching strategy for performance.
  • Add hierarchy_section_cache cache to optimize hierarchy->get_hierarchy_section calls.

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_cache and 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_date search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_iri search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_json search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_number search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_string_common search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_relation_children search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_relation_common search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_relation_index search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor component_section_id search. Add custom search trait, samples (search.md) and unit test. resolve_query_object_sql has been refactored to improve comprehension, modularity, and management of different cases.
  • [breaking] Refactor search class 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.js destroy cycle for performance and memory usage optimization.
  • [breaking] Refactor upgrade method v6_to_v7::reformat_matrix_data to split the process_matrix_row_data in a separate method. This allow to use it independently.
  • [breaking] Refactor the tools_register class to improve clarity and achieve v7 convergence.
  • [breaking] Refactor temporal sections. DEDALO_SECTION_ID_TEMP is deprecated. Now new component property is_temporal is used to track temporal section record data. On true, the data handler to use will be matrix_temp_manager instead the default `matrix_db_manager``. PHP SESSIONS are used to store the data.
  • [breaking] Aggressive refactoring of the class ts_object for clarity and performance.
  • Change ar_records iterations by db_result on diffusion_section_stats::cross_users_range_data.
  • Rename $dato variable 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_config to 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_unchanged to dat_unchangedinupdate_dato_version` methods of all components
  • Rename update_dato_version to update_data_version in update context strings and docs
  • Correct dato to new data and 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 => data mainly).
  • Refactor method common::truncate_html to handle multybite characters correctly.
  • Simplify TR class by consolidating tag parsing methods and removing deprecated functions
  • Improve plain text generation logic
  • Move unused truncate_text and truncate_html methods from common to component_string_common
  • Refactor component_3d for version 7. Add samples of data, api_data, context.
  • Refactor component_av for version 7. Add samples of data, api_data, context.
  • Refactor component_check_box for version 7. Add samples of data, api_data, context.
  • Refactor component_date for version 7. Add samples of data, api_data, context.
  • Refactor component_email for version 7. Add samples of data, api_data, context.
  • Refactor component_external for version 7. Add samples of data, api_data, context.
  • Refactor component_filter for version 7. Add samples of data, api_data, context.
  • Refactor component_filter_master for version 7. Add samples of data, api_data, context.
  • Refactor component_filter_records for version 7. Add samples of data, api_data, context.
  • Refactor component_geolocation for version 7. Add samples of data, api_data, context.
  • Refactor component_image for version 7. Add samples of data, api_data, context.
  • Refactor component_common->update_data_value to manage the data language correctly. Used set_data_lang instead set_data.
  • Rename get_dato_with_references to get_data_with_references for consistency
  • Refactor component_input_text for version 7. Add samples of data, api_data, context.
  • Change set_dato_default to set_data_default
  • Refactor component_inverse for version 7. Add samples of data, api_data, context.
  • Improve class OpcacheObjectManager removing 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_node method calls to set a clear responsibility about ontology::add_main_section and ontology::create_dd_ontology_ontology_section_node actions.
  • Add params to search_related fro safe and to improve the statements cache performance.
  • Refactor component_iri for version 7. Add samples of data, api_data, context.
  • Migrate ontology creation to section_record approach
  • Migrate to new record classes and update data handling methods
  • Refactor component_json for version 7. Add samples of data, api_data, context.
  • Refactor component_number for version 7. Add samples of data, api_data, context.
  • Replace get_dato_full() calls with get_data() for consistency
  • Refactor component_password for version 7. Add samples of data, api_data, context.
  • Refactor component_nunmber for version 7. Add samples of data, api_data, context.
  • Refactor component_pdf for version 7. Add samples of data, api_data, context.
  • Refactor component_portal for version 7. Add samples of data, api_data, context.
  • Refactor component_publication for version 7. Add samples of data, api_data, context.
  • Improve set_data method in component_relation_children with 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_dato to get_widget_data for consistency
  • Refactor component_radio_button for version 7. Add samples of data, api_data, context.
  • Refactor component unit test for v7 compatibility.
  • Rename get_dato to get_data and update widget_id property
  • Add get_search_value function with fallback to handle get_search_value.
  • Simplify JSONPath query construction and enhance period operator handling
  • Refactor resolve_query_object_sql for component_string_common to 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_dato to observable_data for clarity and consistency
  • Refactor JS test adapting data to v7 format.
  • Refactored the search query object definitions in class.hierarchy.php to 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 common warnings 'WARNING. Ignored non valid section_tipo. Maybe the TLD is not installed' to prevent to show the same warning multiple times. Added warning_invalid_tipo private method.
  • Add component_reation_index::get_referended_locators_with_cache cache control to prevent big array memory and performance problems. Limited to maximum 1000 items in cache.
  • Add matrix_db_manager::exec_search prepared_statements cache control to prevent big array memory and performance problems. Limited to maximum 1000 statement in cache.
  • Refactor tool_export class to improve clarity and performance.
  • Refactor static cache vars to be more accessible for memory debugger tools. Add the new class static_profiler to 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_records for performance.
  • Add search main select use_window option. Default false. Experimental.
  • Refactor the tool_common class to use class static vars instead method scope static vars.
  • Refactor tool_common_Test and tools_register_Test for convenience.
  • Refactor tools_register class for convenience. Removed simple_tool_object database save. Now, the value is calculated on the fly to facilitate maintenance and management and eliminate redundancies.
  • Refactor lang class to unify language resolution. Added lang::fallback_lang_value for easy get the language label in desired lang.
  • Refactor test unit files to v7 coherence.
  • Refactor Error class to improve clarity and robustness.
  • Add ts_object class static vars cache control to prevent overload. Maximum 1000 items. [term_by_locator_data_cache, resolved_child_cache]
  • Refactor tool_import_files class to be v7 compatible.
  • Refactor tool_propagate_component_data class 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::create method arguments for convenience. Now, values and previous_data are passed as separated values for clarity.
  • Change login class methods using v6 calls for compatibility with v7.
  • Clean system class code for convenience.
  • Optimize get_user_tools (Careful Implementation)
  • Revert refactor optimization. There are no clear improvements.
  • Refactor ontology_utils class to improve documentation and fix issues. Add unit test.
  • Refactor ontology_node class to improve documentation and fix issues. Add unit test.
  • Refactor area_thesaurus class to improve documentation and fix issues. Add unit test.
  • Refactor dd_utils_api::create_thumbnail method to use modern 'finfo' instead old 'mime_content_type' (more compatible).
  • Refactor ontology_utils to use matrix_db_manager::exec_search

Revert

  • Restore removed delete method from tm_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_version method
  • Enhance delete_tag_from_all_langs test 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_dato to get_data method and update test case
  • Rename set_dato to set_data and 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_dato to get_data method and update test case
  • Refactor component_relation_related_Test to 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_record method and add validation
  • Normalize test method name and update assertion logic
  • Rename get_dato to get_data and remove get_dato_full test
  • 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_data and update related test assertions
  • Update component relation index test to extend BaseTestCase and remove redundant login test
  • Fix test method naming and update get_dato to get_data call
  • Rename set_dato to set_data and 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_dato to set_data and update related tests
  • Add comprehensive tests for component_relation_children methods
  • Remove unused search_request_config test method

Change

  • [breaking] Set data.entries for data.value in JavaScript data process. Now all components has its data.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_config behavior 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 not section or area, the same policy is applied.
  • [breaking] Force the parameter tipo in the ontology_node::get_instance method. Now is mandatory for easy management and debug.
  • Change json_handler::decode by json_decode for convenience (better 'json_last_error' detection and control).
  • Add !/media_icons to .gitignore to 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_machine render list columns size for convenience. Changed id column default from '5rem' to '8rem' to proper time machine large id display.
  • Change section_record_data property 'section_id'. Remove null option.
  • Change section_record_data construct table to manage null matrix table resolutions (when the tipo do not exists).
  • Change component_text_area->get_component_data_fallback call lang from DEDALO_DATA_LANG to $this->lang to allow use the fallback when the component is in another language different from current DEDALO_DATA_LANG.
  • Change search_related SQO parser to use jsonb_path_query instead v6 jsonb_array_elements.
  • Change restricted array|object|null type in ontology_node->get_propiedades to more flexible mixed to prevent issues with old data.

Cleanup

  • Remove unused get_diffusion_value method
  • Remove unnecessary whitespace and comment out debug code
  • Remove redundant data assignment in component_info class
  • Remove unused get_data and set_data methods 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_langs method
  • Delete unused get_valor and get_value_fragment methods from component_text_area
  • Cleanup unused get_valor_export method from component_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_valor and get_diffusion_value methods
  • 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_valor method and update test method naming convention
  • Delete old code and coment component_relation_related
  • Delete unused add_related and remove_related methods
  • Delete unused test methods get_dato_generic and get_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_login method.
  • Delete unused set_dato method from common class
  • Delete unused build_resolve_query method from lang class
  • Delete unused search_request_config method from request_config_presets class
  • Delete unused and deprecated component_common class properties and methods

Update

  • Change callback parameter type from function to callable