r30006 2026-11-03 jhemsley CHG: Mobile sub menu label sticky scroll [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29993 2026-10-30 jhemsley CHG: UX improvement for mobile sub menu label [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/js/header.js
r29990 2026-10-29 jhemsley CHG: Bring up to date with trunk [q13771]

M /branches/20260928_jhemsley_q13771
A /branches/20260928_jhemsley_q13771/dbstruct/index_user_api_session_code.txt
A /branches/20260928_jhemsley_q13771/dbstruct/table_user_api_session_code.txt
A /branches/20260928_jhemsley_q13771/documentation/user_api_session_code.md
M /branches/20260928_jhemsley_q13771/include/api_functions.php
M /branches/20260928_jhemsley_q13771/include/config.default.php
M /branches/20260928_jhemsley_q13771/include/database_functions.php
A /branches/20260928_jhemsley_q13771/include/user_api_session_functions.php
M /branches/20260928_jhemsley_q13771/languages/ar.php
M /branches/20260928_jhemsley_q13771/languages/be.php
M /branches/20260928_jhemsley_q13771/languages/bg.php
M /branches/20260928_jhemsley_q13771/languages/bn.php
M /branches/20260928_jhemsley_q13771/languages/ca.php
M /branches/20260928_jhemsley_q13771/languages/cs.php
M /branches/20260928_jhemsley_q13771/languages/cy.php
M /branches/20260928_jhemsley_q13771/languages/da.php
M /branches/20260928_jhemsley_q13771/languages/de.php
M /branches/20260928_jhemsley_q13771/languages/el.php
M /branches/20260928_jhemsley_q13771/languages/en.php
M /branches/20260928_jhemsley_q13771/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/languages/es.php
M /branches/20260928_jhemsley_q13771/languages/fa.php
M /branches/20260928_jhemsley_q13771/languages/fi.php
M /branches/20260928_jhemsley_q13771/languages/fr.php
M /branches/20260928_jhemsley_q13771/languages/hi.php
M /branches/20260928_jhemsley_q13771/languages/hr.php
M /branches/20260928_jhemsley_q13771/languages/hu.php
M /branches/20260928_jhemsley_q13771/languages/id.php
M /branches/20260928_jhemsley_q13771/languages/it.php
M /branches/20260928_jhemsley_q13771/languages/jp.php
M /branches/20260928_jhemsley_q13771/languages/ko.php
M /branches/20260928_jhemsley_q13771/languages/ku.php
M /branches/20260928_jhemsley_q13771/languages/ms.php
M /branches/20260928_jhemsley_q13771/languages/nl.php
M /branches/20260928_jhemsley_q13771/languages/no.php
M /branches/20260928_jhemsley_q13771/languages/pa.php
M /branches/20260928_jhemsley_q13771/languages/pl.php
M /branches/20260928_jhemsley_q13771/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/languages/pt.php
M /branches/20260928_jhemsley_q13771/languages/ro.php
M /branches/20260928_jhemsley_q13771/languages/ru.php
M /branches/20260928_jhemsley_q13771/languages/sk.php
M /branches/20260928_jhemsley_q13771/languages/sv.php
M /branches/20260928_jhemsley_q13771/languages/sw.php
M /branches/20260928_jhemsley_q13771/languages/th.php
M /branches/20260928_jhemsley_q13771/languages/tl.php
M /branches/20260928_jhemsley_q13771/languages/tr.php
M /branches/20260928_jhemsley_q13771/languages/uk.php
M /branches/20260928_jhemsley_q13771/languages/ur.php
M /branches/20260928_jhemsley_q13771/languages/vi.php
M /branches/20260928_jhemsley_q13771/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/pages/user/user_api_session.php
A /branches/20260928_jhemsley_q13771/pages/user/user_api_session_exchange.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ar.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/be.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/bg.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/bn.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ca.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/cs.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/cy.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/da.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/de.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/el.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/es.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/fa.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/fi.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/fr.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/hi.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/hr.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/hu.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/id.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/it.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/jp.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ko.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ku.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ms.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/nl.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/no.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/pa.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/pl.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/pt.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ro.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ru.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/sk.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/sv.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/sw.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/th.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/tl.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/tr.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/uk.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/ur.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/vi.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ar.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/be.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/bg.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/bn.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ca.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/cs.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/cy.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/da.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/de.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/el.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/es.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/fa.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/fi.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/fr.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/hi.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/hr.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/hu.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/id.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/it.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/jp.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ko.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ku.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ms.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/nl.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/no.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/pa.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/pl.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/pt.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ro.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ru.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/sk.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/sv.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/sw.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/th.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/tl.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/tr.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/uk.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/ur.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/vi.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/tests/test_list/001790_user_api_session.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001791_user_api_session_code.php
D /branches/20260928_jhemsley_q13771/tests/test_list/002010_upload_entrypoint_file_association.php
D /branches/20260928_jhemsley_q13771/tests/test_list/002020_http_authentication_mutations_download.php
r29989 2026-10-29 jhemsley CHG: Single source of truth for all navigation count pills [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/include/header.php
M /branches/20260928_jhemsley_q13771/pages/admin/admin_home.php
M /branches/20260928_jhemsley_q13771/pages/ajax/message.php
M /branches/20260928_jhemsley_q13771/pages/team/team_home.php
M /branches/20260928_jhemsley_q13771/pages/user/user_home.php
r29979 2026-10-28 jhemsley CHG: Bring up to date with trunk [q13771]

M /branches/20260928_jhemsley_q13771
A /branches/20260928_jhemsley_q13771/AGENTS.md
M /branches/20260928_jhemsley_q13771/css
M /branches/20260928_jhemsley_q13771/css/global.css
D /branches/20260928_jhemsley_q13771/dbstruct/help_user_userlist.txt
D /branches/20260928_jhemsley_q13771/dbstruct/table_user_userlist.txt
M /branches/20260928_jhemsley_q13771/include/boot.php
M /branches/20260928_jhemsley_q13771/include/config.default.php
M /branches/20260928_jhemsley_q13771/include/database_functions.php
M /branches/20260928_jhemsley_q13771/include/definitions.php
M /branches/20260928_jhemsley_q13771/include/general_functions.php
M /branches/20260928_jhemsley_q13771/include/job_handlers/csv_metadata_export.php
M /branches/20260928_jhemsley_q13771/include/render_functions.php
M /branches/20260928_jhemsley_q13771/include/resource_functions.php
M /branches/20260928_jhemsley_q13771/include/search_functions.php
M /branches/20260928_jhemsley_q13771/include/user_functions.php
M /branches/20260928_jhemsley_q13771/include/user_select.php
M /branches/20260928_jhemsley_q13771/include/version.php
M /branches/20260928_jhemsley_q13771/languages/ar.php
M /branches/20260928_jhemsley_q13771/languages/be.php
M /branches/20260928_jhemsley_q13771/languages/bg.php
M /branches/20260928_jhemsley_q13771/languages/bn.php
M /branches/20260928_jhemsley_q13771/languages/ca.php
M /branches/20260928_jhemsley_q13771/languages/cs.php
M /branches/20260928_jhemsley_q13771/languages/cy.php
M /branches/20260928_jhemsley_q13771/languages/da.php
M /branches/20260928_jhemsley_q13771/languages/de.php
M /branches/20260928_jhemsley_q13771/languages/el.php
M /branches/20260928_jhemsley_q13771/languages/en.php
M /branches/20260928_jhemsley_q13771/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/languages/es.php
M /branches/20260928_jhemsley_q13771/languages/fa.php
M /branches/20260928_jhemsley_q13771/languages/fi.php
M /branches/20260928_jhemsley_q13771/languages/fr.php
M /branches/20260928_jhemsley_q13771/languages/hi.php
M /branches/20260928_jhemsley_q13771/languages/hr.php
M /branches/20260928_jhemsley_q13771/languages/hu.php
M /branches/20260928_jhemsley_q13771/languages/id.php
M /branches/20260928_jhemsley_q13771/languages/it.php
M /branches/20260928_jhemsley_q13771/languages/jp.php
M /branches/20260928_jhemsley_q13771/languages/ko.php
M /branches/20260928_jhemsley_q13771/languages/ku.php
M /branches/20260928_jhemsley_q13771/languages/ms.php
M /branches/20260928_jhemsley_q13771/languages/nl.php
M /branches/20260928_jhemsley_q13771/languages/no.php
M /branches/20260928_jhemsley_q13771/languages/pa.php
M /branches/20260928_jhemsley_q13771/languages/pl.php
M /branches/20260928_jhemsley_q13771/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/languages/pt.php
M /branches/20260928_jhemsley_q13771/languages/ro.php
M /branches/20260928_jhemsley_q13771/languages/ru.php
M /branches/20260928_jhemsley_q13771/languages/sk.php
M /branches/20260928_jhemsley_q13771/languages/sv.php
M /branches/20260928_jhemsley_q13771/languages/sw.php
M /branches/20260928_jhemsley_q13771/languages/th.php
M /branches/20260928_jhemsley_q13771/languages/tl.php
M /branches/20260928_jhemsley_q13771/languages/tr.php
M /branches/20260928_jhemsley_q13771/languages/uk.php
M /branches/20260928_jhemsley_q13771/languages/ur.php
M /branches/20260928_jhemsley_q13771/languages/vi.php
M /branches/20260928_jhemsley_q13771/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/pages/ajax/annotations.php
D /branches/20260928_jhemsley_q13771/pages/ajax/autocomplete_userlist.php
M /branches/20260928_jhemsley_q13771/pages/ajax/collections.php
M /branches/20260928_jhemsley_q13771/pages/ajax/comments_handler.php
A /branches/20260928_jhemsley_q13771/pages/ajax/featured_collection_image.php
M /branches/20260928_jhemsley_q13771/pages/ajax/message.php
M /branches/20260928_jhemsley_q13771/pages/ajax/relate_resources.php
D /branches/20260928_jhemsley_q13771/pages/ajax/remove_custom_access.php
D /branches/20260928_jhemsley_q13771/pages/ajax/search.php
D /branches/20260928_jhemsley_q13771/pages/ajax/smart_fc_image.php
M /branches/20260928_jhemsley_q13771/pages/ajax/unrelate_resources.php
M /branches/20260928_jhemsley_q13771/pages/ajax/user_action.php
M /branches/20260928_jhemsley_q13771/pages/ajax/user_rating_save.php
D /branches/20260928_jhemsley_q13771/pages/ajax/userlist_save.php
D /branches/20260928_jhemsley_q13771/pages/ajax/userlist_select_update.php
D /branches/20260928_jhemsley_q13771/pages/ajax/username_list_update.php
M /branches/20260928_jhemsley_q13771/pages/collection_download.php
M /branches/20260928_jhemsley_q13771/pages/collections.php
M /branches/20260928_jhemsley_q13771/pages/collections_featured.php
M /branches/20260928_jhemsley_q13771/pages/csv_export_results_metadata.php
M /branches/20260928_jhemsley_q13771/pages/edit.php
M /branches/20260928_jhemsley_q13771/pages/team/team_plugins.php
M /branches/20260928_jhemsley_q13771/pages/user/user_api_session.php
M /branches/20260928_jhemsley_q13771/pages/user/user_messages.php
M /branches/20260928_jhemsley_q13771/pages/user/user_messages_quick.php
M /branches/20260928_jhemsley_q13771/pages/view.php
M /branches/20260928_jhemsley_q13771/plugins/grant_edit/hooks/edit.php
M /branches/20260928_jhemsley_q13771/tests/test.php
M /branches/20260928_jhemsley_q13771/tests/test_list/000020_syntax.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000391_allow_unicode_characters.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000392_safe_file_name.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000400_allow_unicode_characters.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000400_escape_command_args.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000410_escape.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000410_safe_file_name.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000411_encode_js_value.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000420_escape_command_args.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000420_html_break_long_words.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000430_do_search_nodes_fixed.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000430_escape.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000440_do_search_basicdate.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000440_encode_js_value.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000450_do_search_field_specific_node.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000450_html_break_long_words.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000460_do_search_html.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000460_do_search_nodes_fixed.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000470_do_search_basicdate.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000470_do_search_field_specific_text.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000480_do_search_field_specific_node.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000480_do_search_resource_table_joins.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000490_do_search_html.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000490_do_search_quotes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000500_do_search_access.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000500_do_search_field_specific_text.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000510_do_search_contributor.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000510_do_search_resource_table_joins.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000520_do_search_quotes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000520_do_wildcard_search.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000530_do_search_access.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000530_do_search_stemming.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000540_do_search_contributor.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000540_do_search_related_resources.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000550_do_search_related.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000550_do_wildcard_search.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000560_do_search_nodes_non-fixed.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000560_do_search_stemming.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000570_do_search_all_workflow_states.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000570_do_search_related_resources.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000580_do_search_nodownloads.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000580_do_search_related.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000590_do_search_nodes_non-fixed.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000590_do_search_report.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000600_do_search_all_workflow_states.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000600_do_search_full_text.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000610_do_search_nodownloads.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000610_do_search_resource_type_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000620_do_search_diacritics.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000620_do_search_report.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000630_do_search_full_text.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000630_do_search_public_collection_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000640_do_search_daterange.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000640_do_search_resource_type_permissions.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000650_do_search_diacritics.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000650_do_search_wildcard_always.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000660_do_search_public_collection_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000660_do_search_special_search.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000670_do_search_daterange.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000670_do_search_dot_notation_order_by.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000680_do_search_wildcard_always.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000680_strip_tags_and_attributes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000690_do_search_special_search.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000690_validate_remote_code.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000700_do_search_dot_notation_order_by.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000700_get_system_status.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000710_html_find_and_replace.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000710_strip_tags_and_attributes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000720_resource_defaults.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000720_validate_remote_code.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000730_get_system_status.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000730_set_nodes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000740_get_node_id.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000740_html_find_and_replace.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000750_compute_node_branch_path.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000750_resource_defaults.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000760_set_nodes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000760_toggle_active_state_for_nodes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000770_get_node_id.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000770_node_revert.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000780_compute_node_branch_path.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000780_update_related_resource.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000790_toggle_active_state_for_nodes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000790_unrelate_all_collection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000800_node_revert.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000800_related_resource_pull_images.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000810_get_users.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000810_update_related_resource.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000820_resolve_user_emails.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000820_unrelate_all_collection.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000830_get_users_by_permission.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000830_related_resource_pull_images.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000840_check_access_key.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000840_get_users.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000850_check_access_key_collection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000850_resolve_user_emails.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000860_can_share_upload_link.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000860_get_users_by_permission.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000870_check_access_key.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000870_create_upload_link.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000880_can_edit_upload_share.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000880_check_access_key_collection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000890_can_share_upload_link.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000890_test_access_key.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000900_create_collection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000900_create_upload_link.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000910_can_edit_upload_share.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000910_get_collection_resources_with_data.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000920_check_collection_operations.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000920_test_access_key.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000930_create_collection.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000930_save_collection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000940_get_collection_resources_with_data.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000940_order_featured_collections.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000950_can_reorder_featured_collections.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000950_check_collection_operations.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000960_reorder_collections.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000960_save_collection.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000970_get_user_collections.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000970_order_featured_collections.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000980_can_reorder_featured_collections.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000980_get_featured_collection_resources.php
A /branches/20260928_jhemsley_q13771/tests/test_list/000990_reorder_collections.php
D /branches/20260928_jhemsley_q13771/tests/test_list/000990_resource_type_fields_resource_type.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001000_get_user_collections.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001000_rs_encryption.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001001_eval_check_signed.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001002_resign_all_code.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001010_get_featured_collection_resources.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001010_suggested_keywords.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001020_resource_type_fields_resource_type.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001020_suggested_dynamic_nodes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001030_rs_encryption.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001030_sql_limit.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001040_eval_check_signed.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001040_search_filters_updated.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001050_edit_filters_updated.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001050_resign_all_code.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001060_derestrict_filters_updated.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001060_suggested_keywords.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001070_get_collections_resource_count.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001070_suggested_dynamic_nodes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001080_read_only_metadata_field.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001080_sql_limit.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001090_check_field_display_condition.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001090_search_filters_updated.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001100_core_field_block_deletion.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001100_edit_filters_updated.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001110_derestrict_filters_updated.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001110_get_resource_field_data_batch.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001120_generate_csv_export.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001120_get_collections_resource_count.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001130_fits_metadata_functions.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001130_read_only_metadata_field.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001140_advanced_searchable_fields.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001140_check_field_display_condition.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001150_check_watermark.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001150_core_field_block_deletion.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001160_get_resource_field_data_batch.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001160_search_special_propertiesorientation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001170_generate_csv_export.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001170_search_public_collections.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001180_fits_metadata_functions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001180_search_get_previews.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001190_advanced_searchable_fields.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001190_request_custom_fields.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001200_can_use_request_owner_field.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001200_check_watermark.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001210_get_notification_users_by_owner_field.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001210_search_special_propertiesorientation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001220_external_requests_visible.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001220_search_public_collections.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001230_autocomplete_blank_fields.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001230_search_get_previews.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001240_request_custom_fields.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001240_staticsync.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001250_can_use_request_owner_field.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001250_check_date_format.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001260_get_notification_users_by_owner_field.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001260_missing_required_fields.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001270_exif_mappings.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001270_external_requests_visible.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001280_autocomplete_blank_fields.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001280_send_user_notification.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001290_action_notifications.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001290_staticsync.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001300_check_date_format.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001300_get_activity_log.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001310_general_offset_user_local_timezone.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001310_missing_required_fields.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001320_exif_mappings.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001320_general_bypass_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001330_general_getval.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001330_send_user_notification.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001340_action_notifications.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001340_url_starts_with.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001350_get_activity_log.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001350_is_safe_url.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001360_general_offset_user_local_timezone.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001360_generateURL.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001370_general_bypass_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001370_sanitise_url.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001380_api_iiif_tiles.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001380_general_getval.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001390_api_iiif_functions.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001390_url_starts_with.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001400_is_safe_url.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001400_offline_job.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001410_generateURL.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001410_login_functions__password.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001420_login_functions_security_logs.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001420_sanitise_url.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001430_api_iiif_tiles.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001430_createAnnotation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001440_api_iiif_functions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001440_updateAnnotation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001450_addAnnotationNodes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001450_offline_job.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001460_annotationEditable.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001460_login_functions__password.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001470_delete_tabs.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001470_login_functions_security_logs.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001480_createAnnotation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001480_create_tab.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001490_save_tab.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001490_updateAnnotation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001500_addAnnotationNodes.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001500_get_config_option.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001510_annotationEditable.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001510_config_override_by_eval.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001520_delete_tabs.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001520_usergroup_site_text.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001530_create_tab.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001530_i18n_get_translated.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001540_save_tab.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001540_validate_resource_files.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001550_get_config_option.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001550_usergroup-download_limit.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001560_config_override_by_eval.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001560_report_process_period.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001570_parse_int_ranges.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001570_usergroup_site_text.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001580_build_range_where_condition.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001580_i18n_get_translated.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001590_api_logging.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001590_validate_resource_files.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001600_create_resource_validation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001600_usergroup-download_limit.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001610_report_process_period.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001610_update_field_search_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001620_parse_int_ranges.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001620_update_field_rejected_changes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001630_build_range_where_condition.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001630_collection_membership_permissions.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001640_api_logging.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001640_delete_resource_file_lifecycle.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001650_copy_resource_isolation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001650_create_resource_validation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001660_collection_share_membership.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001660_update_field_search_lifecycle.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001670_collection_copy_delete.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001670_update_field_rejected_changes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001680_collection_membership_permissions.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001680_delete_alternative_file_isolation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001690_delete_resource_file_lifecycle.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001690_process_file_upload_file_effects.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001700_copy_resource_isolation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001700_custom_access_expiry_and_revocation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001710_collection_share_membership.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001710_resource_download_access_levels.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001720_collection_copy_delete.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001720_save_alternative_file.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001730_delete_alternative_file_isolation.php
D /branches/20260928_jhemsley_q13771/tests/test_list/001740_api_bindings.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001740_process_file_upload_file_effects.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001750_custom_access_expiry_and_revocation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001760_resource_download_access_levels.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001770_save_alternative_file.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001780_api_bindings.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001790_user_api_session.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001800_csrf_tokens.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001810_database_transaction_contents.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001820_download_key_rejection.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001830_share_password_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001840_saved_search_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001850_message_inbox_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001860_job_queue_management.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001870_rating_updates.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001880_password_change_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001890_login_identity_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001900_user_administration_boundaries.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001910_filter_copy_delete_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001920_node_delete_reorder_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001930_dashboard_audience_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001940_periodic_report_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001950_plugin_configuration_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001960_comment_annotation_deletion.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001970_metadata_strip_roundtrip.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001980_resource_type_transition.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001990_managed_request_approval_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/002000_collection_archive_contents.php
A /branches/20260928_jhemsley_q13771/tests/test_list/002010_upload_entrypoint_file_association.php
A /branches/20260928_jhemsley_q13771/tests/test_list/002020_http_authentication_mutations_download.php
A /branches/20260928_jhemsley_q13771/tests/test_list/002030_process_edit_form_validation.php
r29930 2026-10-21 jhemsley CHG: Focus vs. focus-visible and colour style tweaks for close button [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29926 2026-10-20 jhemsley CHG: Language string updates for system and admin pages [q13771]

M /branches/20260928_jhemsley_q13771/languages/en.php
r29923 2026-10-20 jhemsley CHG: Information and links rows responsive styles revisited [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29922 2026-10-20 jhemsley CHG: Remove OpenAI plugin testing variables [q13771]

M /branches/20260928_jhemsley_q13771/plugins/openai_gpt/hooks/all.php
r29921 2026-10-20 jhemsley CHG: Mobile tweaks and preparation for service_check empty values [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29918 2026-10-20 jhemsley CHG: Bring up to date with trunk [q13771]

M /branches/20260928_jhemsley_q13771
M /branches/20260928_jhemsley_q13771/include/search_functions.php
M /branches/20260928_jhemsley_q13771/tests/test_list/000440_do_search_basicdate.php
r29917 2026-10-20 jhemsley CHG: Separate links for drill down / actual page on mobile [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/js/header.js
r29916 2026-10-19 jhemsley CHG: Style optimisations / refactoring and accessibility improvements [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/include/header.php
M /branches/20260928_jhemsley_q13771/include/searchbar.php
M /branches/20260928_jhemsley_q13771/js/header.js
r29912 2026-10-19 jhemsley CHG: Bring up to date with trunk [q13771]

M /branches/20260928_jhemsley_q13771
M /branches/20260928_jhemsley_q13771/dbstruct/help_collection_savedsearch.txt
M /branches/20260928_jhemsley_q13771/include/api_bindings.php
M /branches/20260928_jhemsley_q13771/include/collections_functions.php
M /branches/20260928_jhemsley_q13771/include/dash_tile_generation.php
M /branches/20260928_jhemsley_q13771/include/general_functions.php
M /branches/20260928_jhemsley_q13771/include/header.php
M /branches/20260928_jhemsley_q13771/include/job_handlers/csv_metadata_export.php
M /branches/20260928_jhemsley_q13771/include/render_functions.php
M /branches/20260928_jhemsley_q13771/include/resource_functions.php
M /branches/20260928_jhemsley_q13771/include/search_functions.php
M /branches/20260928_jhemsley_q13771/include/searchbar.php
M /branches/20260928_jhemsley_q13771/include/user_functions.php
M /branches/20260928_jhemsley_q13771/include/version.php
M /branches/20260928_jhemsley_q13771/languages/ar.php
M /branches/20260928_jhemsley_q13771/languages/be.php
M /branches/20260928_jhemsley_q13771/languages/bg.php
M /branches/20260928_jhemsley_q13771/languages/bn.php
M /branches/20260928_jhemsley_q13771/languages/ca.php
M /branches/20260928_jhemsley_q13771/languages/cs.php
M /branches/20260928_jhemsley_q13771/languages/cy.php
M /branches/20260928_jhemsley_q13771/languages/da.php
M /branches/20260928_jhemsley_q13771/languages/de.php
M /branches/20260928_jhemsley_q13771/languages/el.php
M /branches/20260928_jhemsley_q13771/languages/en.php
M /branches/20260928_jhemsley_q13771/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/languages/es.php
M /branches/20260928_jhemsley_q13771/languages/fa.php
M /branches/20260928_jhemsley_q13771/languages/fi.php
M /branches/20260928_jhemsley_q13771/languages/fr.php
M /branches/20260928_jhemsley_q13771/languages/hi.php
M /branches/20260928_jhemsley_q13771/languages/hr.php
M /branches/20260928_jhemsley_q13771/languages/hu.php
M /branches/20260928_jhemsley_q13771/languages/id.php
M /branches/20260928_jhemsley_q13771/languages/it.php
M /branches/20260928_jhemsley_q13771/languages/jp.php
M /branches/20260928_jhemsley_q13771/languages/ko.php
M /branches/20260928_jhemsley_q13771/languages/ku.php
M /branches/20260928_jhemsley_q13771/languages/nl.php
M /branches/20260928_jhemsley_q13771/languages/no.php
M /branches/20260928_jhemsley_q13771/languages/pa.php
M /branches/20260928_jhemsley_q13771/languages/pl.php
M /branches/20260928_jhemsley_q13771/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/languages/pt.php
M /branches/20260928_jhemsley_q13771/languages/ro.php
M /branches/20260928_jhemsley_q13771/languages/ru.php
M /branches/20260928_jhemsley_q13771/languages/sk.php
M /branches/20260928_jhemsley_q13771/languages/sv.php
M /branches/20260928_jhemsley_q13771/languages/sw.php
M /branches/20260928_jhemsley_q13771/languages/th.php
M /branches/20260928_jhemsley_q13771/languages/tl.php
M /branches/20260928_jhemsley_q13771/languages/tr.php
M /branches/20260928_jhemsley_q13771/languages/uk.php
M /branches/20260928_jhemsley_q13771/languages/ur.php
M /branches/20260928_jhemsley_q13771/languages/vi.php
M /branches/20260928_jhemsley_q13771/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/pages/collection_set_category.php
M /branches/20260928_jhemsley_q13771/pages/collections.php
M /branches/20260928_jhemsley_q13771/pages/collections_featured.php
M /branches/20260928_jhemsley_q13771/pages/csv_export_results_metadata.php
M /branches/20260928_jhemsley_q13771/pages/dash_tile.php
M /branches/20260928_jhemsley_q13771/pages/download_progress.php
M /branches/20260928_jhemsley_q13771/pages/edit_fields/5.php
M /branches/20260928_jhemsley_q13771/pages/search.php
A /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/include
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/js/edit.js
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/languages/en.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/pages/save_alternative.php
M /branches/20260928_jhemsley_q13771/plugins/openai_image_edit/pages/save_new.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/hooks/view.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/languages/en.php
M /branches/20260928_jhemsley_q13771/plugins/tesseract/config/config.php
M /branches/20260928_jhemsley_q13771/plugins/tesseract/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/tesseract/include/tesseract_functions.php
M /branches/20260928_jhemsley_q13771/tests/test_list/001590_api_logging.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001600_create_resource_validation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001610_update_field_search_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001620_update_field_rejected_changes.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001630_collection_membership_permissions.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001640_delete_resource_file_lifecycle.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001650_copy_resource_isolation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001660_collection_share_membership.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001670_collection_copy_delete.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001680_delete_alternative_file_isolation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001690_process_file_upload_file_effects.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001700_custom_access_expiry_and_revocation.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001710_resource_download_access_levels.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001720_save_alternative_file.php
A /branches/20260928_jhemsley_q13771/tests/test_list/001740_api_bindings.php
r29911 2026-10-19 jhemsley CHG: Remove tilenav config option and associated functionality [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/config.default.php
M /branches/20260928_jhemsley_q13771/include/header.php
M /branches/20260928_jhemsley_q13771/js/global.js
M /branches/20260928_jhemsley_q13771/languages/ar.php
M /branches/20260928_jhemsley_q13771/languages/be.php
M /branches/20260928_jhemsley_q13771/languages/bg.php
M /branches/20260928_jhemsley_q13771/languages/bn.php
M /branches/20260928_jhemsley_q13771/languages/ca.php
M /branches/20260928_jhemsley_q13771/languages/cs.php
M /branches/20260928_jhemsley_q13771/languages/cy.php
M /branches/20260928_jhemsley_q13771/languages/da.php
M /branches/20260928_jhemsley_q13771/languages/de.php
M /branches/20260928_jhemsley_q13771/languages/el.php
M /branches/20260928_jhemsley_q13771/languages/en.php
M /branches/20260928_jhemsley_q13771/languages/es-AR.php
M /branches/20260928_jhemsley_q13771/languages/es.php
M /branches/20260928_jhemsley_q13771/languages/fa.php
M /branches/20260928_jhemsley_q13771/languages/fi.php
M /branches/20260928_jhemsley_q13771/languages/fr.php
M /branches/20260928_jhemsley_q13771/languages/hi.php
M /branches/20260928_jhemsley_q13771/languages/hr.php
M /branches/20260928_jhemsley_q13771/languages/hu.php
M /branches/20260928_jhemsley_q13771/languages/id.php
M /branches/20260928_jhemsley_q13771/languages/it.php
M /branches/20260928_jhemsley_q13771/languages/jp.php
M /branches/20260928_jhemsley_q13771/languages/ko.php
M /branches/20260928_jhemsley_q13771/languages/ku.php
M /branches/20260928_jhemsley_q13771/languages/ms.php
M /branches/20260928_jhemsley_q13771/languages/nl.php
M /branches/20260928_jhemsley_q13771/languages/no.php
M /branches/20260928_jhemsley_q13771/languages/pa.php
M /branches/20260928_jhemsley_q13771/languages/pl.php
M /branches/20260928_jhemsley_q13771/languages/pt-BR.php
M /branches/20260928_jhemsley_q13771/languages/pt.php
M /branches/20260928_jhemsley_q13771/languages/ro.php
M /branches/20260928_jhemsley_q13771/languages/ru.php
M /branches/20260928_jhemsley_q13771/languages/sk.php
M /branches/20260928_jhemsley_q13771/languages/sv.php
M /branches/20260928_jhemsley_q13771/languages/sw.php
M /branches/20260928_jhemsley_q13771/languages/th.php
M /branches/20260928_jhemsley_q13771/languages/tl.php
M /branches/20260928_jhemsley_q13771/languages/tr.php
M /branches/20260928_jhemsley_q13771/languages/uk.php
M /branches/20260928_jhemsley_q13771/languages/ur.php
M /branches/20260928_jhemsley_q13771/languages/vi.php
M /branches/20260928_jhemsley_q13771/languages/zh-CN.php
M /branches/20260928_jhemsley_q13771/languages/zh-TW.php
M /branches/20260928_jhemsley_q13771/pages/admin/admin_group_config_edit.php
M /branches/20260928_jhemsley_q13771/pages/admin/admin_system_config.php
M /branches/20260928_jhemsley_q13771/pages/user/user_home.php
M /branches/20260928_jhemsley_q13771/pages/user/user_preferences.php
r29910 2026-10-19 jhemsley CHG: Further menu styles fine tune [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29898 2026-10-16 jhemsley CHG: Mobile menu styles colour tweak [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29897 2026-10-16 jhemsley CHG: Mobile menu styles fine tune [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
r29893 2026-10-14 jhemsley CHG: Mobile menu fundamentals [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/js/header.js
M /branches/20260928_jhemsley_q13771/js/menu_overlay.js
r29850 2026-10-07 jhemsley CHG: Redesign team_home & admin_home pages [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/pages/admin/admin_home.php
M /branches/20260928_jhemsley_q13771/pages/team/team_home.php
M /branches/20260928_jhemsley_q13771/plugins/consentmanager/hooks/team_home.php
M /branches/20260928_jhemsley_q13771/plugins/licensemanager/hooks/team_home.php
M /branches/20260928_jhemsley_q13771/plugins/news/hooks/team_home.php
M /branches/20260928_jhemsley_q13771/plugins/offline_archive/hooks/team_home.php
D /branches/20260928_jhemsley_q13771/plugins/openai_gpt/hooks/team_home.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/hooks/admin_home.php
M /branches/20260928_jhemsley_q13771/plugins/system_reset/hooks/admin_home.php
D /branches/20260928_jhemsley_q13771/plugins/tms_link/hooks/team_home.php
r29842 2026-10-06 jhemsley CHG: System configuration page section changes and section link behaviour [q13771]

M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/languages/en.php
M /branches/20260928_jhemsley_q13771/pages/admin/admin_system_config.php
r29841 2026-10-06 jhemsley CHG: Admin and System mega menu layout and information rows / associated hooks and language updates [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/plugins/consentmanager/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/licensemanager/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/news/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/offline_archive/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/openai_gpt/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/openai_gpt/languages/en.php
M /branches/20260928_jhemsley_q13771/plugins/rse_workflow/hooks/all.php
A /branches/20260928_jhemsley_q13771/plugins/system_reset/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/tms_link/hooks/all.php
M /branches/20260928_jhemsley_q13771/plugins/tms_link/languages/en.php
r29820 2026-09-30 jhemsley CHG: Admin and System mega menu link style fine tune [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
r29815 2026-09-29 jhemsley New: Admin and System mega menu link population and style basics [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
M /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
r29811 2026-09-28 jhemsley New: Admin and System mega menu skeleton [q13771]

M /branches/20260928_jhemsley_q13771/css/global.css
A /branches/20260928_jhemsley_q13771/include/admin_megamenu.php
M /branches/20260928_jhemsley_q13771/include/header.php
M /branches/20260928_jhemsley_q13771/include/searchbar.php
M /branches/20260928_jhemsley_q13771/js/header.js
r29807 2026-09-28 jhemsley NEW: Creating branch [q13771]

A /branches/20260928_jhemsley_q13771