Releases: renderpci/dedalo
v6.6.5
[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 whenq
value is a float. Cast to string to unify the handler format. - Fix
component_number::resolve_query_object_sql
issue wherebetween
operator do not handle correctly decimal values (previously forces integer always). Removeint
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 thesection
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 wherenexus
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
tocomponent_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 toInformants
. - 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 version6.6.5
including missingjer_dd_model
DB index. - Add
test
check forDEDALO_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 asbox elements
in the XML structure. - Add
area_maintenance
widgetcheck_config
control to handle missing sample config files cases. Refactor code moving functions fromarea_maintenance
to the widget class. - Add new method
get_tables
fromdb_tasks
to get the full list of tables (in 'public' schema) from Dédalo DDBB. - Add new widget class
database_info
to unify thearea_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 insidediv
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
todidactic
in theactv
map fromqdp
exhibitions. - Fix selector CSS issues in
view_graph_section
less file. - Improve
paginator_container
CSS insection
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 intch280_to_actv1.json
move TLD file. - Remove unnecessary
area_ontology
mode filter fromrender_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 becausecomponent_number
requires it. - [breaking] Rewrite
DBi::_getConnection
method for clarity. AddedPERSISTENT_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
inutils
that replacesrelation_list.open_related_records
but for general use (including new buttonlist_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. Addedtarget_section_tipo
validation. - Improved
db_tasks::optimize_tables
method adding tables check and validations. - Improve the
tool_indexation
miss configuration tolerance, like the non-definedpeople_section_ddo
role. - Move
component_portal
edit buttons render logic to a separate filebuttons
to reducerender_edit_component_portal
code length. - Refactor
db_tasks::consolidate_table
for convenience. - Refactor
database_info
widget (area_maintenance
). Addedoptimize_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 forarea_maintenance
widgets. - Unify
build_database_version
widget with new model forarea_maintenance
widgets.
Change
- [breaking] Change the default lang used for
diffusion
in XML fromlg-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 defaultDEDALO_STRUCTURE_LANG
. Used by new implementation ofdiffusion_xml
. - [breaking] Add fallback to
diffusion::get_diffusion_map
for the elements name. Previously, onlyDEDALO_STRUCTURE_LANG
is accepted, but for new XML diffusion use it is necessary to allow fallback here (usually tolg-eng
). - Add
jer_dd_model
index indb_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 likepost_actions
(e.g. combine XML rendered files into a single one). - Add test for
widgets
classes values inarea_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. Addmatrix_layout_dd
(print presets layout table -former oh1 print presets-),matrix_dataframe
andmatrix_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
[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 displayingPeople
). - [breaking] Fix bug where
component_relation_children
andcomponent_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 alang
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 whensearch_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 (usinglocalhost
in a non Internet or LAN context) - Fix
component_image
issue wheretool_upload
was not checked before open it, causing antool_common
error trying to resolve the undefined tool context. - Fix
area
issue where RQOsearch
was made instead the correctget_data
on building giving and server error. Addarea
ascommon->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 undefinedtool_context
situations. - Add
ddo->id
check forparser_text::text_format
method to handle empty id cases. - Add
tool_indexation
label nodes to the top selectors. - Improve
menu
nontool_user_admin
error message for clarity. - Improve response error messages in
tool_import_files
PHP class. - Remove redundant
notification
subscription ininspector
. 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 serverrequest_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 bynotification
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 handledirect
import files from theimages
section. - Change
css.js
root_css
var from object to map (more efficient). - Change
tool_import_files
mode namedirect
tosection_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 classpattern_replacer
for sophisticated pattern replacement functionality. - Change
tool_import_files
service_tmp
andservice_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
forv5_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
intool_import_files
to clarify the option in both modes:section
anddirect
. - Change
section
inspector
check to allow compareundefined
andnull
values instead onlynull
. - Remove unnecessary
async
from methodcss.update_style_sheet
. - Remove
http_response_code(500)
header from API end point when a Throwable Exception occurs. Affectsfetch
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
[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
missingid
issue. Fallback to null will be applied whenid
is not available. - Fixes
diffusion_data::get_ddo_map
missingproperties
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 thediffusion_xml->resolve_langs
function.
Documentation
- Adds
DOM structure
to components/index.md documentation. - Adds
css
andlabel
explanations torequest_config_presets
. - Adds
lang
property definition toSQO
scope note. - Adds
lang
parameter definition intoSQO
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 theddo_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 incomponent_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 forcomponent_section_id
. It has a exception to useget_dato_full
because its data is the ownsection_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
torelation_list
. Now it return the inverse references as its data. - Adds a
section_id
property fordiffusion_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 inrelation
thesaurus mode and when is default. This prevents to overwrite the main status of the ts_object element when using therelation
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
andcomponent_radio_button
to activate the component on tap navigation. - Adds
DEVELOPMENT_SERVER
tools to thework API end point
fro debugging. - Adds local directory into
.gitignore
. - Adds
id
to thedd_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 ofdiffsusion_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 todiffusion_rdf
. The client will recover this list of files available for download. - Adds
diffusion_data
property todiffusion_xml
. The client will recover this list of files available for download. - Adds
diffusion_data
property totool_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
withrequest_config_object
object when using. - Clear
caller.search_tipos
on each search from ´area_thesaurus´ to safe search clearing the modified value from URL varsearch_tipos
. - Improves
request_config_presets
documentation (markdown filerequest_config_presets.md
). - Updates
diffusion_xml
class working file. Addwrite_file
Refactor
- [breaking] Add
dd_grid.get_text_column
text column length control to prevent display very large values like in thecomponent_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, andPropagation
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 propertyq_lang
that will be parsed aslang
intoSQO
. - changes
render_lang_behavior_check
to unify render inrender_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 forsection_record
rendering.
Change
- [breaking] Change the user
request_config
presets behavior. Now, the preset is used to overwrite the component/section propertiesrequest_config
leaving the methodcommon->get_ar_request_config
do the unified hard work. - [breaking] Change
request_config_presets
behavior and documentation. AddActive
control to disable presets anPublic
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 todd_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 unifydiv_switcher
tooltips. - Adds
default_date_mode
public property tocomponent_date
for convenience on theget_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 alloweddd_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 needsdd0
,rsc0
, ... to arrive tomht6
). - Unify
diffusion
common methods `get_diffusion_objects...
v6.6.2
[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 usingRecordObj_dd::tipo_to_json_item
. Now a fallback tolg-cat
is made in this cases becauselg-vlca
is treated as a pointer. - [breaking] Fixes
paginator
bug where classListloading
remove
was not fired after the paginator was destroyed because theevents_tokens
were deleted before. Detected intool_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
incomponent_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
fromdd_utils::get_ontology_update_info
. Change to the updated var nameONTOLOGY_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 inconfig.php
. Other servers needs to set thetld
property in its own definition.
Miscellaneous Tasks
- Adds
tool_transcription
lang information in the configuration for clarity. Add resolved information likeGreek | lg-ell | el
to the automatic translationconfiguration_container
. - Adds
model
display ints_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 variableEXCLUDE_DIFFUSION_ELEMENTS
in theconfig.php
file if it exists and is valid. - Changes the
register
file fortool_transcription
with lang changes in labels. - Changes
tool_transcription
styles forautomatic_transcription
for clarity on errors and success. - Improves
component_iri
value validation. Addnew URL()
native check and more strict pattern for regex test. - Removes unnecessary
delete_instance
action fromservice_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 unifyasync
responses. - Changes table
matrix_notifications
toUNLOGGED
for performance (it remove theWall
cache inPostgreSQL
). The data in this table is temporary and it does not matter if it has been corrupted by a crash.
v6.6.1
[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 inaddEventListener
- Fix bug where
area_ontology
don't display results inthesaurus_mode=relation
when is open frombutton tree
(intocomponent_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 intools_register
. - Improve
component_iri
save action addingkeyup
events to save on pressEnter
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 uniquetime
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 ofresponse.text()
exceptions. - Increase de PHP minimum version from API endpoint check: 8.1 => 8.3
- Update
tool_ontology
. Add regex to excludelocalontology0
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 widgetupdate_ontology
. Clarifies the source of the current Ontology version information, stored into thejer_dd
termdd1
when is exported from master. - Sets a fixed model to
small
when the user checkwasm
model, large models can't be load because a RAM limit forwasm
. - Sets unselectable the automatic transcription options. Prevent the text selection.
v6.6.0
[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 thecomponent_iri
do not fall back to theDEDALO_DATA_NOLAN
data, unlike the direct publication. (navarra132
case). - Fix
component_date->get_diffusion_value
issue where empty dates are computed resulting in a unwanted0000-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 thelist_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
andtransformer.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 inupdate_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 toupdate_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 usingprevent_lock
. - Changes Sublime snippet
addEventListener
using handler function for convenience. - Changes the parameters definition to
set_value
forcomponent_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 intojer_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
andtimeout
for API calls with large processes. This prevent the default timeout that could be small for long process likeBuild 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 inffmpeg
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 thecss.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 usingperformance.now
insteadDate()
to prevent duplicates. - Moves the control files to babel transcription engine. It prevent unauthorized access.
v6.5.2
[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 (seenumisdata1046
andnumisdata1047
properties configuration). - Fix
tool_export
error wherededalo_raw
data format does not export media files. In this cases, the URL will be get from standardfiles_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 forsection_tipo
intocomopnent_option
ddo fortool_import_files
. Now is possible to defineself
for use the same tool in virtual sections.
Miscellaneous Tasks
- Add
php_error_log_path
to classsystem
. Displayed atphp_user_info
widget inarea_maintenance
- Add
error_log_path
torequest_cli
flow to preserve thePHP_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 likemdcat1181
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 toupdate_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. Removedtotal
fromrefresh
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
tablematrix_test
inclusion policy fromDEVELOPMENT_SERVER
toSHOW_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
[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 inget_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
inget_coins_by_period
widget. - Add set components data for processed images in
crop_50
images fornumisdata
. Now the processed images saves the optional component data. - Add
render_common.render_error
function to manage Dédalo standard errors (mainly for components likecomponent_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
fromid
tosection_tipo_section_id
(like59
->render0_59
) to improve readability. - Add more area-threshold and remove any black matches in the
crop_50
import extension fornumisdata
. - Null value of the HTML node for
file_processor_select
asnull
instead a string. - Change error level for 'Ignored not found ts_term for period' in widget
get_coins_by_period
.
v6.5.0
[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 wherewhat
values are not parsed correctly. - [breaking] Fix tm update from
transform_data::update_dataframe_tm_to_v6_4_3
where unresolvedtarget_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 triggercounter::consolidate_counter
in classcounter
to 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
forontology
calls.ontology
use all sections active to find instead they are notactive_in_thesaurus
or they have not a root term defined inmain_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
andcomponent_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 ints_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 ofsqo
- Change the
Readme
with the Ontology transition from v5 to v6
Features
- [breaking] Add
ts_object
open status persistence. Arrow state is preserved when thearea_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
todatabase_info
(area_maintenance
). Used to re-create the user stats saved in sectiondd1521
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 differentddo_map
needs to be different instance. - Add
get_main_order()
inontology
to find the order data of the given tld in main sections. - Add
ts_id
andts_parent
tots_object
definition. They are used to link between hierarchy nodes (ts_objects). - Add
order
property tots_object
. Now every call to get thets_objects
will contain itsorder
(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 incomponent_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 likeexport_media
fromtool_export
. - Add
breakdown
definition tosqo
. Used to split the search result with every locator that match the query. Used inrelated
search mode to find indexations. - Add
breakdown
functionality torelated
search. Use to split result in every locator that match instead result the full section. - Add new
list_thesaurus
mode forsection
. Used to represent the thesaurus node withsection_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 thethesaurus_list
in the people list inindexation_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
infiltered_values
inrelation_list
. Used to give the data or diffusion_data or other methods of the component directly in publication. - Implement the
people
section into thetool_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. AddedSAML
files an library dependencies (onelogin
androbrichards
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. Addmatrix_langs
andmatrix_ontology_main
. - Add related index to
matrix_langs
. Improve the thesaurus tree. - Add missing index
matrix_langs_term
todb_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
torefresh_element
ints_object
- Add
direct
mode options torelation_list->get_diffusion_value
custom resolution (see 'mdcat4338'). - Add
button_spinner
CSS class to buttonexport_media
fromtool_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
filterq
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
fromdiffusion_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 nameget_data
and added some comments tots_object
. - Set correct
section_map
to get thesaurus order forcomponnet_children
- Unified
get_grid_value
output and addmodel
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
(andts_object
) to improve readability and homogenize behaviors and control. - Change the
search_thesaurus
inarea_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 byts_parent
andts_id
. - Change the
render_ts_object
addingrender_ts_record()
to render the nodes 1 by 1 inasync
way. Now is possible render only 1 node. - ...
v6.4.5
[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 toontology7
to allow many sources. - Fix export of the
table
node and filename of theget_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 byget_grid_value()
data to resolve its data depending of the caller (tool_export
,tool_diffusion
, etc) - Implement the caller into the
get_grid_value
fromtool_export
to resolve the media data URI as absolute. - Add new
view_table_export
todd_grid
to render the grid with a compatible format for Excel and XSLX library. - Add
relation_list
options to manage direct component values inget_diffusion_value
method whendata_to_be_used
isfiltered_values. Used to allow get 'code' and other values in
dmmgobes29`. - Add
children_recursive
to theSESSION
to maintain thesqo
with its children definition in page reloads,tool_export
andtool_propagation
- Add
delete_instance
option todelete_dataframe
function incommon
. Now the components can delete thecomponent_dataframe
when they delete its data. - Add
component_dataframe
tocomponent_select
. Now if thecomponent_select
has adataframe
get itssubdatum
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 toactive_in_thesaurus
only. - Add cache key elements to
relation_list->get_diffusion_dato()
to prevent inconsistencies whenfilter_section
orfilter_component
are used.
Change
- Resolve the
component_image
data intool_export
to check if the data is absolute. - Implements the
table_export
intool_export
for the formats:ods
andxlsx
, both are using the xlsx.js` library and it not support images nodes. - Export
html
format using the current render table intool_export
. Now thehtml
exported file is exactly the same that user is showing. Remove to usexslx.js
library, it not support images. - Unify empty values to null in
relation_list->get_diffusion_value()
whendata_to_be_used
isfiltered_values
. - Change
get_children_data
policy. Now, 'active_in_thesaurus' will not filter thesaurus tree results (Ontology) - Add
tipo
in thecolumns_map
in the process, to be coherent with with the parse of the column. Thetipo
needs to be consistent in all process. - Set the column order when the component has a
dataframe
and show its own parentsdd_info
. Now the dataframe can be moved to the end instead thedd_info
node, set thecolumns_map
in therqo
definition in properties. See the ontology definition oftch555
. - Set the match between client search and server search before propagate data. Now if the server result is greater than client stop the propagation.