From 2a8b427f14dc4fa92c1f6631405b492d100a5e66 Mon Sep 17 00:00:00 2001 From: Shelane French Date: Tue, 3 Oct 2023 08:16:55 -0700 Subject: [PATCH] Backdrop 1.26.0 --- docroot/core/includes/anonymous.inc | 3 +- docroot/core/includes/bootstrap.inc | 2 +- docroot/core/includes/common.inc | 13 - docroot/core/includes/config.inc | 48 +++- docroot/core/includes/database/database.inc | 6 +- docroot/core/includes/database/query.inc | 7 + docroot/core/includes/date.class.inc | 18 ++ docroot/core/includes/errors.inc | 4 +- .../includes/filetransfer/filetransfer.inc | 10 + docroot/core/includes/form.inc | 6 +- docroot/core/includes/session.inc | 3 +- docroot/core/includes/theme.inc | 8 + docroot/core/includes/updater.inc | 10 + docroot/core/layouts/boxton/boxton.info | 6 +- docroot/core/layouts/geary/geary.info | 6 +- docroot/core/layouts/harris/harris.info | 6 +- .../layouts/legacy/one_column/one_column.info | 6 +- .../three_three_four_column.info | 6 +- .../layouts/legacy/two_column/two_column.info | 6 +- .../two_column_flipped.info | 6 +- docroot/core/layouts/moscone/moscone.info | 6 +- .../moscone_flipped/moscone_flipped.info | 6 +- docroot/core/layouts/rolph/rolph.info | 6 +- docroot/core/layouts/simmons/simmons.info | 6 +- docroot/core/layouts/sutro/sutro.info | 6 +- docroot/core/layouts/taylor/taylor.info | 6 +- .../taylor_flipped/taylor_flipped.info | 6 +- docroot/core/misc/ajax.js | 6 +- docroot/core/misc/autocomplete.js | 8 +- docroot/core/misc/autosubmit.js | 10 +- docroot/core/misc/backdrop.js | 8 +- docroot/core/misc/collapse.js | 6 +- docroot/core/misc/dialog.js | 12 +- docroot/core/misc/dismiss.js | 4 +- docroot/core/misc/dropbutton.js | 40 +++ docroot/core/misc/form.js | 11 +- docroot/core/misc/jquery.1.12.js | 5 + docroot/core/misc/jquery.color.js | 2 +- docroot/core/misc/jquery.form.js | 22 +- docroot/core/misc/jquery.js | 7 +- docroot/core/misc/jquery.once.js | 9 +- docroot/core/misc/jquery.ui.touch-punch.js | 246 +++++++++++++++++- docroot/core/misc/machine-name.js | 10 +- docroot/core/misc/states.js | 18 +- docroot/core/misc/tabledrag.js | 7 +- docroot/core/misc/tableheader.js | 2 +- docroot/core/misc/textarea.js | 4 +- docroot/core/misc/ui/i18n/datepicker-ar-DZ.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ar.js | 2 +- docroot/core/misc/ui/i18n/datepicker-az.js | 2 +- docroot/core/misc/ui/i18n/datepicker-be.js | 2 +- docroot/core/misc/ui/i18n/datepicker-bg.js | 2 +- docroot/core/misc/ui/i18n/datepicker-bs.js | 2 +- docroot/core/misc/ui/i18n/datepicker-cs.js | 2 +- docroot/core/misc/ui/i18n/datepicker-da.js | 2 +- docroot/core/misc/ui/i18n/datepicker-de-AT.js | 2 +- docroot/core/misc/ui/i18n/datepicker-de.js | 2 +- docroot/core/misc/ui/i18n/datepicker-eo.js | 2 +- docroot/core/misc/ui/i18n/datepicker-es.js | 2 +- docroot/core/misc/ui/i18n/datepicker-eu.js | 2 +- docroot/core/misc/ui/i18n/datepicker-fa.js | 2 +- docroot/core/misc/ui/i18n/datepicker-fi.js | 2 +- docroot/core/misc/ui/i18n/datepicker-fo.js | 2 +- docroot/core/misc/ui/i18n/datepicker-fr-CH.js | 2 +- docroot/core/misc/ui/i18n/datepicker-gl.js | 2 +- docroot/core/misc/ui/i18n/datepicker-he.js | 2 +- docroot/core/misc/ui/i18n/datepicker-hr.js | 2 +- docroot/core/misc/ui/i18n/datepicker-hy.js | 2 +- docroot/core/misc/ui/i18n/datepicker-id.js | 2 +- docroot/core/misc/ui/i18n/datepicker-is.js | 2 +- docroot/core/misc/ui/i18n/datepicker-it-CH.js | 2 +- docroot/core/misc/ui/i18n/datepicker-it.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ja.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ka.js | 2 +- docroot/core/misc/ui/i18n/datepicker-kk.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ky.js | 2 +- docroot/core/misc/ui/i18n/datepicker-lt.js | 2 +- docroot/core/misc/ui/i18n/datepicker-mk.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ms.js | 2 +- docroot/core/misc/ui/i18n/datepicker-nb.js | 2 +- docroot/core/misc/ui/i18n/datepicker-nl-BE.js | 2 +- docroot/core/misc/ui/i18n/datepicker-nl.js | 2 +- docroot/core/misc/ui/i18n/datepicker-nn.js | 2 +- docroot/core/misc/ui/i18n/datepicker-no.js | 2 +- docroot/core/misc/ui/i18n/datepicker-pl.js | 2 +- docroot/core/misc/ui/i18n/datepicker-pt-BR.js | 2 +- docroot/core/misc/ui/i18n/datepicker-rm.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ro.js | 2 +- docroot/core/misc/ui/i18n/datepicker-ru.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sk.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sl.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sq.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sr-SR.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sr.js | 2 +- docroot/core/misc/ui/i18n/datepicker-sv.js | 2 +- docroot/core/misc/ui/i18n/datepicker-th.js | 2 +- docroot/core/misc/ui/i18n/datepicker-tj.js | 2 +- docroot/core/misc/ui/i18n/datepicker-tr.js | 2 +- docroot/core/misc/ui/i18n/datepicker-uk.js | 2 +- docroot/core/misc/ui/i18n/datepicker-vi.js | 2 +- docroot/core/misc/ui/i18n/datepicker-zh-CN.js | 2 +- docroot/core/misc/ui/i18n/datepicker-zh-HK.js | 2 +- docroot/core/misc/ui/i18n/datepicker-zh-TW.js | 2 +- docroot/core/misc/ui/jquery.ui.accordion.css | 2 +- .../core/misc/ui/jquery.ui.accordion.min.js | 4 +- docroot/core/misc/ui/jquery.ui.all.css | 6 +- .../core/misc/ui/jquery.ui.autocomplete.css | 2 +- .../misc/ui/jquery.ui.autocomplete.min.js | 4 +- docroot/core/misc/ui/jquery.ui.base.css | 2 +- docroot/core/misc/ui/jquery.ui.button.css | 2 +- docroot/core/misc/ui/jquery.ui.button.min.js | 4 +- .../core/misc/ui/jquery.ui.checkboxradio.css | 2 +- .../misc/ui/jquery.ui.checkboxradio.min.js | 4 +- .../core/misc/ui/jquery.ui.controlgroup.css | 2 +- .../misc/ui/jquery.ui.controlgroup.min.js | 4 +- docroot/core/misc/ui/jquery.ui.core.css | 2 +- docroot/core/misc/ui/jquery.ui.data.min.js | 2 +- docroot/core/misc/ui/jquery.ui.datepicker.css | 2 +- .../core/misc/ui/jquery.ui.datepicker.min.js | 4 +- docroot/core/misc/ui/jquery.ui.dialog.css | 2 +- docroot/core/misc/ui/jquery.ui.dialog.min.js | 4 +- .../ui/jquery.ui.disable-selection.min.js | 2 +- docroot/core/misc/ui/jquery.ui.draggable.css | 2 +- .../core/misc/ui/jquery.ui.draggable.min.js | 4 +- .../core/misc/ui/jquery.ui.droppable.min.js | 4 +- .../misc/ui/jquery.ui.effect-blind.min.js | 2 +- .../misc/ui/jquery.ui.effect-bounce.min.js | 4 +- .../core/misc/ui/jquery.ui.effect-clip.min.js | 2 +- .../core/misc/ui/jquery.ui.effect-drop.min.js | 4 +- .../misc/ui/jquery.ui.effect-explode.min.js | 2 +- .../core/misc/ui/jquery.ui.effect-fade.min.js | 2 +- .../core/misc/ui/jquery.ui.effect-fold.min.js | 4 +- .../misc/ui/jquery.ui.effect-highlight.min.js | 2 +- .../core/misc/ui/jquery.ui.effect-puff.min.js | 2 +- .../misc/ui/jquery.ui.effect-pulsate.min.js | 2 +- .../misc/ui/jquery.ui.effect-scale.min.js | 4 +- .../misc/ui/jquery.ui.effect-shake.min.js | 4 +- .../core/misc/ui/jquery.ui.effect-size.min.js | 4 +- .../misc/ui/jquery.ui.effect-slide.min.js | 2 +- .../misc/ui/jquery.ui.effect-transfer.min.js | 2 +- docroot/core/misc/ui/jquery.ui.effect.min.js | 4 +- .../core/misc/ui/jquery.ui.focusable.min.js | 4 +- .../misc/ui/jquery.ui.form-reset-mixin.min.js | 2 +- .../misc/ui/jquery.ui.jquery-patch.min.js | 2 +- docroot/core/misc/ui/jquery.ui.keycode.min.js | 2 +- docroot/core/misc/ui/jquery.ui.labels.min.js | 2 +- docroot/core/misc/ui/jquery.ui.menu.css | 2 +- docroot/core/misc/ui/jquery.ui.menu.min.js | 4 +- docroot/core/misc/ui/jquery.ui.mouse.min.js | 4 +- .../core/misc/ui/jquery.ui.position.min.js | 4 +- .../core/misc/ui/jquery.ui.progressbar.css | 2 +- .../core/misc/ui/jquery.ui.progressbar.min.js | 4 +- docroot/core/misc/ui/jquery.ui.resizable.css | 2 +- .../core/misc/ui/jquery.ui.resizable.min.js | 4 +- .../ui/jquery.ui.safe-active-element.min.js | 2 +- .../misc/ui/jquery.ui.scroll-parent.min.js | 2 +- docroot/core/misc/ui/jquery.ui.selectable.css | 2 +- .../core/misc/ui/jquery.ui.selectable.min.js | 4 +- docroot/core/misc/ui/jquery.ui.selectmenu.css | 2 +- .../core/misc/ui/jquery.ui.selectmenu.min.js | 4 +- docroot/core/misc/ui/jquery.ui.slider.css | 2 +- docroot/core/misc/ui/jquery.ui.slider.min.js | 4 +- docroot/core/misc/ui/jquery.ui.sortable.css | 2 +- .../core/misc/ui/jquery.ui.sortable.min.js | 4 +- docroot/core/misc/ui/jquery.ui.spinner.css | 2 +- docroot/core/misc/ui/jquery.ui.spinner.min.js | 4 +- .../core/misc/ui/jquery.ui.tabbable.min.js | 2 +- docroot/core/misc/ui/jquery.ui.tabs.css | 2 +- docroot/core/misc/ui/jquery.ui.tabs.min.js | 4 +- docroot/core/misc/ui/jquery.ui.theme.css | 2 +- docroot/core/misc/ui/jquery.ui.tooltip.css | 2 +- docroot/core/misc/ui/jquery.ui.tooltip.min.js | 4 +- .../core/misc/ui/jquery.ui.unique-id.min.js | 2 +- docroot/core/misc/ui/jquery.ui.version.min.js | 2 +- docroot/core/misc/ui/jquery.ui.widget.min.js | 4 +- docroot/core/misc/vertical-tabs.js | 8 +- docroot/core/modules/admin_bar/admin_bar.info | 6 +- .../modules/admin_bar/js/admin_bar.admin.js | 6 +- .../core/modules/admin_bar/js/admin_bar.js | 4 +- .../modules/admin_bar/tests/admin_bar.test | 23 ++ .../admin_bar/tests/admin_bar.tests.info | 6 +- docroot/core/modules/block/block.info | 6 +- .../core/modules/block/tests/block.tests.info | 6 +- .../block/tests/block_test/block_test.info | 6 +- docroot/core/modules/book/book.info | 6 +- .../core/modules/book/tests/book.tests.info | 6 +- docroot/core/modules/ckeditor/ckeditor.info | 6 +- .../core/modules/ckeditor/ckeditor.install | 14 +- docroot/core/modules/ckeditor/ckeditor.module | 22 ++ .../modules/ckeditor/js/ckeditor.admin.js | 12 +- .../ckeditor/tests/ckeditor.tests.info | 6 +- .../modules/ckeditor/tests/ckeditor_rtl.test | 4 +- docroot/core/modules/color/color.info | 6 +- docroot/core/modules/color/color.module | 4 +- docroot/core/modules/color/js/color.js | 6 +- .../core/modules/color/tests/color.tests.info | 6 +- docroot/core/modules/comment/comment.info | 6 +- .../core/modules/comment/js/comment.admin.js | 2 +- .../core/modules/comment/tests/comment.test | 11 + .../modules/comment/tests/comment.tests.info | 6 +- ...mment_views_handler_argument_user_uid.test | 24 +- docroot/core/modules/config/config.info | 6 +- docroot/core/modules/config/tests/config.test | 24 +- .../modules/config/tests/config.tests.info | 6 +- .../config/tests/config_test/config_test.info | 6 +- .../config_test_hooks/config_test_hooks.info | 6 +- docroot/core/modules/contact/contact.info | 6 +- .../core/modules/contact/tests/contact.test | 5 + .../modules/contact/tests/contact.tests.info | 6 +- .../core/modules/contextual/contextual.info | 6 +- .../core/modules/contextual/js/contextual.js | 27 +- .../contextual/tests/contextual.tests.info | 6 +- docroot/core/modules/dashboard/dashboard.info | 6 +- .../modules/dashboard/tests/dashboard.test | 8 +- .../dashboard/tests/dashboard.tests.info | 6 +- docroot/core/modules/date/date.elements.inc | 14 +- docroot/core/modules/date/date.info | 6 +- docroot/core/modules/date/date.install | 18 ++ docroot/core/modules/date/js/date-popup.js | 4 +- docroot/core/modules/date/js/date-range.js | 10 +- .../core/modules/date/js/date-year-range.js | 2 +- docroot/core/modules/date/js/date.admin.js | 2 +- .../core/modules/date/tests/date.tests.info | 6 +- .../modules/date/views/date_sql_handler.inc | 5 + docroot/core/modules/dblog/dblog.info | 6 +- .../core/modules/dblog/tests/dblog.tests.info | 6 +- docroot/core/modules/email/email.info | 6 +- .../core/modules/email/tests/email.tests.info | 6 +- docroot/core/modules/entity/entity.info | 6 +- docroot/core/modules/entity/entity.query.inc | 2 +- .../modules/entity/tests/entity.tests.info | 6 +- .../entity_cache_test/entity_cache_test.info | 6 +- .../entity_cache_test_dependency.info | 6 +- .../entity_caching_test.info | 6 +- .../entity/tests/entity_crud_hook_test.test | 1 - .../entity_crud_hook_test.info | 6 +- .../modules/entity/tests/entity_query.test | 14 +- .../entity_query_access_test.info | 6 +- .../entity/tests/entity_test/entity_test.info | 6 +- .../entityreference/entityreference.info | 6 +- .../tests/entityreference.tests.info | 6 +- .../entityreference_views_test.info | 6 +- docroot/core/modules/field/field.form.inc | 2 +- docroot/core/modules/field/field.info | 6 +- .../field_sql_storage/field_sql_storage.info | 6 +- .../tests/field_sql_storage.test | 26 ++ .../tests/field_sql_storage.tests.info | 6 +- .../core/modules/field/modules/list/list.info | 6 +- .../field/modules/list/tests/list.test | 84 ++++++ .../field/modules/list/tests/list.tests.info | 6 +- .../field/modules/list/tests/list_test.info | 6 +- .../modules/field/modules/number/number.info | 6 +- .../field/modules/number/number.module | 22 +- .../modules/number/tests/number.tests.info | 6 +- .../field/modules/options/js/options.js | 38 +-- .../field/modules/options/options.info | 6 +- .../field/modules/options/tests/options.test | 21 ++ .../modules/options/tests/options.tests.info | 6 +- .../modules/field/modules/text/js/text.js | 4 +- .../field/modules/text/tests/text.test | 47 +++- .../field/modules/text/tests/text.tests.info | 6 +- .../core/modules/field/modules/text/text.info | 6 +- .../modules/field/modules/text/text.module | 4 + docroot/core/modules/field/tests/field.test | 35 +++ .../core/modules/field/tests/field.tests.info | 6 +- .../field/tests/field_test/field_test.info | 6 +- .../field/tests/field_test/field_test.module | 2 +- .../core/modules/field/tests/field_views.test | 10 + docroot/core/modules/field_ui/field_ui.info | 6 +- docroot/core/modules/field_ui/js/field_ui.js | 10 +- .../core/modules/field_ui/tests/field_ui.test | 5 + .../field_ui/tests/field_ui.tests.info | 6 +- .../tests/view_mode_test/view_mode_test.info | 6 +- docroot/core/modules/file/file.info | 6 +- docroot/core/modules/file/file.theme.inc | 2 +- docroot/core/modules/file/js/file.js | 8 +- docroot/core/modules/file/tests/file.test | 15 ++ .../core/modules/file/tests/file.tests.info | 6 +- .../file_module_test/file_module_test.info | 6 +- docroot/core/modules/filter/filter.info | 6 +- .../core/modules/filter/js/filter.admin.js | 2 +- docroot/core/modules/filter/js/filter.js | 20 +- docroot/core/modules/filter/tests/filter.test | 17 ++ .../modules/filter/tests/filter.tests.info | 6 +- .../modules/filter/tests/filter_formtest.info | 6 +- docroot/core/modules/image/image.info | 6 +- .../core/modules/image/tests/image.tests.info | 6 +- .../image_module_test/image_module_test.info | 6 +- docroot/core/modules/installer/installer.info | 6 +- .../modules/installer/installer.pages.inc | 1 - .../installer/js/installer.select_releases.js | 2 +- .../aaa_installer_test.info | 6 +- .../bbb_installer_test.info | 6 +- .../ccc_installer_test.info | 6 +- .../installer/tests/installer.tests.info | 6 +- .../tests/installer_test/installer_test.info | 6 +- docroot/core/modules/language/language.info | 6 +- .../language/tests/language.tests.info | 6 +- .../modules/layout/includes/block.class.inc | 8 + .../modules/layout/includes/layout.class.inc | 10 + .../layout/includes/layout_flexible.class.inc | 5 + .../includes/layout_menu_item.class.inc | 7 + .../core/modules/layout/js/layout.admin.js | 8 +- docroot/core/modules/layout/layout.info | 6 +- docroot/core/modules/layout/layout.theme.inc | 2 +- .../access/entity_bundle_layout_access.inc | 6 + .../access/entity_id_layout_access.inc | 11 + .../relationships/author_from_node.inc | 6 + .../renderers/layout_renderer_flexible.inc | 1 - docroot/core/modules/layout/tests/layout.test | 5 + .../modules/layout/tests/layout.tests.info | 6 +- .../layout/tests/layout_test/layout_test.info | 6 +- docroot/core/modules/link/link.info | 6 +- docroot/core/modules/link/link.module | 31 ++- docroot/core/modules/link/tests/link.test | 24 ++ .../core/modules/link/tests/link.tests.info | 6 +- docroot/core/modules/link/tests/link.ui.test | 191 +++++++++----- docroot/core/modules/locale/locale.info | 6 +- docroot/core/modules/locale/locale.install | 3 - docroot/core/modules/locale/tests/locale.test | 11 +- .../modules/locale/tests/locale.tests.info | 6 +- .../locale/tests/locale_test/locale_test.info | 6 +- docroot/core/modules/menu/js/menu.admin.js | 4 +- docroot/core/modules/menu/js/menu.js | 6 +- docroot/core/modules/menu/menu.admin.inc | 40 ++- docroot/core/modules/menu/menu.info | 6 +- docroot/core/modules/menu/menu.module | 46 +++- docroot/core/modules/menu/menu.theme.inc | 9 +- docroot/core/modules/menu/tests/menu.test | 35 ++- .../core/modules/menu/tests/menu.tests.info | 6 +- .../modules/menu/tests/menu_language.test | 5 + docroot/core/modules/node/js/node.js | 6 +- docroot/core/modules/node/js/node.types.js | 4 +- docroot/core/modules/node/node.info | 6 +- docroot/core/modules/node/tests/node.test | 137 +++++++++- .../core/modules/node/tests/node.tests.info | 6 +- .../node_access_test/node_access_test.info | 6 +- .../node_layout_preview_revision_test.info | 6 +- .../node/tests/node_test/node_test.info | 6 +- .../node_test_exception.info | 6 +- docroot/core/modules/path/js/path.admin.js | 8 +- docroot/core/modules/path/path.info | 6 +- .../core/modules/path/tests/path.tests.info | 6 +- .../core/modules/path/tests/path_pattern.test | 1 - .../core/modules/redirect/redirect.admin.inc | 6 +- .../core/modules/redirect/redirect.class.inc | 5 + docroot/core/modules/redirect/redirect.info | 6 +- .../redirect/tests/redirect.tests.info | 6 +- docroot/core/modules/search/search.info | 6 +- docroot/core/modules/search/tests/search.test | 21 ++ .../modules/search/tests/search.tests.info | 6 +- .../search_embedded_form.info | 6 +- .../search_extra_type/search_extra_type.info | 6 +- .../simpletest/backdrop_web_test_case.php | 15 ++ .../core/modules/simpletest/simpletest.info | 6 +- .../simpletest/tests/actions_loop_test.info | 6 +- .../core/modules/simpletest/tests/ajax.test | 17 ++ .../simpletest/tests/ajax_forms_test.info | 6 +- .../modules/simpletest/tests/ajax_test.info | 6 +- ...ckdrop_system_listing_compatible_test.info | 6 +- ...drop_system_listing_incompatible_test.info | 6 +- .../modules/simpletest/tests/batch_test.info | 6 +- .../modules/simpletest/tests/boot_test_1.info | 6 +- .../modules/simpletest/tests/boot_test_2.info | 6 +- .../modules/simpletest/tests/bootstrap.test | 35 +++ .../core/modules/simpletest/tests/common.test | 49 +--- .../modules/simpletest/tests/common_test.info | 6 +- .../simpletest/tests/common_test.module | 28 -- .../tests/common_test_cron_helper.info | 6 +- .../config_obj_test/config_obj_test.info | 6 +- .../simpletest/tests/database_test.info | 6 +- .../simpletest/tests/database_test.test | 19 +- .../simpletest/tests/dependency_test1.info | 6 +- .../simpletest/tests/dependency_test2.info | 6 +- .../simpletest/tests/dependency_test3.info | 6 +- .../modules/simpletest/tests/error_test.info | 6 +- .../modules/simpletest/tests/file_test.info | 6 +- .../simpletest/tests/filetransfer.test | 6 + .../modules/simpletest/tests/filter_test.info | 6 +- .../core/modules/simpletest/tests/form.test | 11 + .../modules/simpletest/tests/form_test.info | 6 +- .../modules/simpletest/tests/image_test.info | 6 +- .../modules/simpletest/tests/menu_test.info | 6 +- .../core/modules/simpletest/tests/module.test | 12 + .../modules/simpletest/tests/module_test.info | 6 +- .../core/modules/simpletest/tests/pager.test | 5 + .../modules/simpletest/tests/path_test.info | 6 +- .../simpletest/tests/requirements1_test.info | 6 +- .../simpletest/tests/requirements2_test.info | 6 +- .../modules/simpletest/tests/session.test | 1 - .../simpletest/tests/session_test.info | 6 +- .../modules/simpletest/tests/simpletest.test | 30 +++ .../simpletest/tests/simpletest.tests.info | 12 +- .../tests/system_dependencies_test.info | 6 +- ...atible_core_version_dependencies_test.info | 6 +- ...system_incompatible_core_version_test.info | 6 +- ...ible_module_version_dependencies_test.info | 6 +- ...stem_incompatible_module_version_test.info | 6 +- .../tests/system_project_namespace_test.info | 6 +- .../modules/simpletest/tests/system_test.info | 6 +- .../simpletest/tests/taxonomy_test.info | 6 +- .../core/modules/simpletest/tests/theme.test | 6 + .../modules/simpletest/tests/theme_test.info | 6 +- .../simpletest/tests/theme_test.module | 1 + .../themes/test_basetheme/test_basetheme.info | 6 +- .../themes/test_subtheme/test_subtheme.info | 6 +- .../tests/themes/test_theme/test_theme.info | 6 +- .../config/test_theme_config.settings.json | 6 + .../test_theme_config/test_theme_config.info | 11 + .../test_theme_config/theme-settings.php | 21 ++ .../core/modules/simpletest/tests/token.test | 5 + .../modules/simpletest/tests/token_test.info | 6 +- .../simpletest/tests/update_d7_test_1.info | 6 +- .../simpletest/tests/update_d7_test_2.info | 6 +- .../simpletest/tests/update_script_test.info | 6 +- .../simpletest/tests/update_test_1.info | 6 +- .../simpletest/tests/update_test_2.info | 6 +- .../simpletest/tests/update_test_3.info | 6 +- .../simpletest/tests/url_alter_test.info | 6 +- docroot/core/modules/syslog/syslog.info | 6 +- .../modules/syslog/tests/syslog.tests.info | 6 +- .../modules/system/config/system.core.json | 2 +- docroot/core/modules/system/js/menus.js | 7 +- docroot/core/modules/system/js/modules.js | 13 +- docroot/core/modules/system/js/status.js | 2 +- .../modules/system/js/system.jump-menu.js | 4 +- docroot/core/modules/system/js/token.js | 6 +- docroot/core/modules/system/system.admin.inc | 40 ++- docroot/core/modules/system/system.info | 6 +- docroot/core/modules/system/system.install | 22 ++ docroot/core/modules/system/system.module | 157 ++++++++--- .../cron_queue_test/cron_queue_test.info | 6 +- .../deprecated_redirect_test.info | 6 +- docroot/core/modules/system/tests/system.test | 71 ++++- .../modules/system/tests/system.tests.info | 6 +- .../system_cron_test/system_cron_test.info | 6 +- .../core/modules/taxonomy/taxonomy.admin.inc | 4 +- docroot/core/modules/taxonomy/taxonomy.info | 6 +- .../core/modules/taxonomy/taxonomy.install | 1 + .../taxonomy/taxonomy_vocabulary.class.inc | 7 +- .../core/modules/taxonomy/tests/taxonomy.test | 204 ++++++++++++++- .../taxonomy/tests/taxonomy.tests.info | 6 +- .../taxonomy_nodes_test.info | 6 +- ...s_handler_relationship_node_term_data.test | 20 +- .../taxonomy_vocab_load_test.info | 12 + .../taxonomy_vocab_load_test.module | 15 ++ .../modules/telemetry/telemetry.admin.inc | 5 +- docroot/core/modules/telemetry/telemetry.info | 6 +- .../translation/tests/translation.test | 10 + .../translation/tests/translation.tests.info | 6 +- .../translation_test/translation_test.info | 6 +- .../core/modules/translation/translation.info | 6 +- .../aaa_update_test/aaa_update_test.info | 6 +- .../bbb_update_test/bbb_update_test.info | 6 +- .../ccc_update_test/ccc_update_test.info | 6 +- .../modules/update/tests/update.tests.info | 6 +- .../update_test_admintheme.info | 6 +- .../update_test_basetheme.info | 6 +- .../update_test_subtheme.info | 6 +- .../update/tests/update_test/update_test.info | 6 +- docroot/core/modules/update/update.info | 6 +- docroot/core/modules/user/js/user.admin.js | 4 +- docroot/core/modules/user/js/user.js | 4 +- .../core/modules/user/js/user.permissions.js | 11 +- docroot/core/modules/user/tests/user.test | 56 ++++ .../core/modules/user/tests/user.tests.info | 6 +- .../user_flood_test/user_flood_test.info | 6 +- .../tests/user_form_test/user_form_test.info | 6 +- .../user/tests/user_password_reset.test | 5 + .../user_session_test/user_session_test.info | 6 +- .../tests/user_views_argument_validate.test | 6 + docroot/core/modules/user/user.admin.inc | 15 +- docroot/core/modules/user/user.info | 6 +- docroot/core/modules/user/user.module | 48 +++- docroot/core/modules/user/user.pages.inc | 15 +- docroot/core/modules/user/user.theme.inc | 4 + docroot/core/modules/views/includes/base.inc | 1 + .../core/modules/views/includes/handlers.inc | 2 + docroot/core/modules/views/includes/view.inc | 2 + docroot/core/modules/views/js/ajax.js | 8 +- .../views/plugins/views_plugin_pager_full.inc | 6 +- .../tests/handlers/views_handler_field.test | 6 + .../handlers/views_handler_filter_date.test | 10 + .../views_handler_filter_equality.test | 6 + .../styles/views_plugin_style_jump_menu.test | 5 + .../core/modules/views/tests/views.tests.info | 6 +- .../modules/views/tests/views_access.test | 26 ++ .../modules/views/tests/views_analyze.test | 6 + .../views/tests/views_argument_default.test | 6 + .../views/tests/views_test/views_test.info | 6 +- .../views_test_entity/views_test_entity.info | 6 +- .../views/tests/views_translatable.test | 5 + docroot/core/modules/views/views.info | 6 +- .../core/modules/views_ui/js/views-admin.js | 16 +- docroot/core/modules/views_ui/views_ui.info | 6 +- docroot/core/profiles/minimal/minimal.info | 6 +- docroot/core/profiles/standard/standard.info | 6 +- ...ckdrop_system_listing_compatible_test.info | 6 +- ..._system_listing_compatible_test.tests.info | 6 +- ...drop_system_listing_incompatible_test.info | 6 +- docroot/core/profiles/testing/testing.info | 6 +- docroot/core/themes/bartik/bartik.info | 6 +- docroot/core/themes/basis/basis.info | 6 +- .../themes/basis/css/component/admin-tabs.css | 2 +- docroot/core/themes/basis/js/script.js | 2 +- docroot/core/themes/seven/js/script.js | 34 +-- docroot/core/themes/seven/seven.info | 6 +- docroot/core/themes/stark/stark.info | 6 +- docroot/settings.php | 13 - 509 files changed, 3297 insertions(+), 1341 deletions(-) create mode 100644 docroot/core/misc/jquery.1.12.js create mode 100644 docroot/core/modules/simpletest/tests/themes/test_theme_config/config/test_theme_config.settings.json create mode 100644 docroot/core/modules/simpletest/tests/themes/test_theme_config/test_theme_config.info create mode 100644 docroot/core/modules/simpletest/tests/themes/test_theme_config/theme-settings.php create mode 100644 docroot/core/modules/taxonomy/tests/taxonomy_vocab_load_test/taxonomy_vocab_load_test.info create mode 100644 docroot/core/modules/taxonomy/tests/taxonomy_vocab_load_test/taxonomy_vocab_load_test.module diff --git a/docroot/core/includes/anonymous.inc b/docroot/core/includes/anonymous.inc index eeb37ae6..c606ee31 100644 --- a/docroot/core/includes/anonymous.inc +++ b/docroot/core/includes/anonymous.inc @@ -9,7 +9,8 @@ * use of the AnonymousUser class in places where different kinds of users are * listed together. */ -class AnonymousUser implements UserInterface { +class AnonymousUser extends stdClass implements UserInterface { + public $uid = 0; public $name = NULL; public $hostname = NULL; diff --git a/docroot/core/includes/bootstrap.inc b/docroot/core/includes/bootstrap.inc index c5d57501..5ac2546b 100644 --- a/docroot/core/includes/bootstrap.inc +++ b/docroot/core/includes/bootstrap.inc @@ -7,7 +7,7 @@ /** * The current system version. */ -define('BACKDROP_VERSION', '1.25.1'); +define('BACKDROP_VERSION', '1.26.0'); /** * Core API compatibility. diff --git a/docroot/core/includes/common.inc b/docroot/core/includes/common.inc index 8464ad6e..678278fc 100644 --- a/docroot/core/includes/common.inc +++ b/docroot/core/includes/common.inc @@ -3044,19 +3044,6 @@ function backdrop_deliver_html_page($page_callback_result) { backdrop_add_http_header('X-Frame-Options', $frame_options); } - if ($site_config->get('block_interest_cohort')) { - $permissions_policy = backdrop_get_http_header('Permissions-Policy'); - if (is_null($permissions_policy)) { - backdrop_add_http_header('Permissions-Policy', 'interest-cohort=()'); - } - else { - // Only add interest-cohort if the header does not contain it already. - if (strpos($permissions_policy, 'interest-cohort') === FALSE) { - backdrop_add_http_header('Permissions-Policy', 'interest-cohort=()', TRUE); - } - } - } - // Menu status constants are integers; page content is a string or array. if (is_int($page_callback_result)) { // @todo: Break these up into separate functions? diff --git a/docroot/core/includes/config.inc b/docroot/core/includes/config.inc index 29f495c7..f4535eef 100644 --- a/docroot/core/includes/config.inc +++ b/docroot/core/includes/config.inc @@ -270,19 +270,27 @@ function config_load_multiple($names, $type = 'active') { } /** - * Moves the default config supplied by a module to the live config directory. + * Moves the default config supplied by a project to the live config directory. * - * @param string $module - * The name of the module we are installing. + * @param string $project + * The name of the project we are installing. * @param string|NULL $config_name * (optional) If wanting to copy just a single configuration file from the - * module, specify the configuration file name without the extension. + * project, specify the configuration file name without the extension. + * + * @since 1.26.0 First parameter changed from $module to $project. */ -function config_install_default_config($module, $config_name = NULL) { - $module_config_dir = backdrop_get_path('module', $module) . '/config'; - if (is_dir($module_config_dir)) { - $storage = new ConfigFileStorage($module_config_dir); - $files = glob($module_config_dir . '/*.json'); +function config_install_default_config($project, $config_name = NULL) { + $project_path = NULL; + foreach (array('module', 'theme') as $project_type) { + if ($project_path = backdrop_get_path($project_type, $project)) { + break; + } + } + $project_config_dir = $project_path . '/config'; + if (is_dir($project_config_dir)) { + $storage = new ConfigFileStorage($project_config_dir); + $files = glob($project_config_dir . '/*.json'); foreach ($files as $file) { // Load config data into the active store and write it out to the // file system in the Backdrop config directory. Note the config name @@ -305,11 +313,25 @@ function config_install_default_config($module, $config_name = NULL) { } /** - * Uninstall all the configuration provided by a module. + * Uninstall all the configuration provided by a project. + * + * @param string $project + * The name of the project we are uninstalling. + * @param string|NULL $config_name + * (optional) If wanting to remove just a single configuration file from the + * project, specify the configuration file name without the extension. + * + * @since 1.26.0 First parameter changed from $module to $project. */ -function config_uninstall_config($module, $config_name = NULL) { - backdrop_load('module', $module); - if ($configs = module_invoke($module, 'config_info')) { +function config_uninstall_config($project, $config_name = NULL) { + // If this is a theme key, load the matching template.php file. + if (!backdrop_load('module', $project) && $theme_path = backdrop_get_path('theme', $project)) { + if (file_exists($theme_path . '/template.php')) { + include_once $theme_path . '/template.php'; + } + } + + if ($configs = module_invoke($project, 'config_info')) { foreach ($configs as $config_name => $config_info) { if (isset($config_info['name_key'])) { $sub_names = config_get_names_with_prefix($config_name . '.'); diff --git a/docroot/core/includes/database/database.inc b/docroot/core/includes/database/database.inc index 7f921109..b028c36a 100644 --- a/docroot/core/includes/database/database.inc +++ b/docroot/core/includes/database/database.inc @@ -737,12 +737,12 @@ abstract class DatabaseConnection { if ($options['throw_exception']) { // Add additional debug information. if ($query instanceof DatabaseStatementInterface) { - $e->query_string = $stmt->getQueryString(); + $e->errorInfo['query_string'] = $stmt->getQueryString(); } else { - $e->query_string = $query; + $e->errorInfo['query_string'] = $query; } - $e->args = $args; + $e->errorInfo['args'] = $args; throw $e; } return NULL; diff --git a/docroot/core/includes/database/query.inc b/docroot/core/includes/database/query.inc index 4ab62bea..88e5fbf5 100644 --- a/docroot/core/includes/database/query.inc +++ b/docroot/core/includes/database/query.inc @@ -1283,6 +1283,13 @@ class MergeQuery extends Query implements QueryConditionInterface { */ protected $table; + /** + * The condition object for this query. + * + * @var DatabaseCondition + */ + protected $condition; + /** * An array of fields on which to insert. * diff --git a/docroot/core/includes/date.class.inc b/docroot/core/includes/date.class.inc index c7720922..d21e89a7 100644 --- a/docroot/core/includes/date.class.inc +++ b/docroot/core/includes/date.class.inc @@ -9,6 +9,24 @@ class BackdropDateTime extends DateTime { public $granularity = array(); public $errors = array(); + + /** + * @var bool + */ + public $dateOnly; + + /** + * @var bool + */ + public $timeOnly; + + /** + * Date string, timestamp or indexed date array. + * + * @var string|int|array + */ + public $originalTime; + protected static $allgranularity = array( 'year', 'month', diff --git a/docroot/core/includes/errors.inc b/docroot/core/includes/errors.inc index 1334d586..2445b5bb 100644 --- a/docroot/core/includes/errors.inc +++ b/docroot/core/includes/errors.inc @@ -107,8 +107,8 @@ function _backdrop_decode_exception($exception) { // We remove that call. array_shift($backtrace); } - if (isset($exception->query_string, $exception->args)) { - $message .= ": " . $exception->query_string . "; " . print_r($exception->args, TRUE); + if (isset($exception->errorInfo['query_string'], $exception->errorInfo['args'])) { + $message .= ": " . $exception->errorInfo['query_string'] . "; " . print_r($exception->errorInfo['args'], TRUE); } } $caller = _backdrop_get_last_caller($backtrace); diff --git a/docroot/core/includes/filetransfer/filetransfer.inc b/docroot/core/includes/filetransfer/filetransfer.inc index bdc0a55c..56337b50 100644 --- a/docroot/core/includes/filetransfer/filetransfer.inc +++ b/docroot/core/includes/filetransfer/filetransfer.inc @@ -16,6 +16,16 @@ abstract class FileTransfer { protected $hostname = 'localhost'; protected $port; + /** + * @var string + */ + protected $jail; + + /** + * @var string + */ + protected $chroot; + /** * The constructor for the UpdateConnection class. This method is also called * from the classes that extend this class and override this method. diff --git a/docroot/core/includes/form.inc b/docroot/core/includes/form.inc index 7c970d0f..725e65e2 100644 --- a/docroot/core/includes/form.inc +++ b/docroot/core/includes/form.inc @@ -3023,7 +3023,7 @@ function form_process_password_confirm($element) { '#title' => t('New password'), '#value' => empty($element['#value']) ? NULL : $element['#value']['pass1'], '#required' => $element['#required'], - '#attributes' => array('class' => array('password-field')), + '#attributes' => $element['#attributes'] + array('class' => array('password-field')), '#password_strength' => TRUE, '#password_shown' => FALSE, '#password_toggle' => FALSE, @@ -3033,7 +3033,7 @@ function form_process_password_confirm($element) { '#title' => t('Confirm new password'), '#value' => empty($element['#value']) ? NULL : $element['#value']['pass2'], '#required' => $element['#required'], - '#attributes' => array('class' => array('password-confirm')), + '#attributes' => $element['#attributes'] + array('class' => array('password-confirm')), '#password_strength' => FALSE, '#password_shown' => FALSE, '#password_toggle' => FALSE, @@ -4750,6 +4750,8 @@ function theme_textarea($variables) { function theme_password($variables) { $element = $variables['element']; $element['#attributes']['type'] = 'password'; + $element['#attributes']['spellcheck'] = !empty($element['#attributes']['spellcheck']) ? $element['#attributes']['spellcheck'] : 'false'; + element_set_attributes($element, array('id', 'name', 'size', 'maxlength', 'placeholder')); _form_set_class($element, array('form-text')); diff --git a/docroot/core/includes/session.inc b/docroot/core/includes/session.inc index 846721cb..06afbfbc 100644 --- a/docroot/core/includes/session.inc +++ b/docroot/core/includes/session.inc @@ -359,7 +359,7 @@ function backdrop_session_regenerate() { global $user, $is_https; // Nothing to do if we are not allowed to change the session. if (!backdrop_save_session()) { - return TRUE; + return; } if ($is_https && settings_get('https', FALSE)) { @@ -421,7 +421,6 @@ function backdrop_session_regenerate() { $user = $account; } date_default_timezone_set(backdrop_get_user_timezone()); - return TRUE; } /** diff --git a/docroot/core/includes/theme.inc b/docroot/core/includes/theme.inc index 0d430f81..7432aa56 100644 --- a/docroot/core/includes/theme.inc +++ b/docroot/core/includes/theme.inc @@ -1499,6 +1499,9 @@ function theme_get_setting($setting_name, $theme = NULL) { * TRUE if the theme has settings, FALSE otherwise. */ function theme_has_settings($theme) { + if (config_get_names_with_prefix($theme . '.settings')) { + return TRUE; + } $themes = list_themes(); $theme_info = $themes[$theme]; if (!empty($theme_info->info['settings'])) { @@ -1643,6 +1646,9 @@ function theme_enable($theme_list) { ->condition('type', 'theme') ->condition('name', $key) ->execute(); + + // Copy any default configuration data to the system config directory. + config_install_default_config($key); } list_themes(TRUE); @@ -1676,6 +1682,8 @@ function theme_disable($theme_list) { ->condition('type', 'theme') ->condition('name', $key) ->execute(); + + config_uninstall_config($key); } list_themes(TRUE); diff --git a/docroot/core/includes/updater.inc b/docroot/core/includes/updater.inc index 3ace8e94..3a6e7780 100644 --- a/docroot/core/includes/updater.inc +++ b/docroot/core/includes/updater.inc @@ -72,6 +72,16 @@ abstract class Updater implements BackdropUpdaterInterface { */ public $source; + /** + * @var string + */ + protected $name; + + /** + * @var string + */ + protected $title; + public function __construct($source) { $this->source = $source; $this->name = self::getProjectName($source); diff --git a/docroot/core/layouts/boxton/boxton.info b/docroot/core/layouts/boxton/boxton.info index f8051e8e..eee454cf 100644 --- a/docroot/core/layouts/boxton/boxton.info +++ b/docroot/core/layouts/boxton/boxton.info @@ -25,7 +25,7 @@ preview = boxton.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/geary/geary.info b/docroot/core/layouts/geary/geary.info index 92818a1f..b496d639 100644 --- a/docroot/core/layouts/geary/geary.info +++ b/docroot/core/layouts/geary/geary.info @@ -27,7 +27,7 @@ preview = geary.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/harris/harris.info b/docroot/core/layouts/harris/harris.info index a72f42b9..80707276 100644 --- a/docroot/core/layouts/harris/harris.info +++ b/docroot/core/layouts/harris/harris.info @@ -27,7 +27,7 @@ preview = harris.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/legacy/one_column/one_column.info b/docroot/core/layouts/legacy/one_column/one_column.info index a9cfef28..d7b208ac 100644 --- a/docroot/core/layouts/legacy/one_column/one_column.info +++ b/docroot/core/layouts/legacy/one_column/one_column.info @@ -18,7 +18,7 @@ regions[footer] = Footer ; Modify this line if you would like to change the default in this layout. default region = content -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/legacy/three_three_four_column/three_three_four_column.info b/docroot/core/layouts/legacy/three_three_four_column/three_three_four_column.info index 9bd48442..47acc53d 100644 --- a/docroot/core/layouts/legacy/three_three_four_column/three_three_four_column.info +++ b/docroot/core/layouts/legacy/three_three_four_column/three_three_four_column.info @@ -26,7 +26,7 @@ regions[footer] = Footer bottom ; Modify this line if you would like to change the default in this layout. default region = content -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/legacy/two_column/two_column.info b/docroot/core/layouts/legacy/two_column/two_column.info index b9f00573..112511c5 100644 --- a/docroot/core/layouts/legacy/two_column/two_column.info +++ b/docroot/core/layouts/legacy/two_column/two_column.info @@ -15,7 +15,7 @@ regions[footer] = Footer ; Modify this line if you would like to change the default in this layout. default region = content -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/legacy/two_column_flipped/two_column_flipped.info b/docroot/core/layouts/legacy/two_column_flipped/two_column_flipped.info index 0d85806b..7b512c4b 100644 --- a/docroot/core/layouts/legacy/two_column_flipped/two_column_flipped.info +++ b/docroot/core/layouts/legacy/two_column_flipped/two_column_flipped.info @@ -15,7 +15,7 @@ regions[footer] = Footer ; Modify this line if you would like to change the default in this layout. default region = content -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/moscone/moscone.info b/docroot/core/layouts/moscone/moscone.info index 32f76d6f..21c36ba5 100644 --- a/docroot/core/layouts/moscone/moscone.info +++ b/docroot/core/layouts/moscone/moscone.info @@ -26,7 +26,7 @@ preview = moscone.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/moscone_flipped/moscone_flipped.info b/docroot/core/layouts/moscone_flipped/moscone_flipped.info index 96911580..2018d874 100644 --- a/docroot/core/layouts/moscone_flipped/moscone_flipped.info +++ b/docroot/core/layouts/moscone_flipped/moscone_flipped.info @@ -26,7 +26,7 @@ preview = moscone-flipped.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/rolph/rolph.info b/docroot/core/layouts/rolph/rolph.info index 642a55bd..d27ae27a 100644 --- a/docroot/core/layouts/rolph/rolph.info +++ b/docroot/core/layouts/rolph/rolph.info @@ -28,7 +28,7 @@ preview = rolph.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/simmons/simmons.info b/docroot/core/layouts/simmons/simmons.info index 3eab8664..0a30ac6b 100644 --- a/docroot/core/layouts/simmons/simmons.info +++ b/docroot/core/layouts/simmons/simmons.info @@ -34,7 +34,7 @@ file = simmons.php ; Default stylesheets for this layout ; stylesheets[all][] = simmons.css -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/sutro/sutro.info b/docroot/core/layouts/sutro/sutro.info index be331709..62056054 100644 --- a/docroot/core/layouts/sutro/sutro.info +++ b/docroot/core/layouts/sutro/sutro.info @@ -27,7 +27,7 @@ preview = sutro.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/taylor/taylor.info b/docroot/core/layouts/taylor/taylor.info index ad792a55..05680502 100644 --- a/docroot/core/layouts/taylor/taylor.info +++ b/docroot/core/layouts/taylor/taylor.info @@ -27,7 +27,7 @@ preview = taylor.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/layouts/taylor_flipped/taylor_flipped.info b/docroot/core/layouts/taylor_flipped/taylor_flipped.info index ea2d4abc..f441342b 100644 --- a/docroot/core/layouts/taylor_flipped/taylor_flipped.info +++ b/docroot/core/layouts/taylor_flipped/taylor_flipped.info @@ -27,7 +27,7 @@ preview = taylor-flipped.png ; Include the Bootstrap4 Grid System libraries[] = bootstrap4-gs -; Added by Backdrop CMS packaging script on 2023-06-07 +; Added by Backdrop CMS packaging script on 2023-09-15 project = backdrop -version = 1.25.1 -timestamp = 1686169096 +version = 1.26.0 +timestamp = 1694823391 diff --git a/docroot/core/misc/ajax.js b/docroot/core/misc/ajax.js index 3cdac899..46d4785a 100644 --- a/docroot/core/misc/ajax.js +++ b/docroot/core/misc/ajax.js @@ -258,7 +258,7 @@ Backdrop.ajax = function (base, element, element_settings) { } // Bind the ajaxSubmit function to the element event. - $(ajax.element).bind(element_settings.event, function (event) { + $(ajax.element).on(element_settings.event, function (event) { if (!Backdrop.settings.urlIsAjaxTrusted[ajax.url] && !Backdrop.urlIsLocal(ajax.url)) { throw new Error(Backdrop.t('The callback URL is not local and not trusted: !url', {'!url': ajax.url})); } @@ -269,7 +269,7 @@ Backdrop.ajax = function (base, element, element_settings) { // can be triggered through keyboard input as well as e.g. a mousedown // action. if (element_settings.keypress) { - $(ajax.element).keypress(function (event) { + $(ajax.element).on('keypress', function (event) { return ajax.keypressResponse(this, event); }); } @@ -278,7 +278,7 @@ Backdrop.ajax = function (base, element, element_settings) { // For example, prevent the browser default action of a click, even if the // AJAX behavior binds to mousedown. if (element_settings.prevent) { - $(ajax.element).bind(element_settings.prevent, false); + $(ajax.element).on(element_settings.prevent, false); } }; diff --git a/docroot/core/misc/autocomplete.js b/docroot/core/misc/autocomplete.js index 4b5ae47e..245bf0eb 100644 --- a/docroot/core/misc/autocomplete.js +++ b/docroot/core/misc/autocomplete.js @@ -14,7 +14,7 @@ Backdrop.behaviors.autocomplete = { var $input = $('#' + this.id.substr(0, this.id.length - 13)) .attr('autocomplete', 'OFF') .attr('aria-autocomplete', 'list'); - $($input[0].form).submit(Backdrop.autocompleteSubmit); + $($input[0].form).on('submit', Backdrop.autocompleteSubmit); $input.parent() .attr('role', 'application') .append($('') @@ -47,9 +47,9 @@ Backdrop.jsAC = function ($input, db) { this.db = db; $input - .keydown(function (event) { return ac.onkeydown(this, event); }) - .keyup(function (event) { ac.onkeyup(this, event); }) - .blur(function () { ac.hidePopup(); ac.db.cancel(); }); + .on('keydown', function (event) { return ac.onkeydown(this, event); }) + .on('keyup', function (event) { ac.onkeyup(this, event); }) + .on('blur', function () { ac.hidePopup(); ac.db.cancel(); }); }; /** diff --git a/docroot/core/misc/autosubmit.js b/docroot/core/misc/autosubmit.js index a4c4fede..c91cc207 100644 --- a/docroot/core/misc/autosubmit.js +++ b/docroot/core/misc/autosubmit.js @@ -39,7 +39,7 @@ Backdrop.behaviors.autosubmit = { // 'this' references the form element function triggerSubmit (e) { var $this = $(this); - $this.find('.autosubmit-click').click(); + $this.find('.autosubmit-click').trigger('click'); } // the change event bubbles so we only need to bind it to the outer form @@ -47,7 +47,7 @@ Backdrop.behaviors.autosubmit = { .add('.autosubmit', context) .filter('form, select, input:not(:text, :submit)') .once('autosubmit') - .change(function (e) { + .on('change', function (e) { // don't trigger on text change for full-form if ($(e.target).is(':not(:text, :submit, .autosubmit-exclude)')) { triggerSubmit.call(e.target.form); @@ -79,17 +79,17 @@ Backdrop.behaviors.autosubmit = { // each textinput element has his own timeout var timeoutID = 0; $(this) - .bind('keydown keyup', function (e) { + .on('keydown keyup', function (e) { if ($.inArray(e.keyCode, discardKeyCode) === -1) { timeoutID && clearTimeout(timeoutID); } }) - .keyup(function(e) { + .on('keyup', function(e) { if ($.inArray(e.keyCode, discardKeyCode) === -1) { timeoutID = setTimeout($.proxy(triggerSubmit, this.form), 500); } }) - .bind('change', function (e) { + .on('change', function (e) { if ($.inArray(e.keyCode, discardKeyCode) === -1) { timeoutID = setTimeout($.proxy(triggerSubmit, this.form), 500); } diff --git a/docroot/core/misc/backdrop.js b/docroot/core/misc/backdrop.js index 73282221..afd992a8 100644 --- a/docroot/core/misc/backdrop.js +++ b/docroot/core/misc/backdrop.js @@ -69,7 +69,7 @@ Backdrop.attachBehaviors = function (context, settings) { settings = settings || Backdrop.settings; // Execute all of them. $.each(Backdrop.behaviors, function () { - if ($.isFunction(this.attach)) { + if (typeof this.attach === 'function') { this.attach(context, settings); } }); @@ -121,7 +121,7 @@ Backdrop.detachBehaviors = function (context, settings, trigger) { trigger = trigger || 'unload'; // Execute all of them. $.each(Backdrop.behaviors, function () { - if ($.isFunction(this.detach)) { + if (typeof this.detach === 'function') { this.detach(context, settings, trigger); } }); @@ -250,7 +250,7 @@ Backdrop.stringReplace = function (str, args, keys) { } // If the array of keys is not passed then collect the keys from the args. - if (!$.isArray(keys)) { + if (!Array.isArray(keys)) { keys = []; for (var k in args) { if (args.hasOwnProperty(k)) { @@ -551,7 +551,7 @@ Backdrop.getSelection = function (element) { * This is primarily used by Backdrop.displayAjaxError(). */ Backdrop.beforeUnloadCalled = false; -$(window).bind('beforeunload pagehide', function () { +$(window).on('beforeunload pagehide', function () { Backdrop.beforeUnloadCalled = true; }); diff --git a/docroot/core/misc/collapse.js b/docroot/core/misc/collapse.js index b3a0652f..a3673a38 100644 --- a/docroot/core/misc/collapse.js +++ b/docroot/core/misc/collapse.js @@ -69,8 +69,8 @@ Backdrop.behaviors.collapse = { var summary = $(''); $fieldset. - bind('summaryUpdated', function () { - var text = $.trim($fieldset.backdropGetSummary()); + on('summaryUpdated', function () { + var text = $fieldset.backdropGetSummary(); summary.html(text ? text : ''); }) .trigger('summaryUpdated'); @@ -88,7 +88,7 @@ Backdrop.behaviors.collapse = { var $link = $('') .prepend($legend.contents()) .appendTo($legend) - .click(function () { + .on('click', function () { var fieldset = $fieldset.get(0); // Don't animate multiple times. if (!fieldset.animating) { diff --git a/docroot/core/misc/dialog.js b/docroot/core/misc/dialog.js index 3ffbab68..f9f7e274 100644 --- a/docroot/core/misc/dialog.js +++ b/docroot/core/misc/dialog.js @@ -79,17 +79,19 @@ Backdrop.dialog = function (element, options) { // Because of Chromium's behavior, we must wait until the ajax-loaded // jquery.ui.dialog.css is applied. var computedStyle = getComputedStyle($element[0]); - var waitForCss = function() { + var waitForCss = function(counter) { var cssOverflowProperty = computedStyle.getPropertyValue('overflow'); - // If the overflow is not 'auto' yet, schedule this function again. - if (cssOverflowProperty != 'auto') { - setTimeout(waitForCss, 10); + // If the overflow is not 'auto' or 'hidden' yet, schedule this function + // again, but prevent infinite loops for dialogs that use a different + // overflow. + if (cssOverflowProperty != 'auto' && cssOverflowProperty != 'hidden' && counter < 10) { + setTimeout(waitForCss, 10, ++counter); } else { resetPosition(); } } - setTimeout(waitForCss, 0); + setTimeout(waitForCss, 0, 0); } dialog.open = true; $(window).trigger('dialog:aftercreate', [dialog, $element, settings]); diff --git a/docroot/core/misc/dismiss.js b/docroot/core/misc/dismiss.js index 06c54a00..7fa95571 100644 --- a/docroot/core/misc/dismiss.js +++ b/docroot/core/misc/dismiss.js @@ -8,11 +8,11 @@ Backdrop.behaviors.dismiss = { attach: function (context, settings) { - $('.messages a.dismiss').click(function(event) { + $('.messages a.dismiss').on('click', function(event) { event.preventDefault(); $(this).parent().fadeOut('fast', function() { - if ($('.l-messages').children(':visible').size() == 0) { + if ($('.l-messages').children(':visible').length == 0) { $('.l-messages').hide(); } }); diff --git a/docroot/core/misc/dropbutton.js b/docroot/core/misc/dropbutton.js index 43032bcc..205b8d89 100644 --- a/docroot/core/misc/dropbutton.js +++ b/docroot/core/misc/dropbutton.js @@ -22,6 +22,46 @@ Backdrop.behaviors.dropButton = { } }; +/** + * Set the min-width of dropbuttons (and their parent) to handle all of the + * link widths. + */ +Backdrop.behaviors.dropButtonWidths = { + attach: function(context, settings) { + function adjustDropButtonWidths() { + var $dropbutton = $(this); + + // Get widest item width. + var widestItem = 0, $item; + $dropbutton.find('li:hidden').each(function() { + // Use a clone element to avoid altering element CSS properties. + $item = $(this).clone().insertAfter($(this)).show().css('visibility','hidden'); + widestItem = Math.max($item.outerWidth(), widestItem); + $item.remove(); + }); + + // Set dropbutton list (