Skip to content

Releases: renderpci/dedalo

v6.6.5

15 Jul 09:00
Compare
Choose a tag to compare

[6.6.5] - 2025-07-15

A maintenance update.

It set new color schema and update data to new actv for all activities from old defitions as tch280 or qdp280

Bug Fixes

  • [breaking] Resolve component_relation_comon issue where bad search values ($q) break the SQL construction like portals searching into portals (hierarchy45 case with numisdata656). A transparent [] substitution let the search working but firing an error in the log.
  • Change the padding between body and footer in dd-modal.
  • Fix component_number::resolve_query_object_sql issues when q value is a float. Cast to string to unify the handler format.
  • Fix component_number::resolve_query_object_sql issue where between operator do not handle correctly decimal values (previously forces integer always). Remove int cast to allow it.
  • Fix search issue where the section search panel is not handle correctly making impossible to preserving the status (open/closed). Improved the section search event logic removing redundancy.
  • Fix bug where empty or invalid json_filter from presets cause that initial search space appears empty. Added a default value {"$and": []} to prevent this problem.
  • Fix section mode solved bug where nexus fails.
  • Fix view_graph_solved label issue where label is not set when the section is loaded by user navigation because the URL vars are not available at render time.

Documentation

  • Add the Raspa Data Quality Score definition to documentation.

Features

  • [breaking] Add diffusion_xml capacity to combine XML files in one single file with all nodes.
  • Add show_interface.list_from_component_data to component_portal in edit mode. It handles a button to allow user open a new window with the target section and the value locators, for example to see the persons linked from a portal to Informants.
  • Add download manager to Handle main Dédalo download tasks. List available files for download, get the last code version, etc.

Miscellaneous Tasks

  • Add a new index for model in jer_dd table.
  • Add updated draft for version 6.6.5 including missing jer_dd_model DB index.
  • Add test check for DEDALO_MAINTENANCE_MODE to prevent exec the test when Dédalo is in maintenance.
  • Add component_number::resolve_query_object_sql q_operator option to unify searches with operators >=,>,<,<=.
  • Add API entry point Throwable caught exception a debug information about the exception for convenience.
  • Add diffusion_xml nodes filter to prevent to include unwanted models as box elements in the XML structure.
  • Add area_maintenance widget check_config control to handle missing sample config files cases. Refactor code moving functions from area_maintenance to the widget class.
  • Add new method get_tables from db_tasks to get the full list of tables (in 'public' schema) from Dédalo DDBB.
  • Add new widget class database_info to unify the area_maintenance widgets model.
  • Add a way to use variable to view_indeaxation CSS. Use it instead the direct color.
  • Add mapping files from tch280 or qdp280 to new actv1 schema.
  • Add images to tch280 / qdp280 map to actv1.
  • Add temporal CORS allow to health Work API end point to unify policy.
  • Add update data definition for 6.6.5, it will change the tch280 or qdp280 to actv1.
  • Add dd_modal footer inside div padding to compensate the footer removing padding itself.
  • Change the definition of the render_tool_cataloging.
  • Change the qdp280 and tch280 to new actv1 schema to add English information and remove the audiovisual duplication.
  • Change the TLD learn to didactic in the actv map from qdp exhibitions.
  • Fix selector CSS issues in view_graph_section less file.
  • Improve paginator_container CSS in section solved.
  • Improve transform_data::changes_in_tipos method with more controls and var checks.
  • Remove old CSS of menu 6.3
  • Remove old unused CSS and icons.
  • Remove unused CSS for component_iri.
  • Remove specific color for every section for view_indexation CSS.
  • Remove the map to actv1 section in favor of local exhibition1 section in tch280_to_actv1.json move TLD file.
  • Remove unnecessary area_ontology mode filter from render_ts_object.
  • Set a check of the SQO before search, affects thesaurus editing of a specific node.
  • Set the select opacity to 0.7.
  • Unify the specific color in CSS with standardized color variable. Phase I to implement light-dark mode.
  • Update IP_API config documentation.
  • Update dedalo6_install.pgsql.gz file v 6.6.4

Refactor

  • [breaking] Change the behavior of the component_number to ensure that values are clean and formatted uniformly for editing and searching.
  • [breaking] Improve the search recursive_groups adding more flexible checks and allowing zero (0) as value because component_number requires it.
  • [breaking] Rewrite DBi::_getConnection method for clarity. Added PERSISTENT_CONNECTION option to the connection (pg_pconnect) to enable persistent connection to DB.
  • [breaking] Refactor area_maintenance widgets load for optimization and clarity.
  • Add new function open_records_in_window in utils that replaces relation_list.open_related_records but for general use (including new button list_from_component_data).
  • Change area_maintenance.database_info widget for convenience. Atomized render functions.
  • Change events.when_in_viewport adding node and callback verification and simplifying the code.
  • Change view_graph_list_section.render_column_graph method for convenience. Added target_section_tipo validation.
  • Improved db_tasks::optimize_tables method adding tables check and validations.
  • Improve the tool_indexation miss configuration tolerance, like the non-defined people_section_ddo role.
  • Move component_portal edit buttons render logic to a separate file buttons to reduce render_edit_component_portal code length.
  • Refactor db_tasks::consolidate_table for convenience.
  • Refactor database_info widget (area_maintenance). Added optimize_tables feature for easy tables optimization from the panel.
  • Refactor render_ts_object add button click event to force user to validate the action (confirm prompt).
  • Unify add_hierarchy widget with new model for area_maintenance widgets.
  • Unify build_database_version widget with new model for area_maintenance widgets.

Change

  • [breaking] Change the default lang used for diffusion in XML from lg-spa => lg-eng. Language for XML diffusion will be English always. This value diverges from historical 'lg-spa' (DEDALO_STRUCTURE_LANG) and is adopted from now for new diffusion code revisions.
  • [breaking] Add support to custom lang in diffusion::get_diffusion_objects beyond the default DEDALO_STRUCTURE_LANG. Used by new implementation of diffusion_xml.
  • [breaking] Add fallback to diffusion::get_diffusion_map for the elements name. Previously, only DEDALO_STRUCTURE_LANG is accepted, but for new XML diffusion use it is necessary to allow fallback here (usually to lg-eng).
  • Add jer_dd_model index in db_indexes.
  • Add extra check to component_number for safe empty values (empty string as '' or with the operator only) save.
  • Add tool_diffusion additions_options property to allow handle tool custom actions like post_actions (e.g. combine XML rendered files into a single one).
  • Add test for widgets classes values in area_maintenance_Test class.
  • Add color variables to JavaScript, preparing Dédalo interface for Dark/light mode.
  • Change model_value_is_hide defaults. Thesaurus default is false, but Ontology default is true.
  • Modify install to_clean_tables values. Add matrix_layout_dd (print presets layout table -former oh1 print presets-), matrix_dataframe and matrix_test for convenience.
  • Set mask-image with correct ellipse to create the tags shape in CSS.
  • Set the info and arrows icons as standard size and color, to be used as any other icon.
  • Set the indexation tag color equal between CSS and PHP.
  • Unify color palette interface and assign it as variables into the CSS. Preparing Dédalo to dark/light mode.

v6.6.4

05 Jul 10:07
Compare
Choose a tag to compare

[6.6.4] - 2025-07-05

A maintenance update.
This update adds the tool import files to resources sections. It is now possible to import images, PDF's, audiovisual files, SVG and 3D media files directly into their own sections.

Bug Fixes

  • [breaking] Fix a bug where the diffusion elements were not being filtered in the tool_diffusion list. Non-applicable diffusion map elements for the current section will now be ignored.
  • [breaking] Fix the bug where list_thesaurus navigation was set with a pagination limit of 1 when the same section was accessed in edit mode. (tool_indexation case displaying People).
  • [breaking] Fix bug where component_relation_children and component_relation_parent RQO resolution (get_ar_request_config) causes an infinite loop (hierarchy36 case).
  • Add fallback to default application language in dd_core_api::get_lang_labels when a lang file is not defined (e.g. '/common/js/lang/lg-glg.js' not found).
  • Fix backup::get_tables method error where return 'false' instead the expected 'array' type when search_free errors occurred.
  • Fix minor var definition issues in ontology::parse_section_record_to_jer_dd_record method. Add debug log output.
  • Fix the CSS issue where double scrolling is displayed in search components selectors (e.g., tch1 case), causing an annoying scrolling user perception.
  • Fix data_manager issue where online detection causes that local navigation fails (using localhost in a non Internet or LAN context)
  • Fix component_image issue where tool_upload was not checked before open it, causing an tool_common error trying to resolve the undefined tool context.
  • Fix area issue where RQO search was made instead the correct get_data on building giving and server error. Add area as common->get_ar_request_config accepted model (missing).
  • Fix minor CSS issues in tool_import_files.

Miscellaneous Tasks

  • Add tool_context check before open the tool to catch undefined tool_context situations.
  • Add ddo->id check for parser_text::text_format method to handle empty id cases.
  • Add tool_indexation label nodes to the top selectors.
  • Improve menu non tool_user_admin error message for clarity.
  • Improve response error messages in tool_import_files PHP class.
  • Remove redundant notification subscription in inspector. Now, the page handles whole bubble notification.
  • Remove annoying api_response.dedalo_last_error from bubbles notifications. It is displayed only in the browser console for convenience.
  • Unify area_maintenance colors for use defined Dédalo color vars.
  • Update tool_import_files register file from version 1.1.1 to 1.1.2. Add tools labels.

Refactor

  • [breaking] Change backup->import_from_copy_file method with security fixes and improved error handling.
  • [breaking] Change the data assignment in section.build for clarity and to address the main vulnerabilities.
  • [breaking] Change section pagination values assignment to allow to preserve custom limit like dd542 (Activity) case. Changed server request_config limit calculation with fallback for empty values.
  • [breaking] Change bubbles_notification to be accessible from everywhere (not only in thesaurus and section edit). Now the page notifications control handles errors and notification fired by notification event.
  • [breaking] Change tool_import_files.render_options_container for clarity and atomizing the rendering of the different elements (processor, target field, quality, matching options, configuration option).
  • [breaking] Change tool_import_files PHP class to handle direct import files from the images section.
  • Change css.js root_css var from object to map (more efficient).
  • Change tool_import_files mode name direct to section_resource for clarity.
  • Change ontology::set_records_in_jer_dd method with improved error handling.
  • Change section.build.generate_rqo for clarity and to address the main vulnerabilities.
  • Change section.build context assignment for clarity and to address the main vulnerabilities.
  • Change diffusion class parser_text adding class pattern_replacer for sophisticated pattern replacement functionality.
  • Change tool_import_files service_tmp and service_dropzone build and render process. Moved from tool build to the tool render to prevent long tool load before render.

Change

  • [breaking] Add charset=utf-8 to the header of the Dédalo API entry point to improve the definition of the JSON header.
  • [breaking] Restore the try-catch block to the Dédalo API entry point to catch any uncaught exceptions.
  • Add an exception when the Dédalo API entry point configuration file inclusion fails.
  • Add diffusion format to component_portal for v5_component_autocomplete_hi $_get_diffusion_value method. Allow term_id format output as JSON encoded array such as ["es1_8842"].
  • Add persistence of tool_indexation viewer for convenience.
  • Add section mode validation to prevent wrong modes (usually from a URL bad formed parameter).
  • Add label switch for label_section_id_check_box in tool_import_files to clarify the option in both modes: section and direct.
  • Change section inspector check to allow compare undefined and null values instead only null.
  • Remove unnecessary async from method css.update_style_sheet.
  • Remove http_response_code(500) header from API end point when a Throwable Exception occurs. Affects fetch retry on client errors.
  • Update the definition of the IP API with the new, less restrictive resolver: https://api.country.is in the sample config file, @see IP_API.

v6.6.3

21 Jun 13:03
Compare
Choose a tag to compare

[6.6.3] - 2025-07-21

This update implements a new query language selector for translatable components.
It implements a new diffusion data flow to be coherent with the version 6 model. Right now, it is only is used in XML diffusion data flow. The model will be implemented in all other diffusion parses as SQL or RDF
This update improve the security speed calculation. THe change into the ontology model has included around 16.000 nodes into the component_security_access tree calculation.

Bug Fixes

  • [breaking] Fix tool_ontology_parser::export_ontologies issue where exported Ontology is not the last version of data. Added command changes to prevent buffers issues on copy the data from the database.
  • Fixes the number check to include negative numbers in import process for component_number
  • Fixes mdcat calculation widget total_days issue when no value is passed to options->total_days.
  • Fixes diffusion_data_object missing id issue. Fallback to null will be applied when id is not available.
  • Fixes diffusion_data::get_ddo_map missing properties var.
  • Fixes component_input_text::resolve_query_object_sql error where when $q === [] crash the search. Add check for empty array case to avoid this situation.
  • Fixes component_text_area::resolve_query_object_sql error where when $q === [] crash the search. Add check for empty array case to avoid this situation.
  • Fixes the situation where the ddo->key is missing in the diffusion_xml->resolve_langs function.

Documentation

  • Adds DOM structure to components/index.md documentation.
  • Adds css and label explanations to request_config_presets.
  • Adds lang property definition to SQO scope note.
  • Adds lang parameter definition into SQO documentation.

Features

  • Adds scroll to search found item in ts_object
  • Adds duplicate media files feature and implements it in duplicate section process.
  • Adds diffusion_object class to handle normalized diffusion objects definition. Preliminary version.
  • Adds the diffusion_xml class to handle the diffusion XML. This is a preliminary version, which is not yet usable.
  • Adds new text parser class to process diffusion object text values.
  • Adds a main parsers loader. Used to include all parser files with one call.
  • Adds new diffusion_data class. Used to manage and resolve the ddo_map of the diffusion nodes and obtain its data.
  • Adds a new diffusion_data_object definition. Used by diffusion data flow to unify its criteria across components.
  • Adds a new get_diffusion_data function for every literal component in component_common.
  • Adds a new get_diffusion_data function for every media component.
  • Adds a new get_diffusion_data function for every relation component.
  • Adds a new get_diffusion_data function for component_section_id. It has a exception to use get_dato_full because its data is the own section_id.
  • Adds a new default_join into text parser. Used to parse data as common join of text.
  • Adds parser_date class to diffusion parser classes. Preliminary version.
  • Adds resolve_query_object_lang_behavior method to be used by translatable components to create query objects with langs in a common way.
  • Adds a choose selector to change the translatable search component input text behavior. Now users can change if the component will search with all languages or only with the specific data language (current data lang).
  • Adds a choose selector to change the translatable search component text area behavior. Now users can change if the component will search with all languages or only with the specific data language (current data lang).
  • Adds get_dato to relation_list. Now it return the inverse references as its data.
  • Adds a section_id property for diffusion_data_object. It will use to identify the diffusion data from different rows.
  • Adds resolve_data_rows method to be used to group and create diffusion objects for components with multiple data (as array of locators).
  • Implements the new diffusion data flow into XML diffusion class. Now is integrated the diffusion_data class and the parser to obtain the values.
  • Sets the key for the diffusion data object to identify data groups by locator. key is the flat locator of the data (not the last locator in ddo chain).
  • Re-enable Ontology search_tipos tree functionality. Inspector link to the tree, portal tree link button

Miscellaneous Tasks

  • Adds thesaurus_mode to differentiate status track of open items in the tree: when in relation thesaurus mode and when is default. This prevents to overwrite the main status of the ts_object element when using the relation mode.
  • Adds draft of unimplemented method request_config_object::parse_request_config_item. Will be used to atomize the big common->get_ar_request_config method.
  • Adds focus event to component_portal and component_radio_button to activate the component on tap navigation.
  • Adds DEVELOPMENT_SERVER tools to the work API end point fro debugging.
  • Adds local directory into .gitignore.
  • Adds id to the dd_object definition.
  • Adds text parser global definition of use and configuration.
  • Adds the new diffusion data classes.
  • Adds tipo, lang, id to get and set functions of diffsusion_data_object.
  • Adds draft parser_text functions to debug the XML publication flow.
  • Adds missing methods to diffsusion_object class (dfo).
  • Adds comments into resolve_langs method.
  • Adds diffusion_data property to diffusion_rdf. The client will recover this list of files available for download.
  • Adds diffusion_data property to diffusion_xml. The client will recover this list of files available for download.
  • Adds diffusion_data property to tool_diffusion. It is used to store the returned values from the called diffusion class.
  • Changes request_config_presets::get_all_request_config cache handler from local file to static cache for simplicity.
  • Changes the check to be more strictly the section with request_config_object object when using.
  • Clear caller.search_tipos on each search from ´area_thesaurus´ to safe search clearing the modified value from URL var search_tipos.
  • Improves request_config_presets documentation (markdown file request_config_presets.md).
  • Updates diffusion_xml class working file. Add write_file

Refactor

  • [breaking] Add dd_grid.get_text_column text column length control to prevent display very large values like in the component_security_access case. If value array is larger than 25 items, or total chars is > 2000, will not to be displayed in the grid.
  • [breaking] changes component_security_access JS default edit render to improve user experience. Add excluded sections for speed, and Propagation info label on permissions changes.
  • [breaking] changes component_security_access for speed.
  • Adds cache to the diffusion::get_diffusion_objects calculation for performance on multiple records.
  • changes common.render method for clarity.
  • changes diffusion::have_section_diffusion to improve error handle.
  • Changes the diffusion_class to be used in a common diffusion data flow. Now the components has a common way to return its data.
  • changes diffsion_xml functions: write_file, save, render_dom, sanitize_xml_node_name to handle the XML publication flow.
  • Changes the way how is defined search_options with language options of translatable components. Now it includes a new property q_lang that will be parsed as lang into SQO.
  • changes render_lang_behavior_check to unify render in render_common.
  • changes diffusion_data::get_ddo_map_value for convenience.
  • changes diffusion_xml->update_record method to improve stability.
  • changes diffusion_xml->write_file method for clarity.
  • changes diffusion_xml->render_dom method to improve stability.
  • Changes the resolve data flow in order to create groups of data and its XML node representation.
  • Improve parser_date methods functionality.
  • Improve parser_date methods functionality.
  • Simplifies service_time_machine.get_content_data function for section_record rendering.

Change

  • [breaking] Change the user request_config presets behavior. Now, the preset is used to overwrite the component/section properties request_config leaving the method common->get_ar_request_config do the unified hard work.
  • [breaking] Change request_config_presets behavior and documentation. Add Active control to disable presets an Public to set the use scope of the preset.
  • [breaking] Remove grid_value fallback_value when the component is not translatable to reduce the size of the object (e.g. component_security_access case).
  • Adds info property to dd_object definition class. Normalize the Ontology properties ddo items used commonly to define the section maps.
  • Adds ui.activate_tooltips options to handle self wrapper selection and to reset the tooltip.
  • Adds render_common.render_lang_behavior_check tooltips to unify div_switcher tooltips.
  • Adds default_date_mode public property to component_date for convenience on the get_date_mode_static resolution (as fallback value).
  • Adds inspector component value limit to prevent to parse big array of data (e.g. component_security_access data).
  • Adds relation_list model as allowed dd_object type. Is used by new diffusion data flow.
  • Adds user wheel event check to ts_object.scroll_to_node method to prevent to modify the early user scroll action (less intrusive behavior).
  • Changes component_portal Ontology tree policy: hierarchy_sections is no longer pass as URL argument because, without full path, is unable to draw the tree (e.g. you needs dd0, rsc0, ... to arrive to mht6).
  • Unify diffusion common methods `get_diffusion_objects...
Read more

v6.6.2

08 Jun 09:10
Compare
Choose a tag to compare

[6.6.2] - 2025-06-08

This update is a maintenance update. It sets Valencià language as Català language to get the labels from ontology.

Bug Fixes

  • [breaking] Fixes Valencia language lg-vlca issue in menu calculation when using RecordObj_dd::tipo_to_json_item. Now a fallback to lg-cat is made in this cases because lg-vlca is treated as a pointer.
  • [breaking] Fixes paginator bug where classList loading remove was not fired after the paginator was destroyed because the events_tokens were deleted before. Detected in tool_cataloging.
  • Changes the way to analyze the component_number value to remove invalid characters as letters. It fixes the invalid negative values.
  • Fixes the checks exception when empty request_config_object in component_select_lang, it sometimes has not defined.
  • Fixes the diffusion issue where different database connections are not checked individually, which causes race conditions. If one check was false, the next one was false as well.
  • Fixes wrong var check STRUCTURE_SERVER_CODE from dd_utils::get_ontology_update_info. Change to the updated var name ONTOLOGY_SERVER_CODE. The fallback order was changed too for convenience, which makes it easier for everyone.
  • Fixes non checked method execution errors in class request_config_object.

Documentation

  • Adds a definition of standardized and shared ontologies definition in ontology documentation.

Features

  • Adds new config var EXCLUDE_DIFFUSION_ELEMENTS. It is useful for hiding some diffusion elements from the tool_diffusion to prevent users from being confused by databases that are not usable, such as PRE environments.
  • Adds different TLD for update ontology. Now every server will provide its own list of TLDs. By default the master server will provide the DEDALO_PREFIX_TIPOS defined in config.php. Other servers needs to set the tld property in its own definition.

Miscellaneous Tasks

  • Adds tool_transcription lang information in the configuration for clarity. Add resolved information like Greek | lg-ell | el to the automatic translation configuration_container.
  • Adds model display in ts_object for model info in Area Ontology like v5 editor.
  • Adds check for browser requirements in tool_transcription before executing the automatic transcription.
  • Adds fallback policy to the tool_diffusion EXCLUDE_DIFFUSION_ELEMENTS value. Now if there is a value in the tool configuration it will be used, if not, it will try to use the value of the variable EXCLUDE_DIFFUSION_ELEMENTS in the config.php file if it exists and is valid.
  • Changes the register file for tool_transcription with lang changes in labels.
  • Changes tool_transcription styles for automatic_transcription for clarity on errors and success.
  • Improves component_iri value validation. Add new URL() native check and more strict pattern for regex test.
  • Removes unnecessary delete_instance action from service_ckeditor.
  • Sets the Valencia language mapped to ca with tld2 code.
  • Sets unique exception to get the correct label when Dédalo is working in Valencian language.

Refactor

  • Changes request_config_presets::search_request_config to prevent intensive used of DDBB. Using a file cache for fast access and non blocking access.

Change

  • Adds data_manager.get_element_context await to the response to unify async responses.
  • Changes table matrix_notifications to UNLOGGED for performance (it remove the Wall cache in PostgreSQL). The data in this table is temporary and it does not matter if it has been corrupted by a crash.

v6.6.1

31 May 18:22
Compare
Choose a tag to compare

[6.6.1]- 2025-05-31

This update is a maintenance update. It adds different models for automatic transcription (including the large v3 and turbo version of whisper).

Bug Fixes

  • Fix Sublime-snippet syntax in addEventListener
  • Fix bug where area_ontology don't display results in thesaurus_mode=relation when is open from button tree (into component_portal).

Features

  • Adds server health checks in system_info widget (area_maintenance) for convenience.
  • Adds a remove_tool_configuration method used to delete tool configuration in tools_register.
  • Improve component_iri save action adding keyup events to save on press Enter key.
  • Update transformer.js library and set the encoder and decoder model to use multiple models and quantization.
  • Uses the quality selection by user, it set the model with the quality set.

Miscellaneous Tasks

  • Changes the register of tool_tanscription to include multiple quality options.
  • Changes the URL of the health endpoint in the API to include a trailing slash and a unique time parameter to ensure safe calls.
  • Improve date_manager.request body handler for convenience. Prepares body object for request.
  • Improve date_manager.request handle_errors function adding a try catch to the response text taking care of response.text() exceptions.
  • Increase de PHP minimum version from API endpoint check: 8.1 => 8.3
  • Update tool_ontology. Add regex to exclude localontology0 from sections with access to the tool.

Refactor

  • Hides the configuration options and show a gear icon to display it in automatic transcription within tool_transcription

Change

  • Add info extracted from jer_dd > dd1 > properties to widget update_ontology. Clarifies the source of the current Ontology version information, stored into the jer_dd term dd1 when is exported from master.
  • Sets a fixed model to small when the user check wasm model, large models can't be load because a RAM limit for wasm.
  • Sets unselectable the automatic transcription options. Prevent the text selection.

v6.6.0

29 May 19:36
Compare
Choose a tag to compare

[6.6.0] - 2025-05-29

Finally, 27 years later, this version introduce one of the most awaited features, automatic transcription: 🥳 🎉🎉🎉

  • This version adds a automatic transcription in browser!. It use Whisper in transformer.js library, therefore the transcription process happens on the client side ensuring the privacy of the interviewees.
  • This version introduces the overwrite nodes with a local ontology definition. It use localontology TLD in the section_tipo: localontology0. It allows custom specifications.
  • This version changes the global work API request with fetch, this change can handle more resilient the calls and possible network errors as timeouts or proxy issues (or any other incredible cloud limitations...).

Bug Fixes

  • [breaking] Fix separator adding bug at end of portal list of elements. Remove the last (unnecessary) separator.
  • [breaking] Fix bug where core_functions is_empty_dato returns true for some objects with 'false' values like Ontology node 'rsc1077'. Now, objects with any property are considered not empty.
  • [breaking] Fix the inconsistency in the diffusion_sql::resolve_value function, where transliterable components such as the component_iri do not fall back to the DEDALO_DATA_NOLAN data, unlike the direct publication. (navarra132 case).
  • Fix component_date->get_diffusion_value issue where empty dates are computed resulting in a unwanted 0000-00-00 00:00:00 value.
  • Fix the data_manager._fetch_with_retry_and_timeout error where the server's lack of response does not trigger the retry request.
  • Fix double event (click and mousedown) issue in ui.build_section_tool_button
  • Fix the bug where the error property is not properly retrieved from the API response by common.build_autoload. This causes the 'not_logged' message not to be displayed..
  • Fix section list issue where refreshing the instance after a logging warning causes that the list_body styles not to be updated.
  • Fix exponential backoff error in data_manager._fetch_with_retry_and_timeout. The delay calculation uses Math.pow(2, attempts), but since attempts starts at 1, the first retry has a delay of base_delay * 2 instead of base_delay. It should be Math.pow(2, attempts - 1).

Documentation

  • Adds ontology definition in documentation.
  • Adds component_portal documentation.
  • Adds ontology TLD documentation in configuration documentation.
  • Adds definition for ontology in documentation.
  • Fix data format for tc tag in documentation of import.

Features

  • [breaking] Add save control using new save status component property to prevent save orders overlapping.
  • Adds automatic transcription process in browser using Whisper and transformer.js. It set the automatic transcription with GPU as default option.
  • Adds the area_maintenance.build_form on_render option to allow the form nodes to be handled when they are ready. Used in update_ontology widget to set persistent values from localStorage.
  • Adds update_ontology.export_to_translate option to allow download Ontology terms as CSV for easy translation.
  • Adds Dédalo API dd_core_api::test method for API testing purposes such as network metrics.
  • Adds a new overwrite function to get nodes that replace specific properties of the main node in the ontology. It uses the localontology0 section to locate these overwrite nodes.
  • Adds create_transcribable_audio_file to be used with automatic transcription process. Creates new file adapted to Whisper definition.
  • Adds delete_transcribable_audio_file to automatic transcription process. It delete the temporal audio file created for Whisper.

Miscellaneous Tasks

  • Adds the 'loading' class to the saving component (component_common.save) while it is saving to prevent the user from interacting with it.
  • Adds is_model fixed filter to update_ontology::export_to_translate widget resolution to safe exclude non translatable models.
  • Increase the timeout of components_lifecycle test to 15000 for convenience.
  • Temporarily disable login.use_service_worker to debug network problems.
  • Reduce the menu lang selectors size for convenience.
  • Unify get_element_context API calls using prevent_lock.
  • Changes Sublime snippet addEventListener using handler function for convenience.
  • Changes the parameters definition to set_value for component_text_area.
  • Unify PHP ignore_user_abort values (to true).
  • Changes the layout of the automatic transcription options in tool_transcription.
  • Changes the name of the status event calling from browser whisper worker.
  • Removes the class loading_status to show the transcription text instead the technical data.

Refactor

  • [breaking] Refactor data_manager.request method for easy debug. Removed temporally the use of the worker into the request to simplify network issues debug.
  • Change the parse_section_record_to_jer_dd_record method to use the overwrite node properties if exist in the ontology, and parse the combination into jer_dd.
  • [breaking] Refactor data_manager.request fetch function to be tolerant to network errors. Now, on network fails or timeout, the function retry x times before generate an error (useful for unstable networks).
  • Unify the inspector's notification bubbles to make them more generic. Added bubbles to Area thesaurus.
  • Refactor data_manager.get_local_db_data adding try catch to improve the errors control.
  • Changes the browser_whisper module to be used as worker. It allows to use the CPU without freezing the page.

Change

  • [breaking] Change request retries and timeout for API calls with large processes. This prevent the default timeout that could be small for long process like Build Dédalo code branch. They need big timeout and only one retry.
  • Adds path info to components in search mode to easily identify items with depth (more than one level).
  • Adds new options to data_manager.request: retries (number of times the fetch will retry in case of failure), base_delay (the initial delay between retries), timeout (the timeout limit for the request).
  • Adds audio_tr quality in ffmpeg class. This quality is used to send to Whisper, the audio file is convert to wave format with 16Mhz mono. This quality is temporal, the transcription process will delete it at end.
  • Adds health API end point to check server availability.
  • Adds replace parameter to the css.set_element_css function to control where an existing CSS property is replaced (this is sometimes needed to update temporary styles, such as the section list with and without results.).
  • Adds error handling around the health check in data_manager._fetch_with_retry_and_timeout
  • Creates a more reliable order for automatic transcribers. Now every engine has its own directory.
  • Changes inspector notifications way to event 'notification' (publish and subscribe). Notifications are inspector bubbles to inform users about important processes like Save and Network issues.
  • Changes the location of the 'area_thesaurus' and 'bubbles_notification_container'. It has been moved to a more visible top-right zone.
  • Improved safe_url random parameter using performance.now instead Date() to prevent duplicates.
  • Moves the control files to babel transcription engine. It prevent unauthorized access.

v6.5.2

21 May 16:14
Compare
Choose a tag to compare

[6.5.2] - 2025-05-21

A maintenance update.

Bug Fixes

  • [breaking] Fix diffusion_sql::split_date_range bug where non direct date split resolutions fails (see numisdata1046 and numisdata1047 properties configuration).
  • Fix tool_export error where dedalo_raw data format does not export media files. In this cases, the URL will be get from standard files_info data container of the component.
  • Fix search_presets issues where presets list and pagination fails in some contexts.
  • Fix component_date error where non null and array data were not caught generating an output error in some circumstances.
  • Fix CSS issues of component_date in edit mode when the screen resolution is bellow 960px.
  • Fix CSS components scroll issues in edit mode when the screen resolution is bellow 960px.
  • Fix resolve_query_object_sql::component_input_text bug where 'ends with' search string does not work properly.

Features

  • Add a self definition for section_tipo into comopnent_option ddo for tool_import_files. Now is possible to define self for use the same tool in virtual sections.

Miscellaneous Tasks

  • Add php_error_log_path to class system. Displayed at php_user_info widget in area_maintenance
  • Add error_log_path to request_cli flow to preserve the PHP_FPM error log output in CLI execution (process_runner.php).
  • Add tool_export select data format value persistence across reloads (using localStorage of user selected value).
  • Add custom component_dataframe->get_valor method for V5 compatibility.
  • Add custom component_info->get_diffusion_value method to deal with specific cases like mdcat1181 when we need filter the result value by key.
  • Add resolve_query_object_sql::component_input_text 'is different' new wildcards operators: contains, begins with, ends with for convenience.
  • Improve component_text_area::build_geolocation_data error when non match the number of tags and the layers. Now, only in the main data lang will be fired and error (reduces diffusion noise).
  • Reduce CSS style paginator buttons and text width in view mini for convenience.

Performance

  • Add prevent_lock property to update_lock_components_state API calls to prevent session lock.
  • Improve ui.deactivate performance removing save await from component active when value is changed. Now the deactivation does not wait for saving.

Refactor

  • [breaking] Refactor section.get_total to improve consistency queuing with promises instead timeouts. Removed totalfrom refresh sequence (used on add / remove sections).
  • Refactor section delete. Removed refresh action (delegated to caller for better code organization).
  • Refactor section delete 2. Removed refresh action (delegated to caller for better code organization).
  • Refactor toggle_presets rendering to improve loading in slow networks.
  • Refactor paginator.get_total to improve consistency queuing with promises instead time outs.
  • Unify API request count prevent_lock RQO parameter as true.

Change

  • [breaking] From now on, the execution CLI uses the same error log path as the PHP-FPM pool to get a unified error output. This is useful to debug errors in process like publication that runs into a separated CLI process.
  • Change common::get_matrix_tables_with_relations table matrix_test inclusion policy from DEVELOPMENT_SERVER to SHOW_DEBUG for convenience (to make test in non development servers and get the relation_children resolution correctly).
  • Change system::get_mhz policy getting value from max thread Mhz. instead the previous first thread selection.
  • Increase the timeout to 5000 ms for JS test unit major test.

Security

  • Enforce the component_select prevent add new values into the target section.

v6.5.1

30 Apr 16:09
Compare
Choose a tag to compare

[6.5.1] - 2025-04-30

Bug Fixes

  • [breaking] Fix component_relation_parent->get_parents_recursive bug where an object is passed instead the expected string $this->tipo.
  • [breaking] Fix component_relation_parent::get_parents_recursive infinite loop situation
  • Check ts_term before use in get_coins_by_period widget.
  • Fix component_common::get_value_with_fallback_from_dato_full bug where non resolved data with invalid type (other than expected object or string) generates an error in diffusion mainly (e.g. peri1 case).
  • Fix get_coins_by_period widget $empty_period_count increment value error.
  • Fix ts_object bug where terms with same parent as children creates an infinite loop in the thesaurus tree interface. A track of opened elements is saved now to prevent this issue.
  • Fix MySQL field creation bug where field_coment is not escaped correctly causing error on new table creation (prevents problems with apostrophes like: l'informació ..)

Features

  • Add empty_period_count in get_coins_by_period widget.
  • Add set components data for processed images in crop_50 images for numisdata. Now the processed images saves the optional component data.
  • Add render_common.render_error function to manage Dédalo standard errors (mainly for components like component_relation_parent when infinite loops is detected, etc.).
  • Add last_section_selection handler to manage section component selection persistence across page reload.

Miscellaneous Tasks

  • Relax order set from ontology::parse_section_record_to_jer_dd_record to improve compatibility with non already updated Ontologies.
  • Remove get_coins_by_period widget unused vars.
  • Add debug info for section::get_ar_children_tipo_by_model_name_in_section method.
  • Add component_relation_parent errors handler (set components Dédalo standard errors in the component when a infinite loop is detected).

Refactor

  • Refactor common::build_request_config method for clarity.
  • Change the file processor of media to use the result but don't store the original media (only save processed media not the source).
  • Refactor diffusion_mysql::generate_fields method to improve clarity and security.

Change

  • Change Thesaurus fallback value term_text from id to section_tipo_section_id (like 59 -> render0_59) to improve readability.
  • Add more area-threshold and remove any black matches in the crop_50 import extension for numisdata.
  • Null value of the HTML node for file_processor_select as null instead a string.
  • Change error level for 'Ignored not found ts_term for period' in widget get_coins_by_period.

v6.5.0

17 Apr 11:43
Compare
Choose a tag to compare

[6.5.0] - 2025-04-17

🥳 🎉 A parent/children update!

This version will introduce an important data change: The parent/children data model has been changed from children data model to parent data model.
Therefore, before update it, please do a backup of your database.

This update finished the Ontology transition between old editor to the new scenario. Now, the ontology is fully integrated in with the hierarchy model.

A new ontology and thesaurus data model

This version changes the parent/children data model of the Ontology and all Thesaurus sections.
These sections now use the parent model instead of children model.
This update will move all child relationships to parent relationships.

Important

Only for updates from v6.4.5
If your hierarchy has more than 1 root/top nodes, the update will create new term and will be set as root/top node inserting the current root/top nodes as children of it.
You can get more information in the Àgora.

New way to Indexing people

Now, People section will not showed at the thesaurus tree, because is impossible to represent large People datasets into a thesaurus tree.
Therefore, the indexation tool include a new way to Indexing People.
This way don't remove the hierarchy People definition, but is recommendable to set the view in thesaurus to No to prevent to show large dataset in the tree.
The People hierarchy needs to be Active to show the person name and surname in the Indexation fields.

Bug Fixes

  • [breaking] Fix diffusion_section_stats::get_interval_raw_activity_data errors where what values are not parsed correctly.
  • [breaking] Fix tm update from transform_data::update_dataframe_tm_to_v6_4_3 where unresolved target_section_tipo crashes the update script.
  • [breaking] Fix set empty dato bug in component_relation_children. Normalize input data as array to prevent null issues.
  • Add matrix_table check before trigger counter::consolidate_counterin class counterto prevent invalid table resolution issues.
  • Check the the model name is resolved to cache it, if the model name has not been resolved don't cache it because next calls could change the result (as in ontology update).
  • Remove the component cache when the component has sub_ddo_map. sub_ddo_map can conflict with other columns because it set on the fly and it can change in previous instances of the component. see: export issue
  • Remove the skip hierarchy_sections for ontology calls. ontology use all sections active to find instead they are not active_in_thesaurus or they have not a root term defined in main_ontology.
  • Fix component_relation_children_Test errors with new component resolution (not store direct data anymore)
  • Fix test unit errors in v6.5 (changes in component_relation_children and component_relation_parent mainly)
  • Fix JS unit test issues with v6.5
  • Fix login CSS issue with long text like 'Loading Dédalo files'. Now text is smaller and text-overflow: ellipsis is applied.
  • Fix thesaurus ts_object error when editing component was destroyed before refresh.
  • Fix date check before check file exists error in update_code::get_code_update_info blocking the update process when file is present.
  • Fix missing self variable in ts_object.toggle_nd method that causes error on open ND terms form Thesaurus.
  • Set the get_all_main_ontology_records() in hierarchy. Now it use its own definition to get all hierarchies instead use the Ontology definition. Previous structuration fails in some calls.

Documentation

  • Add breakdown description in documentation of sqo
  • Change the Readme with the Ontology transition from v5 to v6

Features

  • [breaking] Add ts_object open status persistence. Arrow state is preserved when the area_thesaurus page is navigated or reloaded.
  • Add an update process to check if the section of component_children has an order component.
  • Add new widget option rebuild_user_stats to database_info (area_maintenance). Used to re-create the user stats saved in section dd1521 when the user logs out of Dédalo summarizing daily user activity.
  • Add a ddo_map_id to identify components instances with different ddo_map, same component with different ddo_map needs to be different instance.
  • Add get_main_order() in ontology to find the order data of the given tld in main sections.
  • Add ts_id and ts_parent to ts_object definition. They are used to link between hierarchy nodes (ts_objects).
  • Add order property to ts_object. Now every call to get the ts_objects will contain its order(its position between siblings). Used to show it in the tree.
  • Add an operator for the filter_by_locators. Used to change the operator between locators in the SQO.
  • Add a property for the operator used between locators, $filter_by_locators_op, in SQO.
  • Add has_children_of_type() method in component_relation_children(). Used to check if the given child has any child descriptor or non descriptor.
  • Add Resistance fields to new section and link into the new resistance portal dmm1500->dmm1964.
  • Add button_spinner CSS to allow buttons to display an animation when a long process if fired like export_media from tool_export.
  • Add breakdown definition to sqo. Used to split the search result with every locator that match the query. Used in related search mode to find indexations.
  • Add breakdown functionality to related search. Use to split result in every locator that match instead result the full section.
  • Add new list_thesaurus mode for section. Used to represent the thesaurus node with section_records in tool indexation (to index people with audiovisual transcriptions).
  • Add new portal view in mode list for component_relation_index. Used to represent the indexation in the thesaurus_list in the people list in indexation_tool
  • Add new method add_root_node() into the 6.5.0 upgrade process. It will create new root/top node in hierarchy and link the current children terms to it. Preserve the current thesaurus logic.
  • Added view_thesaurus_list_section in section. Used to show a list as a thesaurus view.
  • Added view_indexation_list_portal() in component_portal. Used to show the indexation component in a list as thesaurus lists.
  • Added the way to give other data than get_diffusion_value in filtered_values in relation_list. Used to give the data or diffusion_data or other methods of the component directly in publication.
  • Implement the people section into the tool_indexation to be used in the same way than thesaurus, but without the thesaurus tree. People is a large section that can not be represented in a hierarchy.

Miscellaneous Tasks

  • [breaking] Change SAML implementation to be Dédalo standard. Added SAML files an library dependencies (onelogin and robrichards from composer).
  • [breaking] Update install/import/hierarchy files with the new model data for component_parent (Switches from children to parent).
  • Add 6.4.5 update into 6.5.0 branch correctly.
  • Add db_indexes definitions. Add matrix_langs and matrix_ontology_main.
  • Add related index to matrix_langs. Improve the thesaurus tree.
  • Add missing index matrix_langs_term to db_indexes class
  • Add to check model of component for order, it needs to be component_number
  • Add to check data of component to save order in the section data for update it.
  • Add tool_diffusion control to hide unavailable diffusion items for clarity.
  • Add style loading to refresh_element in ts_object
  • Add direct mode options to relation_list->get_diffusion_value custom resolution (see 'mdcat4338').
  • Add button_spinner CSS class to button export_media from tool_export.
  • Adjust ts_object arrow icon vertical position
  • Check if the parent section_tipo exists in jer_dd, set new one if not exist to be consistent in the change children model to parent model
  • Change the return for the continue to prevent skip children data after a error set parent data in update 6.5.0
  • Change the previous version to update for v6.5.0
  • Force integer to date params in `update_user_activity_stats to preserve types.
  • Improve ts_object CSS vertical align.
  • Implement filter_by_locators_op property to set different operator in the SQO.
  • Remove unnecessary brackets in ontology::get_active_elements filter q sentence.
  • Remove old node_type in ts_object is not used anymore. Now all nodes in doom are thesaurus nodes. hierarchy nodes are not represented in the tree.
  • Remove old global_search from diffusion_sql. Not used anymore.
  • Remove visible check in areas children calculation (not used anymore).
  • Rename the $child_data as $data to be coherent with the method name get_data and added some comments to ts_object.
  • Set correct section_map to get thesaurus order for componnet_children
  • Unified get_grid_value output and add model as property to allow client side easy handle in export media download.
  • Update composer libraries:
  • Update jsoneditor lib to from 2.4.0 to 3.0.0
  • Unify media components grid value format for get_url (use always the absolute URL)

Refactor

  • [breaking] Refactor ts_object.drag_and_drop (and ts_object) to improve readability and homogenize behaviors and control.
  • Change the search_thesaurus in area_thesaurus to be consistent and easy to understand. Now resolve all children of all parents in the path of every node found in the search and create an unique array with all of them linked by ts_parent and ts_id.
  • Change the render_ts_object adding render_ts_record() to render the nodes 1 by 1 in async way. Now is possible render only 1 node.
  • ...
Read more

v6.4.5

06 Mar 19:10
Compare
Choose a tag to compare

[6.4.5] - 2025-03-06

Bug Fixes

  • Fix tool_export issue where components to exclude area not passed throw levels (e.g. identifying image > image case)
  • Fix tool_ontology get TLD label error. Using fallback to ontology7 to allow many sources.
  • Fix export of the table node and filename of the get_export_xsl to be coherent with the current render.

Features

  • Add $caller name to all instances, implemented in common. Now is possible set the caller class name to identify the caller who made the instance. Used by get_grid_value() data to resolve its data depending of the caller (tool_export, tool_diffusion, etc)
  • Implement the caller into the get_grid_value from tool_export to resolve the media data URI as absolute.
  • Add new view_table_export to dd_grid to render the grid with a compatible format for Excel and XSLX library.
  • Add relation_list options to manage direct component values in get_diffusion_value method when data_to_be_used is filtered_values. Used to allow get 'code' and other values in dmmgobes29`.
  • Add children_recursive to the SESSION to maintain the sqo with its children definition in page reloads, tool_export and tool_propagation
  • Add delete_instance option to delete_dataframe function in common. Now the components can delete the component_dataframe when they delete its data.
  • Add component_dataframe to component_select. Now if the component_select has a dataframe get its subdatum and render its instance.

Miscellaneous Tasks

  • Improve get_children_data active TLD detection and reset.
  • Improve get_children_data active TLD detection and reset. Refine to active_in_thesaurusonly.
  • Add cache key elements to relation_list->get_diffusion_dato() to prevent inconsistencies when filter_section or filter_component are used.

Change

  • Resolve the component_image data in tool_export to check if the data is absolute.
  • Implements the table_export in tool_export for the formats: ods and xlsx, both are using the xlsx.js` library and it not support images nodes.
  • Export html format using the current render table in tool_export. Now the html exported file is exactly the same that user is showing. Remove to use xslx.js library, it not support images.
  • Unify empty values to null in relation_list->get_diffusion_value() when data_to_be_used is filtered_values.
  • Change get_children_data policy. Now, 'active_in_thesaurus' will not filter thesaurus tree results (Ontology)
  • Add tipo in the columns_map in the process, to be coherent with with the parse of the column. The tipo needs to be consistent in all process.
  • Set the column order when the component has a dataframe and show its own parents dd_info. Now the dataframe can be moved to the end instead the dd_info node, set the columns_map in the rqo definition in properties. See the ontology definition of tch555.
  • Set the match between client search and server search before propagate data. Now if the server result is greater than client stop the propagation.