Releases: renderpci/dedalo
v6.4.0
[6.4.0] - 2025-02-01
🥳 🎉 An ontological update!
This version change the Onotology engine and its editor. It is a big step for the Dédalo engine.
Before upgrading make a backup of your data.
Important
If you want to update from v6.3.1, you need to update your ontology before running the update code in the maintenance panel.
Run the latest ontology update in version 6.3.1 to get the latest changes in version 6.3.1 before clicking the update code button.
The ontology will not be upgradable with the 6.4.0 update process (it uses another update model) and make sure you have the latest version before you start upgrading:
It should be:
Dédalo 2025-01-27T00:00:00+01:00 Benimamet v5_compatible
Log out and log in and update the code normally.
Important
Notes and possible issues with this update.
- If you see any error in login screen, press the
continue
button and go to maintenance panel and review the config files definitions orUpdate data
messages orCheck config
panel. - v6.4.0 has a different maintenance view than previous versions, when you update from v6.3.0 to 6.3.1 and then 6.4.0 without log out and login, you can get a empty maintenance alerts, log out and log in change to new model (or check your browser cache)
- Update the ontology after v6.4.0 will finished, it will review all nodes and get the last version
If you wish to install it, proceed as usual.
Changes
- New ontology schema and editor. Now the ontology definition use Dédalo standard sections and components to manage nodes. This change able to apply all Dédalo tools and processes as other sections: Time_machine, Propagation, Import, Export, etc.
- Removed v5 direct ontology editor. If you want to review it you can download here.
- New way to update ontology and code. Now the update process is accessible by work API and the versions are controlled to be coherent between code and ontology. Now, any Dédalo can server ontology definitions and code (as mirror server).
- Added a widget to control the server installation with information about the memory, libraries versions, PHP, PostgreSQL, protocol, etc.
- Change the Dataframe Time_machine. Now main data and its own dataframe shared the Time machine record and the recovery way is more consistent.
- Now is able to propagate data safely in secondary windows.
- Added move to portal process, used to change data with ontology changes.
- Added move to table process, used to move data from a matrix table to other matrix table. (as matrix_list to matrix_hierarchy).
- Added new recovery mode. Used to enter with a safe ontology version in crash cases. Recovery mode able to access to maintenance panel to rebuilt ontology or run processes to re-built Dédalo installation.
- Changed
json_editor
tojson_editor svelte
Bug Fixes
- [breaking] Fix
area_ontology
issue wheremain_table
was not correctly added to parent resolution preventing correct nesting of parents in search results - [breaking] Fix bug where
get_request_config_section_tipo
resolution injects resolved section data overwriting active component data from same section instance (component_relation_children
case) - Fix
hierarchy::
main_tablecall with old var name (
hierarchy_Test`) - Fix menu CSS issue where arrows were displayed vertically misaligned
- Fix empty value issue in
dd_grid_cell_object::resolve_value()
(key do not exists) - Fix inconsistency in
component_email
,component_date
construct with nullable $tipo - Fix name error of
main_ontology_section_data.json
- Fix parse array to string to show errors in update class
- Fix Return null when the string has a
null
value as string in decode JSON. - Fix
db_data_check::check_sequences
issue where errors in a table read cause a unrecoverable error. Now are skipped - Add a equal operator to get the ontology main from a tld. the search tld need to be exact to avoid false results.
- Fix core function
dump
issue where non definedDEDALO_ROOT_PATH
causes a crash when it is used in publication code (don't loadconfig.php
) - Fix creation geo tag error in
component_text_area
- Fix dedalo_notification issue where empty value overwrite the default DEDALO_NOTIFICATION
- Fix unsync situation when
DEDALO_RECOVERY_MODE
is set and table name is updated. WhenDEDALO_RECOVERY_MODE
is removed or set to false, the value was not restored - Fix
component_text_area
layer_selector duplicity - FIX
ck-editor
CSS issue where list styles were not displayed correctly - Fix missing pagination limit/offset issue in
component_dataframe
- Fix
tool_image_rotation
issue where sometimes the image was not visualized (load event unsync) - Fix
component_text_area
diffusion issue where paragraphs with styles are not removed (MIB countermarks case) - Fix widget
check_config
dedalo_notification issues when no value is set topage_globals.dedalo_notification
- Fix error where
logger_backend_activity::$enable_log
was not applied correctly (now checks is inlog_message
insteadlog_message_defer
) - Fix missing lang fallback for label in
ontology_legacy::tipo_to_json_item
- Fix Firefox CSS issue with
jsoneditor
when height was not set properly - Fix
tool_export
error when the same component in two different sections stops drag and drop of the second one - Fix duplicated widget
move_tld
- Fix to get
section_id
to resolve the identification value in move_locator in existing value. - Fix tools cache error where cache file was not deleted correctly
- Fix
ts_object
is_root calculation issues. Unified in new functionts_object.ìs_root
- Fix login delete caches error where non HTTPS server generates an error when try to delete
caches
- Fix page crash when try to load a non existing instance on render callback. Now the instance is checked before
- Fix search error when empty
group_dom_obj
crash the search instance - Fix installation problem when
area_maintenance::recover_jer_dd_column
try to repair theterm
column in empty databases (before install) - Fix missing variable into
click_handler
function inrender_tool_ontology
- Fix error in set v5 properties. Now the array is removed previous to assign it the data in the
jer_dd
- Fix set
null
possibility forsqo
andcaller_tipo
variables inget_insance()
of thesections
class. - Fix empty servers error handler in widget
update_ontology
- Fix empty value error case in
ontology::parse_section_record_to_jer_dd_record
that causes crashes in empty values situations - Fix inconsistency detected in
tool_ontology_export
where saved tld list containing non existing values causes in ontologies list causes process errors. Now values are matched with ontologies list to prevent this cases - Fix remove the model for model nodes when a new hierarchy is created. Model nodes has not a model to define itself.
- Fix
component_security_access
issue where non countable 'datalist' creates an error on debug message - Fix wrong lang property in
ontology::get_all_main_ontology_records
- Fix
area_maintenance::register_tools
response message issues on import tools - Fix wrong sample config servers URL
- Fix
install::clean_ontology
syntax error - Fix
component_common::get_time_machine_data_to_save
syntax errors - Fix set the bulk revert data correctly when the time_machine has only 1 record.
- Fix error where
hierarchy::generate_virtual_section
do not set virtual section model (dd6
) -this new section if for models but is a section too-. - Fix
ontology::set_records_in_jer_dd
error where hierarchy main records transformation fails because try to use same parser than regular matrix_ontology records. Used bytool_ontology
. - Fix >=6.4 missing detection in
ontology::jer_dd_version_is_valid
- Fix
ontology_data_io
issues test checking remote server - Fix
ts_object
keyup
event interactions with thesaurus search action - Fix
update_code
widget error whereforce_quit
is not called in the correct place. - Fix
common.js
build_autoload
error checkingapi_response.errors
Features
- [breaking] Add recovery mode to allow root user login and fix the Ontology problems
- [breaking] Add
jer_dd_recovery
database and logic to handle badjer_dd
table situations - [breaking] Add
parse_section_record_to_jer_dd_record()
method in ontology. Build every component in the section given ($section_tipo, $section_id) and parse tojer_dd
format. - Create new area ontology, it will use to manage ontolgy in the same way that other hierarchies
- Add new area_maintenance widget to update the current ontology data into new structure. Now matrix_descriptors is moved to
jer_dd
as column with all langs. - Add
ontology_sections
property torequest_config
definition. Used to for new ontology editor to get allsection_tipo
nodes of ontology. - Add
widget_update_ontology
remote server check - Add
widget_update_code
remote server check - Add
check_url
core function to allow verify if URL is reachable - Add component_section_id paste process in search mode to allow easy paste from tables (list of id separated by return)
- Add
area_maintenence
widgetcheck_config
notifications functionality. Notifications are stored in core_config file and read from API update_lock_components_state on every component activation/deactivation - Add
area_maintenence
widgetsystem_info
to display system information about CPU, RAM, HD, etc. - Add new tool_ontology, the tool will control the render from section to
jer_dd
- Add
tipo_in_array()
function to check if the tipo is valid in a grup of tipos. It added wildcards in the array to include all tipos in a tld as ontology* - Add to get and render buttons and tools into thesaurus area (and ontology)
- Add new
tool_ontology_export
...
6.4.0-release_candidate.1
[6.4.0-release_candidate.1] - 2024-01-23
Fourth pre-release of the upcoming 6.4.0
This RC release includes a several fixes of some bugs in the new ontology model and add:
- Fixed the
section_list_thesaurus
bug reported by Manuel Gozalbes in agora. - Fix: tool propagation reported by Jonas von Felten
- [breaking] Fix
ontology::regenerate_records_in_jer_dd
bug where TLD nodes deletion generates errors trying to resolve deleted models. Change the sequence order to prevent this issues. - Fix recovery mode infinite loop situation when user deactivate the mode but the parameter
recovery
remains in the URL. Now, the URL param is removed from the widget. - Add
qdp
totch
tansform data - Add
recovery_mode
v6.3.1
[6.3.1] - 2025-01-22
-
This update prepare your installation to get the 6.4.0 new ontology definition.
It is mandatory to add the tldontology
to yourDEDALO_PREFIX_TIPOS
config values and update your Ontology afterwards. -
This update moves the
qdp
definition totch
If you haveqdp
tld defined in your configuration file, this update will move your data to the standardtch
model.
Review your config definition before run the update, is mandatory to add the tldtch
to yourDEDALO_PREFIX_TIPOS
config values and update your Ontology afterwards. -
This version is the last version compatible with the v5 schema. Next version will remove the upgrade compatibility with v5.
Bug Fixes
- Fix missing descriptor save in ontology v5 editor
- Fix wrong type in
transform_data::set_move_identification_value
from array to object - Fix nullable error in `component_relation_index::get_references_to_section
- Save the
time_machine
data from previous portal correctly inportalize_data
process
Features
- [breaking] change the way to update code. RSYNC is not longer used. Now, a clean install and a backup of the old version in the backups directory (outside of httpdocs) is done.
- Add
move_to_portal
widget, used to move data from a section to other section called by a portal. - Add
move_to_table
widget, it will use to move data between matrix tables.
Miscellaneous Tasks
- Add version to test unit bootstrap
- Fix CSS issues with line height
- Transform map from
qdp
totch
files. - Add
move_locator
widget CSS - Add
move_data_between_matrix_tables
method used to move data between matrix table with a .json definition. - Add
qdp
totch
update using the move data definitions. - Add
qdp
matrix tables movement, frommatrix_list
tomatrix_hierarchy
- Add
qdp
changes for move data totch
- Add transform sets section from
qdp
totch
. Is deprecated but, right now is necessary use it to be compatible with diffusion model. Move it totch
when it will ready. - Add some comment to update process of
qdp
totch
model. - Added
Other codes
portal toqdp
to `tch transformation map. - Change the download code file name to be compatible with the 6.4.0 code file name.
v6.4.0-beta.3
[6.4.0-beta.3] - 2024-01-13
Third pre-release of the upcoming 6.4.0
This beta release includes a several fixes of some bugs in the new ontology model and add:
- New ontology tld
- Remove ontology_legacy class
- Fix: Time Machine with dataframes
- Change json editor with new json-svelte editor
- Added unit test for ontology and hierarchy
v6.4.0-beta.2
[6.4.0-beta.2] - 2024-01-07
Second pre-release of the upcoming 6.4.0
This beta release includes fix some bugs in the new ontology model and add:
- New install database with the latest ontology.
- New way to save and recovery data frame data, now main component and dataframe save its own data mixed in one Time Machine data.
- New update code in the same way that update ontology. Now code is updated with version controls.
v6.4.0-beta.1
[6.4.0-beta.1] - 2024-01-02
First pre-release of the upcoming 6.4.0
6.4.0 version of Dédalo will introduce an important change in the Dédalo ontology. Ontology engine was founded with the hierarchy engine of version 3.0. and it was not deeply changed because it's the core engine, the kernel of Dédalo, a small change in ontology has a lot of implications.
But the ontology engine is old and it needs a totally change.
This change was on the table for years but the transition from v5 to v6 was an major refactoring of javascript and how Dédalo works with the client side and to be successful we decided to keep the old, and super stable ontology engine. Rebuild the ontology engine for v5 was not feasible and it involves double effort.
In version 6.3.0 we have finalised support for the v5 ontology, therefore it is time to change the ontology engine.
And this important change needs to be tested by the community before it release. It's a big change and it has a lots of implications.
Ontology engine was totally removed and the update move the ontology editor to usual sections and hierarchy tree. The old editor is totally removed and the process to publish an update the ontology was developed from scratch.
Is important that you test this version a non production server!
Please provide feedback in the Àgora.
Pre update
If you want to update your server you will need to prepare it.
Preparing the installation to get the ontology definition, the update needs the «ontology» tld and his definition, before update the code you will need to set the ontology tld in your config.php as:
define('DEDALO_PREFIX_TIPOS', [
'dd',
'rsc',
'ontology',
'hierarchy',
'lg',
'utoponymy',
'oh',
'ich',
'nexus',
'actv'
]);
Note
Take account that this definition may be different on your server, add «ontology» but don't touch any other tld.
And you will need to update the ontology before update your server.
Installing
🧐 IMPORTANT! Please read carefully before applying this update:
Review the config definition. Some constants was added before login at first time and some are removed.
- Constants added:
define('DEDALO_INSTALL_PATH', DEDALO_ROOT_PATH . '/install'); define('DEDALO_INSTALL_URL', DEDALO_ROOT_WEB . '/install'); define('DEDALO_API_URL', DEDALO_CORE_URL . '/api/v1/json/'); define('ONTOLOGY_SERVERS', [ [ 'name' => 'Beta Dédalo Ontology server', 'url' => 'https://master.dedalo.dev/6.4/core/api/v1/json/', 'code' => 'x3aBeta_f385_bcawAc4_fg' ] ]); define('ONTOLOGY_DATA_IO_DIR', DEDALO_INSTALL_PATH . '/import/ontology'); define('ONTOLOGY_DATA_IO_URL', DEDALO_INSTALL_URL . '/import/ontology');
Important
About ONTOLOGY_SERVERS
The beta ontology server definition will be removed at the end of the beta period, do not use this configuration on a production server.
- Constants removed:
define('STRUCTURE_SERVER_CODE', 'x3a0B4Y020Eg9w'); define('STRUCTURE_SERVER_URL', 'https://master.dedalo.dev/dedalo/core/extras/str_manager/'); define('ONTOLOGY_DOWNLOAD_DIR', DEDALO_BACKUP_PATH_ONTOLOGY . '/download'); define('STRUCTURE_DOWNLOAD_JSON_FILE', DEDALO_BACKUP_PATH_ONTOLOGY);
- Optional Only if your installation will provide a local ontologies (private ontologies that are not shared outside your installations)
In the case that you want to convert your own server as ontology provided you need to add this constant in your config defining your server code.
An ontology server can provide its ontology files to other Dédalo servers.
to do it change IS_AN_ONTOLOGY_SERVER
to true
and set your own ONTOLOGY_SERVER_CODE
.
define('IS_AN_ONTOLOGY_SERVER', false); define('ONTOLOGY_SERVER_CODE', 'Here:my_valid_code_for_Ontologies');
Best
v6.3.0
[6.3.0] - 2024-12-09
🥳 🎉 People have the power!!!! (and only one can remain... ;)
This update represents a historic change: the unification of the people sections.
Important
This update will change your data, it will move People
rsc194 records to People under study
rsc197 changing the section_id of People
data.
This update follow the plan defined in agora, please read it previously carefully.
After update. Remove access to People
rsc194 for all users to keep section without new data. It will be removed in next ontology updates.
Bug Fixes
- [breaking] Fix renamed
DEDALO_DIFFUSION_TIPO
tipo error (dd_tipos
) where diffusion domain is not found - [breaking] Fix the code error in update 6.2.9 that caused a catch 22 situation. Now, a recovery test is done from
dd_core_api.start
before loading the main page and the column is added if it is not ready - [breaking] Fix component_autocomplete error where
fields_separator
are not respected in diffusion (see numisdata1292) - Fix
db_data_check::check_sequences
problem where invalid tables caused unrecoverable error - Fix menu CSS issue where arrows were displayed vertically misaligned
- Fix creation geo tag error in
component_text_area
- Fix
ck-editor
CSS issue where list styles were not displayed correctly - Fix error were publication
get_full_fragments
uses a null value to remove restricted text causing an error - Fix for ontology manager (v5) bug where descriptors were not being saved when a term was duplicated
- Fix nullable condition in
component_date
constructor - Fix preset search error when the action of saving the selected preset fails after creating a new preset
- Set unlimited search with relation sections to get the people used in text_area to assign to transcriptions.
- Create new object data when is not set previously in
get_tm_subdatum()
- Fix
tool_export
error when the same component in two different sections stops drag and drop of the second one - Fix multi byte issues in method
diffusion_sql::anonymized_name
- Fix
tool_import_marc21
error where config ISBN is mapped torsc137
instead the correctrsc147
- Fix
tool_import_marc21
bug wheredd_action
was not firing correctly - Check if the record has data to add data to new section to identify the move
- Fix wrong class name from
area_maintenance
tocounter
Features
- Add
diffusion_sql::anonymized_name
function to handle special case of anonymized names for people using name and surname in first chars format asJVPR
- Add function
diffusion_sql::map_locator_to_value
to handle direct value map situations like "true => 1, false => 0" - Add
Diffusion config properties
to documentation (samples of diffusion configurations using Publication API v1) - Add new
move_locator
widget in area maintenance. - Implementation of
move_locator
. It add the transform locator data from all tables into new locator using a JSON file map - Add
set_move_identification_value()
in transform data class. Used to add a value to moved records to identify the movement. - Add
replace_locator_in_string()
method in change data class. Used to replace string locators incomponent_text_area
into with new one. - Add
replace_locator_in_tm_data()
method in class transform data. Used to change the locator in time machine data. - Add
process_locators_in_section_data()
method into transform data class. Used to change locators in data components. - Add
changes_in_locators()
method in transform data class. Used to move one locator to other locator.
Miscellaneous Tasks
- Remove
tool_time_machine
from tools ofcomponent_relation_parent
- Add check to possible non defined children in
ts_object::get_ar_elements()
- Improve tool_diffusion class error handler for better process errors info
- Add command output to
backup::import_structure
for easy debug - Add function
get_base_binary_path
incore_functions
to get OS dependent core path - Add
deep
component_date
example to `diffusion_config_properties´ documentation - Add some comments in transform data class for changes in locators
- Add v6.3.0 update definition. It will change
People
moving records toPeople under study
. - Change
municipality
definition forfr1
on legacy portal methodget_legacy_political_map
(used by "cost humà" publication) 41192 => 41193 (commune)
Refactor
- [breaking] Refactor and improve search presets code
- Change maintenance class
set_congif_auto
toset_maintenance_mode
for security and usability - Move the transform data files into a specify directory
Change
- [breaking] Improve locator check safe tipo and section tipo to prevent importing bad locators as UCA reporting case
- Add
RecordObj_dd
capability to handleterm
column. used by methodhierarchy::create_term()
- Add
DEDALO_UPLOAD_TMP_DIR
creation directory test and curl request test todd_init_test
login sequence - Add dd_init_test to test unit
- Change ontology links to new server master.dedalo.dev and new path /v5
- Add 'slice' options to
component_autocomplete_hi::$_get_diffusion_value
custom_parents resolutions in an easy way selection - Add 'select_model' options to
component_autocomplete_hi::$_get_diffusion_value
custom_parents resolutions in an easy way selection - Change
render_tool_diffusion
publication button auto focus behavior. Now, is focus when is in view port for convenience - Update error detection in Socrata response
- Add unified section method
focus_first_input
that mimics components method with same name and allow to activate the first component in the section - Change default logger level for
SHOW_DEVELOPER
in sample config file - Add method
diffusion::get_table_tipo
to resolve the table tipo from diffusion_element_tipo for given section - Add method
diffusion::get_table_name
to resolve the table name from diffusion_element_tipo for given section - Change Socrata class method
diffusion_socrata::update_record
to take care of overwriting langs and exclude columns from ontology config properties - Add method
diffusion_sql::str_pad
for convenience - Change the ontology version information in update 6.2.9, now the ontology upgrade will be in 6.4.0
- Add
max_execution_time
control todd_utils_api::get_process_status
to prevent stop the update of process status - Add control to locator key in
replace_locator_in_tm_data
- Disable
logger_backend_activity
temporally intransform_data::changes_in_locators
(it's not necessary to log millions of changes in time machine and activity tables) - Add search previous saved typology for
People
to prevent duplicates when user apply this update more than once - Change process status update rate from 41 to 1000 to reduce the process log file in large process (
area_maintenence
=>update_data_version
)
v6.2.9
[6.2.9] - 2024-10-13
🥳 🎉 V6 ontology transition was done!
This update is a transition version to prepare your Dédalo installation for upcoming v6.3.0
Important
This release freezes the v5 ontology on the current master server. The next ontology changes will be applied ONLY on the new master.dedalo.dev
server and will ONLY include the v6 model and supported tlds.
Change required after upgrade:
- If you are installing it you don't need to change it, the new configuration files have the correct settings.
- If you are upgrading your Dédalo installation, you will need to apply this change in your config after applying this upgrade:
-
Change the ontology and code server.
Review the
./dedalo/config/config.php
and locate theSTRUCTURE_SERVER_URL
andDEDALO_SOURCE_VERSION_URL
and change it.from:
define('STRUCTURE_SERVER_URL', 'https://master.render.es/dedalo/lib/dedalo/extras/str_manager/');
define('DEDALO_SOURCE_VERSION_URL', 'https://master.render.es/dedalo/code/dedalo6_code.zip');to:
define('STRUCTURE_SERVER_URL', 'https://master.dedalo.dev/dedalo/core/extras/str_manager/');
define('DEDALO_SOURCE_VERSION_URL', 'https://master.dedalo.dev/dedalo/code/dedalo6_code.zip');Future releases will ONLY be published on the new master.dedalo.dev, therefore if you
Other implementations
- Compatibility with upcoming PHP 8.4.
- This update introduces the last remaining tool from v5, the QR tool to generate QR codes for printing labels on objects.
Bug Fixes
- [breaking] Fix bug where diffusion references are not resolved after the first level (resolve_references = false)
- [breaking] Fix non array dato issue in
component_common->update_data_value
where a non array value causes an error checking array_key_exists (old email string value case) - [breaking] Fix section->Save error where filter search was made without set
search_exact
to true, creating false match (component_filter_master
) for sectionUsers
(dd128) - Fix non defined request_config situation in
dd_core_api::start
- Fix invalid default null value set to
RecordObj_dd::get_descriptor_dato_by_tipo
- Fix non data issue in
tool_qr
where null values crash the tool - Fix
component_security_access.update_parents_radio_butons
error where parents calculation does not wait for promise resolution - Fix incorrect components init order where some common init was not exec at beginning causing properties overrides like
events_tokens
- Fix invalid call to
fn_img_quality_change
from component_imageview_default
- Fix inspector paginator CSS issue where paginator_info overlap section_id info
- Fix CSS path errors in ontology legacy
dd_list.less
- Fix ontology legacy path inline edit name error
- Remove wrong
render_token
stored var incommon.render
- Add missing destroy
events_tokens
from element (component, section, etc.) oncommon.do_delete_self()
- Set CSS style to no descriptors terms toggle node in
ts_object
is could has children but is not the children arrow.
Features
- [breaking] Add tool_qr (revamped from v5)
- Add section list fallback to avoid to define always the section list in virtual sections. If not defined, the real section
section_list
will be used
Miscellaneous Tasks
- [breaking] Change
component_pdf
default value forregenerate_component
transcription from false to true. Allows to re-create the transcription text in some circumstances - PHP 8.4 compatibility. Migrate custom function
array_find()
to native PHPv8.4 functionarray_find()
- PHP 8.4 compatibility of nullable type declaration for
component_text_area
- PHP 8.4 compatibility of nullable type declaration for
component_svg
- PHP 8.4 compatibility of nullable type declaration for
component_security_access
- PHP 8.4 compatibility of nullable type declaration for
component_section_id
- PHP 8.4 compatibility of nullable type declaration for
component_relation_related
- PHP 8.4 compatibility of nullable type declaration for
component_relation_parent
- PHP 8.4 compatibility of nullable type declaration for
component_relation_index
- PHP 8.4 compatibility of nullable type declaration for
component_relation_common
- PHP 8.4 compatibility of nullable type declaration for
area_common
- PHP 8.4 compatibility of nullable type declaration for
area_graph
- PHP 8.4 compatibility of nullable type declaration for
area_thesaurus
- PHP 8.4 compatibility of nullable type declaration for
backup
- PHP 8.4 compatibility of nullable type declaration for
dd_cache
- PHP 8.4 compatibility of nullable type declaration for
security_v5_to_v6
- PHP 8.4 compatibility of nullable type declaration for
common
- PHP 8.4 compatibility of nullable type declaration for
dd_date
- PHP 8.4 compatibility of nullable type declaration for
dd_object
- PHP 8.4 compatibility of nullable type declaration for
locator
- PHP 8.4 compatibility of nullable type declaration for
pdf
- PHP 8.4 compatibility of nullable type declaration for
component_relation_children
- PHP 8.4 compatibility of nullable type declaration for
component_radio_button
- PHP 8.4 compatibility of nullable type declaration for
component_publication
- PHP 8.4 compatibility of nullable type declaration for
component_portal
- PHP 8.4 compatibility of nullable type declaration for
component_pdf
- PHP 8.4 compatibility of nullable type declaration for
backup
- PHP 8.4 compatibility of nullable type declaration for
button
- PHP 8.4 compatibility of nullable type declaration for
common
- PHP 8.4 compatibility of nullable type declaration for
component_3d
- PHP 8.4 compatibility of nullable type declaration for
component_av
- PHP 8.4 compatibility of nullable type declaration for
component_common
- PHP 8.4 compatibility of nullable type declaration for
component_filter_records
- PHP 8.4 compatibility of nullable type declaration for
component_date
- PHP 8.4 compatibility of nullable type declaration for
component_email
- PHP 8.4 compatibility of nullable type declaration for
component_filter
- PHP 8.4 compatibility of nullable type declaration for
component_info
- PHP 8.4 compatibility of nullable type declaration for
component_json
- PHP 8.4 compatibility of nullable type declaration for
component_image
- PHP 8.4 compatibility of nullable type declaration for
component_geolocation
- PHP 8.4 compatibility of nullable type declaration for
component_input_text
- PHP 8.4 compatibility of nullable type declaration for
component_inverse
- PHP 8.4 compatibility of nullable type declaration for
component_iri
- PHP 8.4 compatibility of nullable type declaration for
component_media_common
- PHP 8.4 compatibility of nullable type declaration for
component_password
- PHP 8.4 compatibility of nullable type declaration for
component_relation_related
- PHP 8.4 compatibility of nullable type declaration for
component_number
- PHP 8.4 compatibility of nullable type declaration for
component_publication
- PHP 8.4 compatibility of nullable type declaration for
component_relation_parent
- PHP 8.4 compatibility of nullable type declaration for
component_relation_common
- PHP 8.4 compatibility of nullable type declaration for
component_ip
- PHP 8.4 compatibility of nullable type declaration for
section
- Translate scope note of
get_valor()
ofcomponent_text_area
- Remove
c-cpp
language from thecodeql
ofgithub
- Improve
component_3d
view `line' - Change unit_test CSS files load order to allow override mocha styles
- Delete duplicated property
model
fromtool_export::get_export_grid
- Add windows specific CSS styles. Add page init
set_custom_css()
to detect OS - Add paginator container CSS rules to preserve the minimum height across navigation
- Update composer PHP test
phpunit
from 11.3.2 to 11.4.0 - Improve errors notification in
component_pdf->get_text_from_pdf
andtool_pdf_extractor
- Add qr.svg image to default icons
- Add
import_files.svg
image to default icons - Add unit_test destroy instance asserts for check
events_tokens
andall_instances
list intest_others_lifecycle
- Add
count_result
check tosearch.count
to prevent iterate non valid pg resources. (Prevent matrix_ontology table issues in early Dédalo versions) - Add update data from 6.2.7 to 6.2.8 (creates the new matrix Ontology tables, already set in Ontology tables definitions)
- Add section
creating_section
unlock delay for 1500 ms to prevent accidental creation of new section records - Add debug section event subscription control
- Add tool common
render_footer
unified function and CSS - Add common tool footer to
update_cache
tool - Add common tool footer to
tool_qr
tool - Change the ontology menu path to use isolated v5 ontology editor
- Add the update information and script to move descriptors from his table to the
jer_dd
term column - Add
copy_descriptors_to_jer_dd
function to be used into the update 6.2.9 process - Update
es1
andes2
hierarchies (Spain toponymy)
Performance
- Move
instances.get_instance
found_instance
from inside promise to outside for improve performance
Refactor
- [breaking] Improve the create and duplicate section workflows by simplifying handlers. Add safe
page_globals.creating_section
control to prevent accidental multi-save - [breaking] Improve the inspector's response to user events. Simplifies code and idle callbacks
- [breaking] Unify event handlers format. Use simple handlers whenever possible.
- [breaking] Refactor common destroy method for easy read and management
- [breaking] Refactor
event_manager
subscribe()
andunsubscribe()
methods checking for duplicates - [breaking] Refactor instances calls unifying import mode (avoid use * when import ...
v6.2.8
[6.2.8] - 2024-09-26
🥳 🎉
Important
Last version compatible with v5 ontology. Next version will remove official support for tld: muvaet
, divalcdi
, herrimemoria
, mocuenca
, aup
, bene
, valleoxos
, cedis
and mupreva
. They should be maintained by his own institutions.
Last version with layout design support of v5 ontology properties. Next version will include only the v6 model.
This version introduce a new import media options to upload bulk modified images into the same section than previous original uploads.
This version improve the export data and compatibility with Excel and introduce ODS format.
Now, the delete buttons of sections, portals and thesaurus can delete his own publication data.
Added new feature for the relations in inspector, now is possible open all related records of a section.
Added drag and drop between portals as v5 did.
Bug Fixes
- [breaking] Fix
get_value_with_fallback_from_dato_full
bug where always return DEDALO_DATA_LANG instead the passed lang in some context like diffusion (e.g.component_select
case) - Fix CSS issue where
component_text_area
vertical-align of images are displayed incorrectly - Fix class
search_related
issue where limit 0 was not interpreted correctly - Fix relation list issue where the calculated values were not being cleared from the cache between section instances
- Fix syntax error in
ts_object::get_ar_elements
generating wrong type comparing result (double children icon in thesaurus) - Fix time machine notes issues where new record is created every time that user opens the note and do not fill the content (blank value). Fix service_time_machine not refresh issues too
- Fix empty value in
section->update_modified_section_data
logged_user_id on Quit. It is necessary the session value of user_id before. - Fix
ui.load_item_with_spinner
error where DocumentFragment nodes are not accepted. Now, HTMLElement and DocumentFragment are accepted as valid DOM nodes - Fix error where
dd_grid_cell_object.resolve_value
fails when get fallback_value if is not an array as expected - Fix error where widget
media_icons
try to save component value (av duration) in tm mode - Fix issue where non defined 'from_component_tipo' causes an error on
section->get_tm_subdatum
- Fix
backup::export_structure
response message missing 'dedalo_str_tables_data' message - Fix wrong include file path from
str_manager/index.php
file (manages the Ontology files request in master) - Fix Ontology
open_docu
window issues where code is not compatible with v6 - Fix invalid var
DEDALO_CORE_URL
in Ontology context - Fix relation_list deep diffusion resolution issues in v6 (see
mdcat4338
properties case) - Error to move component to the last position of the active elements list in tool_export.
- Add missing component_date
render_input_element_time_range
function in search view - Add service_time_machine wrapper_component events deactivation by CSS to prevent user interactions
- Add double quotes to the image file path. The images could have spaces and is necessary enclose the path with double quotes.
Features
- Add auto-update inspector component data view. Now, on components data change, the inspector data will be updated via event manager subscription
- Add relation list option (in Inspector) to allow open the selected section related records in a new window
- Add
sheetjs
library to manage export grid as XSLX and other formats - Add the ability to drag and drop between different components. Now the property
draggable_to
allows to move a locator from a component to other in the same section. - Improves workflow with modals, adding re-selection of the previously selected component
- Add
component_text_area
save command on user pressNumpadEnter
(enter key from numeric keyboard) for convenience - Add
get_dato_parsed()
method tocompoment_info
. Now the widgets can parse his own data to conform more computable data for export it. - Add
get_grid_value()
forcomponent_info
. Now the component_info can export the widget data using theoutput
definition of the IPO. - Add
get_grid_flat_value()
method to component_info. Now the component can export widget data. widget will export his data in breakdown formatstandard
andbreakdown
will export asbreakdown
. - Add
get_dato_parsed()
method forsum_dates
ofmdcat812
. Now the widget export coherent and computable data. - Add
match
mode into tool_import_files to match the filename with the previous uploaded filename. Used by add modified quality to previous uploaded images matching the name into image section. - Add matching image names without id, free name, to set the quality modified of previous uploaded images.
- Add
get_date_time_original()
method toffmpeg
. get the date fromffprobe
standard format. - Add to create a thumbnail image of the uploaded video file. Now the
tool_import_files
can render the image to show it previously to process it.
Miscellaneous Tasks
- [breaking] Remove output
2>&1
inexec::request_cli
. Prevents duplicity (errors are already sent to CLI process file). - [breaking] Force disabled temporally the filter_locators calculation (beta) !
- Add test_unit methods
test_get_identifier
,test_set_dato_resolved
tocomponent_common_Test
class - Add
common.get_section_elements_context
auto createself.components_list
control - Add version to tool CSS load file to force refresh cache on new version
- Normalize
tool_update_cache
CSS colors - Remove disabled temporally the filter_locators calculation (beta) !
- Change header_count position issue and normalize relation list CSS colors
- Add
lang::resolve_multiple
method to manage multiple langs simultaneously - Add spinner to section load relation list
- Delete unused method
dd_ts_api::delete
- Add
block_label
style to layout dd-modal CSS - Add
component_common_Test
test:test_get_grid_flat_value
,test_empty_data
- Unify
dd_api
JSON exit (usingexit( 0 )
insteaddie()
) - Unify
ts_object
delete button label fromdelete
todelete_resource_and_links
(same as portals) - Add list modal editor to
component_json
in list view - Improve str manager errors managing (used to manage Ontology updates from master server)
- Add new hierarchy
category
to be used as typology->category. Used into numismatic typenumisdata3
. - Add
component_json
to components life cycle test skip_models fro test '.content_data' in list mode - Add
get_dato
to widget_common. - Add
get_dato_parsed
to widget common. Now the widget could parse his data to conform a export data more consistent, used by component_info to create the grid_value. - Add
component_json->regenerate_component()
method to fix some non JSON values (like old user activity datadd1521
) - Add
session_data
as table to skip indb_data_check::check_sequences
- Add inspector paginator
section_id
info for easy navigation - Change the error situation for ImageMagick. Now the error take account if the word
Error
is in the sentence. - Return null when is not present any stream in the uploaded video file.
- Add label of the component that open the
tool_import_files
. - Change the text to use the caller component when the
tool_import_files()
is open by component instead a section - Added to get the creation date of uploaded PDF with
pdfinfo
. - Added to get the creation time of uploaded av file.
- Add style to match label of
tool_import_files
- Change the name of the match methods to be used by any other media than image. Now the match could be used by other media as audiovisual or pdf
- Change core functions
get_backtrace_sequence
name - Add
pre_built_search
to section.build - Add CSS padding-right: 1.33rem to search preset labels for easy read
- Add
backtrace_sequence
to debug log ofget_referenced_locators
for easy detect calls - Add core function
get_bactrace_sequence
for convenience
Performance
- Improve
search->generate_children_recursive_search
filter. Change from OR sentence to IN to filter an array of section_id - Defer log activity (
register_shutdown_function
) to improve API response
Refactor
- Change
component_common->get_identifier
code to improve clarity - Rewrite
component_radio_button.get_content_value
functions for easy read - Wrap diffusion class include into try catch to prevent crashes when a file is not available (Socrata case for example)
- Change
tool_update_cache
to make it easier to locate elements (preserve section groups and layout order) - Change
ts_object->get_child_data
count_data_group_by code (indexations) for clarity. Moved to new functionget_count_data_group_by
- Change
event_manager.publish
code for clarity - Change
utils.object_to_url_vars
code for better readability - Unify the output of the widget get_archive_states of
dmm1076
to define a export computable way. Now the output define every data asid
. - Improve
json_decode
error detection incomponent:json::set_dato
- Refactor
collect_all_str_files
code to make it clearer and more reusable - Atomized
set_components_data()
method to be used in other import ways. Now, is possible to set thecomponent_options
added by users intool_import_files
in different import mode. - Change the match option into the
tool_import_files
. Now the button deactivate all other file options. - Change the
set_media_file()
method to be used by any uploaded media file. Now the process is unified and is possible to use by image, PDF, video files. - Improve after-upload file management for components in tool_upload (added
upload_handler
callback call) - Improve component_portal
change_order_modal
handler to auto focus and select the input value to change element order
Change
- [breaking] Change
dd_core_api::delete
permissions calculation from `...
v6.2.7
[6.2.7] - 2024-09-05
🥳 🎉
This update unifies the flow of media process between components. Now the media use the regenerate() method when the user upload media files, instead use a specific behavior.
Adds a control to different configurations and versions of ImageMagick to manage alpha and meta channels when alternative versions that support transparency are active. Read the ../config/sample_config.php
for more details.
Introduces the new component_indexation
which allows paging data and fetching its data from a calculation instead saving related data. It allows to show related tch and tchi heritage in the thesaurus tree. And now the thesaurus can display the indexations of the children in its parent, grouping all related heritage together in the parent term.
Bug Fixes
- [breaking] Fix diffusion sub-level bug where thesaurus parents publication blocks the deep level resolutions (case images in MHT game for example).
- Fix unit test error where component_input_text check 'get_permissions' instead 'get_component_permissions'
- Fix unit test error where
gettype
is check instead isset for test_debug_log - Fix tool_update_cache components_selection name coherence errors across client and server
- Fix
diffusion_sql
error where records from global_table_maps are not deleted on delete record (search_global2
case) - Fix bug where
Ffmpeg::build_av_alternate_command
fails after first call with same settings
Documentation
- Add Image Magick configuration documentation.
- Add Request Query Object documentation, unfinished.
Features
- Add check_normalized_files method for component_images, used to check if the uploaded files has the normalized and alternative image versions
- Add regeneration options to tool cache. Normalized components
get_regenerate_options
options - Add delete_normalized_files method. Used to move all images into delete directory and keep the uploaded files.
- Add delete_tipos() method into transform data. Used to delete some components data in updates.
Miscellaneous Tasks
- Add
magick_config
constant to sample config. It defines some specific behavior control of the ImageMagick library based in the difference of the library behavior in some OS. - Update chai js lib from 4.3.3 to 4.3.8. Moved from
/lib/mocha
to/lib/chai
- Add
DEDALO_SEARCH_PRESET_SECTION_TIPO
(dd623) to dd_tipos for convenience - Add bulk process to update cache.
- Add option to set the layers defined by the components to choose witch layer need to be processed by ImageMagick. Used by
component_pdf
to create the first page image. - Update composer libs
- Remove unused Leafleft libraries
- Delete unused code of
component_3d
- Check if the default file and alternative versions files exists before regenerate the component, if doesn't exists re-create doing a build
- Add specific build for
component_pdf
. Unify with the process of component_image. - Remove unused call to
get_section_elements_context
in search.js
Refactor
- Simplify
tool_media_version.render_file_versions
code for clarity - Change
dd_dcore_api::read
activity log code for clarity. Moved logic to new methoddd_dcore_api::log_activity
- Change delete and remove_component_media_files to get the extension of the file to be deleted. Now delete process take account the file extension to delete only the file with specific extension.
- Change the way to delete image files. Now all images are moved into the delete directory and his data is preserved when only 1 file (with specific extension) is deleted.
- Change the way to process uploaded files and convert the quality of them by regenerate processes.
- Unify the regenerate way to create image archives when user upload files or update cache. Now the process always call to regenerate the images instead done specific process
- Change
component_external->load_data_from_remote
component tipo iteration names and filter - Change diffusion methods related with delete for clarity
- Unify the way to create file versions in different quality. Now all file process will use
regenerate_component()
. - Unify the way to create file versions in different quality for component_av. Now all file process will use
regenerate_component()
. - Unify the way to delete normalized files in
component_common
. Now every component define his own normalized qualities to be delete before regenerate it. - Unify the way to create file versions in different quality for
component_svg
. Now all file process will useregenerate_component()
. - Unify the way to create file versions in different quality for
component_pdf
. Now all file process will useregenerate_component()
. - Unify the way to get text from pdf. Now the upload process and the tool use the same way to get the pdf text.
- Add some debug controls to
process_ocr
method incomponent_pdf
- Unify the way to regenerate
component_pdf
with all media components.
Change
- Add control of ImageMagick library for transparent images.
- Unify
reload_js_files
action in update_code (area_maintenance) - Change component_publication appearance in mobile. Restored box-shadow
- Remove
ckcachebust
from unit_test/index.html (unnecessary for development) - Add default value '0750' to core function
create_directory
- Change default tool_diffusion
skip_publication_state_check
default value form 0 to 1 - Delete all normalized files previously to regenerate process. Now is force to delete all generated - normalized images to recreate all versions and qualities.
- Add component_av posterframe outline to improve visualization when background is white
- Set thesaurus search typology_selector width as 10rem to prevent width changes when user changes the selection
- Unify the way to get regenerate options of the components. Used to show it into the tools as update_cache.
- Change default state for tool_cache regenerate options from 'opened' to 'closed'
- Set
async
property to true to create media version, used by component_av to generate it in background - Add control to show the components of section info into the selection list of components to search of export.
- Disallow the process of uploaded documents different of PDF files. this kind of documents can not be processed by OCR or get his text.
- Check if the file could be processed as PDF or is other kind of text file «doc», «pages».
- Add get_section_elements_context parameter
caller_tipo
to allow skip_permissions in area thesaurus context - Remove old thesaurus terms that are not used;
section_list_thesaurus
andsearch
. Now when a new hierarchy is build do not copy those nodes. - Remove
tchi9
from sql_thesaurus clean in the v6.2.7 update