diff --git a/.gitignore b/.gitignore index 7026e200fd..fee6267cf6 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,9 @@ package-lock.json composer.lock /var tsconfig.json +.button-migration/*.log + +# Migration tool runtime state +.button-migration/ +migrations/*/.migration-state/ +*.migration.log diff --git a/composer.json b/composer.json index 97beea181e..05bd875b2a 100644 --- a/composer.json +++ b/composer.json @@ -3,6 +3,12 @@ "license": "(GPL-2.0-only or proprietary)", "type": "project", "description": "Ibexa Admin Ui", + "repositories": [ + { + "type": "vcs", + "url": "https://github.com/ibexa/design-system-twig" + } + ], "replace": { "ezsystems/ezplatform-admin-ui": "*" }, @@ -27,6 +33,8 @@ "ibexa/content-forms": "~6.0.x-dev", "ibexa/core": "~6.0.x-dev", "ibexa/design-engine": "~6.0.x-dev", + "ibexa/design-system-twig": "~6.0.x-dev", + "ibexa/polyfill-php82": "^1.0", "ibexa/rest": "~6.0.x-dev", "ibexa/search": "~6.0.x-dev", "ibexa/twig-components": "~6.0.x-dev", diff --git a/dependencies.json b/dependencies.json new file mode 100644 index 0000000000..9923a337f2 --- /dev/null +++ b/dependencies.json @@ -0,0 +1,11 @@ +{ + "recipesEndpoint": "", + "packages": [ + { + "requirement": "dev-IBX-11332-link-c as 5.0.x-dev", + "repositoryUrl": "https://github.com/ibexa/design-system-twig", + "package": "ibexa/design-system-twig", + "shouldBeAddedAsVCS": false + } + ] +} \ No newline at end of file diff --git a/src/bundle/Resources/encore/ibexa.css.config.js b/src/bundle/Resources/encore/ibexa.css.config.js index 62dfba962e..7fd3ddf71b 100644 --- a/src/bundle/Resources/encore/ibexa.css.config.js +++ b/src/bundle/Resources/encore/ibexa.css.config.js @@ -5,6 +5,7 @@ module.exports = (Encore) => { path.resolve(__dirname, '../public/scss/ibexa-bootstrap.scss'), path.resolve(__dirname, '../public/scss/ibexa.scss'), path.resolve(__dirname, '../public/scss/ui/ibexa-modules.scss'), + path.resolve('./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/ids-assets/dist/css/styles.css'), path.resolve('./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/flatpickr/dist/flatpickr.min.css'), path.resolve( './vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/flatpickr/dist/plugins/confirmDate/confirmDate.css', @@ -18,6 +19,7 @@ module.exports = (Encore) => { ]) .addEntry('ibexa-admin-ui-security-base-css', [ path.resolve(__dirname, '../public/scss/ibexa-bootstrap.scss'), + path.resolve('./vendor/ibexa/admin-ui-assets/src/bundle/Resources/public/vendors/ids-assets/dist/css/styles.css'), path.resolve(__dirname, '../public/scss/ibexa.scss'), ]); }; diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js index af8a99514c..42494971e4 100644 --- a/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js +++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.copy.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, Routing) { - const copyButtons = doc.querySelectorAll('.ibexa-btn--copy-content-type'); + const copyButtons = doc.querySelectorAll('.ids-btn--copy-content-type'); const copyContentType = ({ currentTarget }) => { const contentTypeCopyForm = doc.querySelector('form[name="content_type_copy"]'); const contentTypeIdentifierInput = contentTypeCopyForm.querySelector('#content_type_copy_content_type'); diff --git a/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js b/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js index 6525c48b14..9c5fc33377 100644 --- a/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js +++ b/src/bundle/Resources/public/js/scripts/admin.contenttype.relation.default.location.js @@ -53,7 +53,7 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ }; const resetStartingLocation = ({ currentTarget }) => { const container = currentTarget.closest('.ibexa-default-location'); - const udwBtn = container.querySelector('.ibexa-btn--udw-relation-default-location'); + const udwBtn = container.querySelector('.ids-btn--udw-relation-default-location'); const pathSelector = container.querySelector('.ibexa-default-location__path-selector'); const { relationRootInputSelector } = udwBtn.dataset; @@ -62,7 +62,7 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ pathSelector.classList.remove('ibexa-default-location__path-selector--filled'); }; const attachEvents = (container) => { - const udwBtn = container.querySelector('.ibexa-btn--udw-relation-default-location'); + const udwBtn = container.querySelector('.ids-btn--udw-relation-default-location'); const deleteBtn = container.querySelector(SELECTOR_RESET_STARTING_LOCATION_BTN); const choices = container.querySelectorAll('input[type="radio"]'); @@ -71,10 +71,20 @@ import * as middleEllipsisHelper from '@ibexa-admin-ui/src/bundle/Resources/publ choices.forEach((choice) => choice.addEventListener('change', toggleDisabledState.bind(null, container), false)); }; const toggleDisabledState = (container) => { - const locationBtn = container.querySelector('.ibexa-btn--udw-relation-default-location'); + const locationBtn = container.querySelector('.ids-btn--udw-relation-default-location'); const deleteBtn = container.querySelector(SELECTOR_RESET_STARTING_LOCATION_BTN); const isDisabled = !container.querySelector('input[value="1"]').checked; + // Toggle disabled attribute for native HTML behavior + if (isDisabled) { + locationBtn.setAttribute('disabled', true); + deleteBtn?.setAttribute('disabled', true); + } else { + locationBtn.removeAttribute('disabled'); + deleteBtn?.removeAttribute('disabled'); + } + + // Keep legacy 'disabled' class for backward compatibility with existing CSS locationBtn.classList.toggle('disabled', isDisabled); deleteBtn?.classList.toggle('disabled', isDisabled); }; diff --git a/src/bundle/Resources/public/js/scripts/admin.context.menu.js b/src/bundle/Resources/public/js/scripts/admin.context.menu.js index 1d3c82ee53..03b25f5d95 100644 --- a/src/bundle/Resources/public/js/scripts/admin.context.menu.js +++ b/src/bundle/Resources/public/js/scripts/admin.context.menu.js @@ -7,11 +7,13 @@ const menuButtons = [ ...adaptedItemsContainer.querySelectorAll( - '.ibexa-context-menu__item > .ibexa-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ibexa-split-btn', + '.ibexa-context-menu__item > .ibexa-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ids-btn:not(.ibexa-btn--more), .ibexa-context-menu__item > .ibexa-split-btn', ), ]; const popupMenuElement = adaptedItemsContainer.querySelector('.ibexa-context-menu__item--more .ibexa-multilevel-popup-menu'); const showPopupButton = adaptedItemsContainer.querySelector('.ibexa-btn--more'); + const getButtonLabel = (button) => button.querySelector('.ids-btn__label, .ibexa-btn__label')?.textContent ?? ''; + const getItemButton = (item) => item.querySelector('.ids-btn, .ibexa-btn'); if (!showPopupButton) { return; @@ -24,7 +26,7 @@ return adaptedItemsContainer.querySelector('.ibexa-context-menu__item'); }, onAdapted: (visibleItems, hiddenItems) => { - const hiddenButtonsIds = [...hiddenItems].map((item) => item.querySelector('.ibexa-btn').id); + const hiddenButtonsIds = [...hiddenItems].map((item) => getItemButton(item)?.id).filter(Boolean); const topBranchItems = multilevelPopupMenu.getBranchItems(topBranch); topBranchItems.forEach((branchItem) => { @@ -51,7 +53,7 @@ const mainBtn = menuButton.querySelector('.ibexa-split-btn__main-btn'); const splitBtn = menuButton.querySelector('.ibexa-split-btn__toggle-btn'); const relatedMainBtnId = mainBtn.id; - const mainBtnLabel = mainBtn.querySelector('.ibexa-btn__label').textContent; + const mainBtnLabel = getButtonLabel(mainBtn); const { alternativeMainBtnLabel: mainBtnAlternativeLabel, alternativeMainBtnSublabel: mainBtnAlternativeSublabel, @@ -60,7 +62,7 @@ const subitemsBtns = [...splitBtn.branchElement.querySelectorAll('.ibexa-popup-menu__item-content')]; const subitems = subitemsBtns.map((subitemBtn) => { - const subitemLabel = subitemBtn.querySelector('.ibexa-btn__label').textContent; + const subitemLabel = getButtonLabel(subitemBtn); const relatedSubitemBtnId = subitemBtn.id; return { @@ -108,7 +110,7 @@ } const relatedBtnId = menuButton.id; - const label = menuButton.querySelector('.ibexa-btn__label').textContent; + const label = getButtonLabel(menuButton); return { label, diff --git a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js index 0a89be4347..aaf413933d 100644 --- a/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js +++ b/src/bundle/Resources/public/js/scripts/admin.limitation.pick.js @@ -176,7 +176,7 @@ udwRoot = ReactDOMClient.createRoot(udwContainer); udwRoot.render( React.createElement(ibexa.modules.UniversalDiscovery, { - onConfirm: handleUdwConfirm.bind(this, event.target), + onConfirm: handleUdwConfirm.bind(this, event.currentTarget), onCancel: closeUDW, title, multiple: true, diff --git a/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js b/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js index f63ae54c3e..ef9bff4e12 100644 --- a/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js +++ b/src/bundle/Resources/public/js/scripts/admin.location.add.translation.js @@ -9,7 +9,7 @@ if (!modal) { return; } - const buttonCreate = modal.querySelector('.ibexa-btn--create-translation'); + const buttonCreate = modal.querySelector('.ids-btn--create-translation'); if (!buttonCreate) { return; } diff --git a/src/bundle/Resources/public/js/scripts/admin.location.view.js b/src/bundle/Resources/public/js/scripts/admin.location.view.js index 9690526b75..4a7dea5085 100644 --- a/src/bundle/Resources/public/js/scripts/admin.location.view.js +++ b/src/bundle/Resources/public/js/scripts/admin.location.view.js @@ -29,7 +29,7 @@ import { checkIsContainer } from './helpers/content.type.helper'; bootstrap.Modal.getOrCreateInstance(doc.querySelector('#version-draft-conflict-modal')).hide(); }; const attachModalListeners = (wrapper) => { - const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft'); + const addDraftButton = wrapper.querySelector('.ids-btn--add-draft'); const conflictModal = doc.querySelector('#version-draft-conflict-modal'); if (addDraftButton) { @@ -37,7 +37,7 @@ import { checkIsContainer } from './helpers/content.type.helper'; } wrapper - .querySelectorAll('.ibexa-btn--prevented') + .querySelectorAll('.ids-btn--prevented') .forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false)); if (conflictModal) { diff --git a/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js b/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js index 33fb21d9d9..4e47c55b59 100644 --- a/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js +++ b/src/bundle/Resources/public/js/scripts/admin.notifications.filters.js @@ -1,8 +1,8 @@ (function (global, doc) { const searchForm = doc.querySelector('.ibexa-list-search-form'); const filtersContainerNode = doc.querySelector('.ibexa-list-filters'); - const applyFiltersBtn = filtersContainerNode.querySelector('.ibexa-btn--apply'); - const clearFiltersBtn = filtersContainerNode.querySelector('.ibexa-btn--clear'); + const applyFiltersBtn = filtersContainerNode.querySelector('.ids-btn--apply'); + const clearFiltersBtn = filtersContainerNode.querySelector('.ids-btn--clear'); const statusFilterNode = filtersContainerNode.querySelector('.ibexa-list-filters__item--statuses'); const typeFilterNode = filtersContainerNode.querySelector('.ibexa-list-filters__item--type'); const datetimeFilterNodes = filtersContainerNode.querySelectorAll('.ibexa-list-filters__item--date-time .ibexa-picker'); diff --git a/src/bundle/Resources/public/js/scripts/admin.search.filters.js b/src/bundle/Resources/public/js/scripts/admin.search.filters.js index 7f6b1dcc1c..fbf4651831 100644 --- a/src/bundle/Resources/public/js/scripts/admin.search.filters.js +++ b/src/bundle/Resources/public/js/scripts/admin.search.filters.js @@ -7,8 +7,8 @@ const token = doc.querySelector('meta[name="CSRF-Token"]').content; const siteaccess = doc.querySelector('meta[name="SiteAccess"]').content; const filters = doc.querySelector('.ibexa-filters'); - const clearBtn = filters.querySelector('.ibexa-btn--clear'); - const applyBtn = filters.querySelector('.ibexa-btn--apply'); + const clearBtn = filters.querySelector('.ids-btn--clear'); + const applyBtn = filters.querySelector('.ids-btn--apply'); const contentTypeSelect = doc.querySelector('.ibexa-filters__item--content-type .ibexa-filters__select'); const sectionSelect = doc.querySelector('.ibexa-filters__item--section .ibexa-filters__select'); const lastModifiedSelectNode = doc.querySelector('.ibexa-filters__item--modified .ibexa-filters__select'); @@ -108,6 +108,7 @@ const methodName = isEnabled ? 'removeAttribute' : 'setAttribute'; applyBtn[methodName]('disabled', !isEnabled); + // ids-btn--disabled class no longer needed - native [disabled] attribute handles styling }; const toggleDatesSelectVisibility = (event, select, dateRange) => { const datesRangeNode = doc.querySelector(event.target.dataset.targetSelector); diff --git a/src/bundle/Resources/public/js/scripts/admin.section.list.js b/src/bundle/Resources/public/js/scripts/admin.section.list.js index e0b630d227..997177771e 100644 --- a/src/bundle/Resources/public/js/scripts/admin.section.list.js +++ b/src/bundle/Resources/public/js/scripts/admin.section.list.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient) { - const btns = doc.querySelectorAll('.ibexa-btn--open-udw'); + const btns = doc.querySelectorAll('.ids-btn--open-udw'); const udwContainer = doc.getElementById('react-udw'); let udwRoot = null; const closeUDW = () => udwRoot.unmount(); diff --git a/src/bundle/Resources/public/js/scripts/admin.section.view.js b/src/bundle/Resources/public/js/scripts/admin.section.view.js index 5754137b0a..2dd3d0f25a 100644 --- a/src/bundle/Resources/public/js/scripts/admin.section.view.js +++ b/src/bundle/Resources/public/js/scripts/admin.section.view.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient) { - const btns = doc.querySelectorAll('.ibexa-btn--open-udw'); + const btns = doc.querySelectorAll('.ids-btn--open-udw, .ids-btn--open-udw'); const udwContainer = doc.getElementById('react-udw'); let udwRoot = null; const closeUDW = () => udwRoot.unmount(); diff --git a/src/bundle/Resources/public/js/scripts/admin.trash.js b/src/bundle/Resources/public/js/scripts/admin.trash.js index 9c6ac384f3..bcd7dfc9f0 100644 --- a/src/bundle/Resources/public/js/scripts/admin.trash.js +++ b/src/bundle/Resources/public/js/scripts/admin.trash.js @@ -16,7 +16,7 @@ const { numberOfSubitems } = event.detail; const sendToTrashModal = document.querySelector('.ibexa-modal--trash-location'); const modalBody = sendToTrashModal.querySelector('.modal-body'); - const modalSendToTrashButton = sendToTrashModal.querySelector('.modal-footer .ibexa-btn--confirm-send-to-trash'); + const modalSendToTrashButton = sendToTrashModal.querySelector('.modal-footer .ids-btn--confirm-send-to-trash'); const { contentName } = sendToTrashModal.dataset; if (numberOfSubitems) { diff --git a/src/bundle/Resources/public/js/scripts/admin.trash.list.js b/src/bundle/Resources/public/js/scripts/admin.trash.list.js index c65abaa918..ae57b4b0a3 100644 --- a/src/bundle/Resources/public/js/scripts/admin.trash.list.js +++ b/src/bundle/Resources/public/js/scripts/admin.trash.list.js @@ -17,10 +17,10 @@ const sortDirection = doc.querySelector('#trash_search_sort_direction'); const creatorInput = doc.querySelector('.ibexa-trash-search-form__item--creator .ibexa-trash-search-form__input'); const usersList = doc.querySelector('.ibexa-trash-search-form__item--creator .ibexa-trash-search-form__user-list'); - const resetCreatorBtn = doc.querySelector('.ibexa-btn--reset-creator'); + const resetCreatorBtn = doc.querySelector('.ids-btn--reset-creator'); const searchCreatorInput = doc.querySelector('#trash_search_creator'); const sortableColumns = doc.querySelectorAll('.ibexa-table__sort-column'); - const btns = doc.querySelectorAll('.ibexa-btn--open-udw'); + const btns = doc.querySelectorAll('.ids-btn--open-udw, .ids-btn--open-udw'); const udwContainer = doc.getElementById('react-udw'); const autoSendNodes = doc.querySelectorAll('.ibexa-trash-search-form__item--auto-send'); const errorMessage = Translator.trans(/* @Desc("Cannot fetch user list") */ 'trash.user_list.error', {}, 'ibexa_trash_ui'); diff --git a/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js b/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js index da4114023c..e28b703ad6 100644 --- a/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js +++ b/src/bundle/Resources/public/js/scripts/admin.version.edit.conflict.js @@ -41,5 +41,5 @@ .catch(showErrorNotification); }; - doc.querySelectorAll('.ibexa-btn--content-draft-edit').forEach((button) => button.addEventListener('click', editVersion, false)); + doc.querySelectorAll('.ids-btn--content-draft-edit').forEach((button) => button.addEventListener('click', editVersion, false)); })(window, window.document, window.bootstrap, window.ibexa, window.Translator, window.Routing); diff --git a/src/bundle/Resources/public/js/scripts/button.content.edit.js b/src/bundle/Resources/public/js/scripts/button.content.edit.js index e16ad17bdd..d286f6417b 100644 --- a/src/bundle/Resources/public/js/scripts/button.content.edit.js +++ b/src/bundle/Resources/public/js/scripts/button.content.edit.js @@ -35,14 +35,14 @@ wrapper.innerHTML = modalHtml; const conflictModal = doc.querySelector('#version-draft-conflict-modal'); - const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft'); + const addDraftButton = wrapper.querySelector('.ids-btn--add-draft'); if (addDraftButton) { addDraftButton.addEventListener('click', addDraft, false); } wrapper - .querySelectorAll('.ibexa-btn--prevented') + .querySelectorAll('.ids-btn--prevented') .forEach((btn) => btn.addEventListener('click', (wrapperBtnEvent) => wrapperBtnEvent.preventDefault(), false)); bootstrap.Modal.getOrCreateInstance(conflictModal).show(); @@ -80,5 +80,5 @@ .catch(showErrorNotification); }; - doc.querySelectorAll('.ibexa-btn--content-edit').forEach((button) => button.addEventListener('click', editVersion, false)); + doc.querySelectorAll('.ids-btn--content-edit').forEach((button) => button.addEventListener('click', editVersion, false)); })(window, window.document, window.bootstrap, window.ibexa, window.Translator, window.Routing); diff --git a/src/bundle/Resources/public/js/scripts/button.prevent.default.js b/src/bundle/Resources/public/js/scripts/button.prevent.default.js index 0e9039e75a..7bf575388d 100644 --- a/src/bundle/Resources/public/js/scripts/button.prevent.default.js +++ b/src/bundle/Resources/public/js/scripts/button.prevent.default.js @@ -1,3 +1,3 @@ (function (global, doc) { - doc.querySelectorAll('.ibexa-btn--prevented').forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false)); + doc.querySelectorAll('.ids-btn--prevented').forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false)); })(window, window.document); diff --git a/src/bundle/Resources/public/js/scripts/button.translation.edit.js b/src/bundle/Resources/public/js/scripts/button.translation.edit.js index c6de4dfd00..7181521a01 100644 --- a/src/bundle/Resources/public/js/scripts/button.translation.edit.js +++ b/src/bundle/Resources/public/js/scripts/button.translation.edit.js @@ -2,11 +2,11 @@ class EditTranslation { constructor(config) { this.container = config.container; - this.toggler = config.container.querySelector('.ibexa-btn--translations-list-toggler'); + this.toggler = config.container.querySelector('.ids-btn--translations-list-toggler'); this.extraActionsContainer = config.container.querySelector('.ibexa-extra-actions'); this.closeBtn = config.container.querySelector('.ibexa-extra-actions__close-btn'); this.confirmBtn = config.container.querySelector('.ibexa-extra-actions__confirm-btn'); - this.languagesBtns = config.container.querySelectorAll('.ibexa-btn--select-language'); + this.languagesBtns = config.container.querySelectorAll('.ids-btn--select-language'); this.backdrop = config.backdrop; this.tableNode = null; @@ -64,8 +64,8 @@ this.confirmBtn.dataset.languageCode = languageCode; this.confirmBtn.disabled = false; - this.languagesBtns.forEach((btn) => btn.classList.remove('ibexa-btn--active')); - event.currentTarget.classList.add('ibexa-btn--active'); + this.languagesBtns.forEach((btn) => btn.classList.remove('ids-btn--active')); + event.currentTarget.classList.add('ids-btn--active'); } resetLanguageSelector() { @@ -73,7 +73,7 @@ this.confirmBtn.dataset.languageCode = null; this.confirmBtn.disabled = true; - this.languagesBtns.forEach((btn) => btn.classList.remove('ibexa-btn--active')); + this.languagesBtns.forEach((btn) => btn.classList.remove('ids-btn--active')); } init() { diff --git a/src/bundle/Resources/public/js/scripts/button.trigger.js b/src/bundle/Resources/public/js/scripts/button.trigger.js index bd1092535d..3e93ad4777 100644 --- a/src/bundle/Resources/public/js/scripts/button.trigger.js +++ b/src/bundle/Resources/public/js/scripts/button.trigger.js @@ -2,7 +2,7 @@ doc.addEventListener( 'DOMContentLoaded', () => { - const buttons = doc.querySelectorAll('.ibexa-btn--trigger'); + const buttons = doc.querySelectorAll('.ids-btn--trigger'); const trigger = (event) => { event.preventDefault(); diff --git a/src/bundle/Resources/public/js/scripts/cotf/create.js b/src/bundle/Resources/public/js/scripts/cotf/create.js index d4e938c51c..721a159aea 100644 --- a/src/bundle/Resources/public/js/scripts/cotf/create.js +++ b/src/bundle/Resources/public/js/scripts/cotf/create.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient, Translator, Routing) { - const btns = doc.querySelectorAll('.ibexa-btn--cotf-create'); + const btns = doc.querySelectorAll('.ids-btn--cotf-create'); const udwContainer = doc.getElementById('react-udw'); let udwRoot = null; const closeUDW = () => udwRoot.unmount(); diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js index 117997bd48..6204293e40 100644 --- a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js +++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_author.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa) { - const SELECTOR_REMOVE_AUTHOR = '.ibexa-btn--remove-author'; + const SELECTOR_REMOVE_AUTHOR = '.ids-btn--remove-author'; const SELECTOR_AUTHOR = '.ibexa-data-source__author'; const SELECTOR_FIELD = '.ibexa-field-edit--ibexa_author'; const SELECTOR_LABEL = '.ibexa-data-source__label'; @@ -106,7 +106,7 @@ const container = event.target.closest(SELECTOR_FIELD); const checkboxes = container.querySelectorAll('.ibexa-input--checkbox'); const isAnyCheckboxSelected = [...checkboxes].some((checkbox) => checkbox.checked); - const bulkDeleteButton = container.querySelector('.ibexa-btn--bulk-remove-author'); + const bulkDeleteButton = container.querySelector('.ids-btn--bulk-remove-author'); bulkDeleteButton.toggleAttribute('disabled', !isAnyCheckboxSelected); } @@ -114,7 +114,7 @@ removeSelectedItems(event) { const container = event.target.closest(SELECTOR_FIELD); const selectedCheckboxes = container.querySelectorAll('.ibexa-input--checkbox:checked'); - const bulkDeleteButton = container.querySelector('.ibexa-btn--bulk-remove-author'); + const bulkDeleteButton = container.querySelector('.ids-btn--bulk-remove-author'); selectedCheckboxes.forEach((checkbox) => checkbox.closest(SELECTOR_AUTHOR).remove()); @@ -123,7 +123,7 @@ const authorsRowsExist = !!container.querySelector(SELECTOR_AUTHOR); if (!authorsRowsExist) { - container.querySelector('.ibexa-btn--add-author').click(); + container.querySelector('.ids-btn--add-author').click(); } this.updateDisabledState(container); @@ -252,13 +252,13 @@ }, { isValueValidator: false, - selector: '.ibexa-btn--bulk-remove-author', + selector: '.ids-btn--bulk-remove-author', eventName: 'click', callback: 'removeSelectedItems', }, { isValueValidator: false, - selector: '.ibexa-btn--add-author', + selector: '.ids-btn--add-author', eventName: 'click', callback: 'addItem', }, diff --git a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js index 00825473c5..c4e789d183 100644 --- a/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js +++ b/src/bundle/Resources/public/js/scripts/fieldType/ibexa_gmap_location.js @@ -454,7 +454,7 @@ const latitudeInput = field.querySelector(SELECTOR_LAT_INPUT); const areCoordsSet = !!longitudeInput.value.length && !!latitudeInput.value.length; const locateMeBtn = field.querySelector('.ibexa-data-source__locate-me .btn'); - const searchBtn = field.querySelector('.ibexa-btn--search-by-address'); + const searchBtn = field.querySelector('.ids-btn--search-by-address'); const mapContainer = field.querySelector('.ibexa-data-source__map'); let mapConfig = { zoom: areCoordsSet ? 15 : 1, diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js index a2d8d1287e..24eefe1cff 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.edit.js @@ -1,5 +1,5 @@ (function (global, doc) { - const editButtons = doc.querySelectorAll('.ibexa-btn--edit'); + const editButtons = doc.querySelectorAll('.ids-btn--edit'); editButtons.forEach((editButton) => { const languageRadioOption = doc.querySelector( diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js index d04f59264b..60e32afcc3 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.hide.js @@ -1,5 +1,5 @@ (function (global, doc, bootstrap) { - const hideButton = doc.querySelector('.ibexa-btn--hide'); + const hideButton = doc.querySelector('.ids-btn--hide'); const modal = doc.querySelector('#hide-content-modal'); const form = doc.querySelector('form[name="content_visibility_update"]'); const visiblity = doc.querySelector('#content_visibility_update_visible'); @@ -9,7 +9,7 @@ } if (modal) { - modal.querySelector('.ibexa-btn--confirm').addEventListener('click', () => { + modal.querySelector('.ids-btn--confirm').addEventListener('click', () => { visiblity.value = 0; form.submit(); }); diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js index b82f904cd1..3c656ec67a 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/content.reveal.js @@ -1,5 +1,5 @@ (function (global, doc) { - const revealButton = doc.querySelector('.ibexa-btn--reveal'); + const revealButton = doc.querySelector('.ids-btn--reveal'); const form = doc.querySelector('form[name="content_visibility_update"]'); const visiblity = doc.querySelector('#content_visibility_update_visible'); diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js index 437a1b5f8c..c9ff0a4a8d 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/contenttype.edit.js @@ -1,5 +1,5 @@ (function (global, doc) { - const editButton = doc.querySelector('.ibexa-btn--edit'); + const editButton = doc.querySelector('.ids-btn--edit'); const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit.ibexa-extra-actions--prevent-show .ibexa-input--radio'); const editActions = doc.querySelector('.ibexa-extra-actions--edit'); const btns = editActions.querySelectorAll('.form-check [type="radio"]'); diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js index 5b8d3029e8..e70a3d5e03 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js @@ -21,7 +21,7 @@ doc.body.dispatchEvent(event); }; const attachModalListeners = (wrapper, form, btns) => { - const addDraftButton = wrapper.querySelector('.ibexa-btn--add-draft'); + const addDraftButton = wrapper.querySelector('.ids-btn--add-draft'); const conflictModal = doc.querySelector('#version-draft-conflict-modal'); if (addDraftButton) { @@ -29,7 +29,7 @@ } wrapper - .querySelectorAll('.ibexa-btn--prevented') + .querySelectorAll('.ids-btn--prevented') .forEach((btn) => btn.addEventListener('click', (event) => event.preventDefault(), false)); if (conflictModal) { diff --git a/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js b/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js index d2a8204ced..19dd2c8aff 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/btn/user.edit.js @@ -1,5 +1,5 @@ (function (global, doc) { - const editButton = doc.querySelector('.ibexa-btn--edit-user'); + const editButton = doc.querySelector('.ids-btn--edit-user'); const languageRadioOption = doc.querySelector('.ibexa-extra-actions--edit-user.ibexa-extra-actions--prevent-show .ibexa-input--radio'); const editActions = doc.querySelector('.ibexa-extra-actions--edit-user'); diff --git a/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js b/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js index e531ccf33c..e36d02a516 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/extra.actions.js @@ -5,9 +5,9 @@ import { getInstance } from '@ibexa-admin-ui/src/bundle/Resources/public/js/scri const CLASS_EXPANDED = 'ibexa-context-menu--expanded'; const CLASS_PREVENT_SHOW = 'ibexa-extra-actions--prevent-show'; const closeBtns = doc.querySelectorAll( - '.ibexa-extra-actions .ibexa-btn--close, .ibexa-extra-actions .ibexa-extra-actions__btn--cancel', + '.ibexa-extra-actions .ids-btn--close, .ibexa-extra-actions .ibexa-extra-actions__btn--cancel', ); - const btns = [...doc.querySelectorAll('.ibexa-btn--extra-actions')]; + const btns = [...doc.querySelectorAll('.ids-btn--extra-actions, .ids-btn--extra-actions')]; const menu = doc.querySelector('.ibexa-context-menu'); const backdrop = new ibexa.core.Backdrop(); const formsInitialData = new Map(); diff --git a/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js b/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js index 48fa8891db..9ed57d203b 100644 --- a/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js +++ b/src/bundle/Resources/public/js/scripts/sidebar/side.panel.js @@ -1,7 +1,7 @@ (function (global, doc, ibexa) { const CLASS_HIDDEN = 'ibexa-side-panel--hidden'; const sidePanelCloseBtns = doc.querySelectorAll( - '.ibexa-side-panel .ibexa-btn--close, .ibexa-side-panel .ibexa-side-panel__btn--cancel', + '.ibexa-side-panel .ids-btn--close, .ibexa-side-panel .ibexa-side-panel__btn--cancel', ); const sidePanelTriggers = [...doc.querySelectorAll('.ibexa-side-panel-trigger')]; const panelBackdrops = new Map(); diff --git a/src/bundle/Resources/public/js/scripts/udw/copy.js b/src/bundle/Resources/public/js/scripts/udw/copy.js index 3378b5b0f8..91f33b85dd 100644 --- a/src/bundle/Resources/public/js/scripts/udw/copy.js +++ b/src/bundle/Resources/public/js/scripts/udw/copy.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient, Translator) { - const btns = doc.querySelectorAll('.ibexa-btn--udw-copy'); + const btns = doc.querySelectorAll('.ids-btn--udw-copy'); const form = doc.querySelector('form[name="location_copy"]'); const input = form.querySelector('#location_copy_new_parent_location'); const udwContainer = doc.getElementById('react-udw'); diff --git a/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js b/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js index fa1670e5ca..47853926be 100644 --- a/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js +++ b/src/bundle/Resources/public/js/scripts/udw/copy_subtree.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient, Translator) { - const btns = doc.querySelectorAll('.ibexa-btn--udw-copy-subtree'); + const btns = doc.querySelectorAll('.ids-btn--udw-copy-subtree'); const form = doc.querySelector('form[name="location_copy_subtree"]'); const input = form.querySelector('#location_copy_subtree_new_parent_location'); const udwContainer = doc.querySelector('#react-udw'); diff --git a/src/bundle/Resources/public/js/scripts/udw/move.js b/src/bundle/Resources/public/js/scripts/udw/move.js index 731872e2ef..35731284a3 100644 --- a/src/bundle/Resources/public/js/scripts/udw/move.js +++ b/src/bundle/Resources/public/js/scripts/udw/move.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient, Translator) { - const btns = doc.querySelectorAll('.ibexa-btn--udw-move'); + const btns = doc.querySelectorAll('.ids-btn--udw-move'); const form = doc.querySelector('form[name="location_move"]'); if (!form) { diff --git a/src/bundle/Resources/public/js/scripts/udw/swap.js b/src/bundle/Resources/public/js/scripts/udw/swap.js index fd6a59159c..66685ada98 100644 --- a/src/bundle/Resources/public/js/scripts/udw/swap.js +++ b/src/bundle/Resources/public/js/scripts/udw/swap.js @@ -1,5 +1,5 @@ (function (global, doc, ibexa, React, ReactDOMClient, Translator) { - const btns = doc.querySelectorAll('.ibexa-btn--udw-swap'); + const btns = doc.querySelectorAll('.ids-btn--udw-swap'); const form = doc.querySelector('form[name="location_swap"]'); if (!form) { diff --git a/src/bundle/Resources/public/scss/_adaptive-filters.scss b/src/bundle/Resources/public/scss/_adaptive-filters.scss index 308814b91e..daafae848e 100644 --- a/src/bundle/Resources/public/scss/_adaptive-filters.scss +++ b/src/bundle/Resources/public/scss/_adaptive-filters.scss @@ -170,7 +170,7 @@ } } - &--fake.ibexa-btn.ibexa-btn { + &--fake:is(.ibexa-btn, .ids-btn) { height: 0; padding-top: 0; padding-bottom: 0; diff --git a/src/bundle/Resources/public/scss/_buttons.scss b/src/bundle/Resources/public/scss/_buttons.scss index 84755f8d9b..18b826e5c2 100644 --- a/src/bundle/Resources/public/scss/_buttons.scss +++ b/src/bundle/Resources/public/scss/_buttons.scss @@ -589,7 +589,7 @@ } } -.ibexa-btn--content-edit { +.ids-btn--content-edit { background-color: transparent; cursor: pointer; } @@ -603,3 +603,9 @@ button:focus { outline: 0; } + +a.ids-btn { + &:hover { + text-decoration: none; + } +} diff --git a/src/bundle/Resources/public/scss/_context-menu.scss b/src/bundle/Resources/public/scss/_context-menu.scss index 812536c808..6d60cabce5 100644 --- a/src/bundle/Resources/public/scss/_context-menu.scss +++ b/src/bundle/Resources/public/scss/_context-menu.scss @@ -37,7 +37,8 @@ &--more { position: relative; - .ibexa-btn--more { + .ibexa-btn--more, + .ibexa-btn--more.ids-btn { align-items: center; height: calculateRem(48px); } diff --git a/src/bundle/Resources/public/scss/_icons.scss b/src/bundle/Resources/public/scss/_icons.scss index ec7b1b6eed..d0111e3d8d 100644 --- a/src/bundle/Resources/public/scss/_icons.scss +++ b/src/bundle/Resources/public/scss/_icons.scss @@ -67,7 +67,7 @@ } } -.ibexa-btn--extra-actions { +.ids-btn--extra-actions { .ibexa-icon { pointer-events: none; } diff --git a/src/bundle/Resources/public/scss/_modals.scss b/src/bundle/Resources/public/scss/_modals.scss index 5419570f89..242dc3497b 100644 --- a/src/bundle/Resources/public/scss/_modals.scss +++ b/src/bundle/Resources/public/scss/_modals.scss @@ -25,6 +25,10 @@ & { padding: calculateRem(2px); } + + &.ids-btn { + top: calculateRem(22px); + } } } diff --git a/src/bundle/Resources/public/scss/_side-panel.scss b/src/bundle/Resources/public/scss/_side-panel.scss index 06d6358b55..5be29059be 100644 --- a/src/bundle/Resources/public/scss/_side-panel.scss +++ b/src/bundle/Resources/public/scss/_side-panel.scss @@ -29,16 +29,13 @@ &__footer { display: flex; align-items: center; + gap: calculateRem(16px); box-shadow: 0 0 calculateRem(16px) 0 rgba($ibexa-color-dark, 0.16); z-index: 1000; width: calculateRem(516px); position: fixed; bottom: 0; - .ibexa-btn { - margin-right: calculateRem(16px); - } - .ibexa-notifications-modal__footer { width: calculateRem(516px); } diff --git a/src/bundle/Resources/public/scss/_split-button.scss b/src/bundle/Resources/public/scss/_split-button.scss index 86c17ec5de..f16ca352ac 100644 --- a/src/bundle/Resources/public/scss/_split-button.scss +++ b/src/bundle/Resources/public/scss/_split-button.scss @@ -16,6 +16,12 @@ border-bottom-right-radius: 0; } + &__main-btn.ids-btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + height: calculateRem(48px); + } + &__split { display: none; z-index: 2; @@ -27,21 +33,30 @@ border-top-left-radius: 0; border-bottom-left-radius: 0; + .ids-icon, .ibexa-icon { transition: all $ibexa-admin-transition-duration $ibexa-admin-transition; } &--subitems-opened { + .ids-icon, .ibexa-icon { transform: rotate(180deg); } } } + &__toggle-btn.ids-btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + height: calculateRem(48px); + } + &--primary { background-image: $ibexa-gradient-danger-primary; border-radius: $ibexa-border-radius; + .ids-btn.ids-btn--primary, .ibexa-btn.ibexa-btn--primary { background-image: none; } diff --git a/src/bundle/Resources/public/scss/_trash-search-form.scss b/src/bundle/Resources/public/scss/_trash-search-form.scss index d8e1c2ac2e..5152e50116 100644 --- a/src/bundle/Resources/public/scss/_trash-search-form.scss +++ b/src/bundle/Resources/public/scss/_trash-search-form.scss @@ -80,13 +80,13 @@ &.ibexa-input.form-control:disabled { background-color: $ibexa-color-white; - & + .ibexa-btn--reset-creator { + & + .ids-btn--reset-creator { display: block; } } } - .ibexa-btn--reset-creator { + .ids-btn--reset-creator { display: none; position: absolute; right: 0; diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss b/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss index ac813b4c86..da193cbf7e 100644 --- a/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss +++ b/src/bundle/Resources/public/scss/fieldType/edit/_base-field.scss @@ -49,16 +49,18 @@ align-self: flex-end; align-items: center; - &--enable { - display: inline-flex; + .ibexa-icon { + margin-right: calculateRem(8px); } + } - &--disable { - display: none; + &__distraction-free-mode-btns { + .ibexa-field-edit__distraction-free-mode-control-btn--enable { + display: inline-flex; } - .ibexa-icon { - margin-right: calculateRem(8px); + .ibexa-field-edit__distraction-free-mode-control-btn--disable { + display: none; } } @@ -175,12 +177,14 @@ &__distraction-free-mode-control-btn { margin: 0; + } - &--enable { + &__distraction-free-mode-btns { + .ibexa-field-edit__distraction-free-mode-control-btn--enable { display: none; } - &--disable { + .ibexa-field-edit__distraction-free-mode-control-btn--disable { display: inline-flex; } } diff --git a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss index eaaa888459..d3c08d61e0 100644 --- a/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss +++ b/src/bundle/Resources/public/scss/fieldType/edit/_ibexa_gmap_location.scss @@ -85,7 +85,7 @@ width: 100%; } - .ibexa-btn--locate-me { + .ids-btn--locate-me { padding: calculateRem(13px); border: calculateRem(1px) solid $ibexa-color-dark-200; border-left: none; @@ -97,7 +97,7 @@ } } - .ibexa-btn--search-by-address { + .ids-btn--search-by-address { position: absolute; top: 0; left: 0; diff --git a/src/bundle/Resources/views/themes/admin/account/bookmarks/list.html.twig b/src/bundle/Resources/views/themes/admin/account/bookmarks/list.html.twig index 273bf304d0..dfea479f5c 100644 --- a/src/bundle/Resources/views/themes/admin/account/bookmarks/list.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/bookmarks/list.html.twig @@ -55,16 +55,15 @@ {% set col_action_btns %} {% if bookmark.userCanEdit %} - + /> {% endif %} {% endset %} @@ -93,7 +92,7 @@ { }, ], body_rows, - actions: form_widget(form_remove.remove, {'attr': {'class': 'btn ibexa-btn ibexa-btn--ghost ibexa-btn--small', 'disabled': true} }), + actions: form_widget(form_remove.remove, {'attr': {'class': 'ids-btn ids-btn--tertiary-alt ids-btn--small', 'disabled': true} }), empty_table_info_text: 'bookmark.list.empty'|trans|desc('You have no bookmarks yet. Your bookmarks will show up here.'), } %} {{ form_end(form_remove) }} diff --git a/src/bundle/Resources/views/themes/admin/account/bookmarks/toggle_switch.html.twig b/src/bundle/Resources/views/themes/admin/account/bookmarks/toggle_switch.html.twig index f47ab82750..a883af5c5d 100644 --- a/src/bundle/Resources/views/themes/admin/account/bookmarks/toggle_switch.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/bookmarks/toggle_switch.html.twig @@ -1,20 +1,20 @@ {% trans_default_domain 'ibexa_locationview' %}
-
+
If you don’t receive the email, double check that you entered the correct email address and check your spam folder.
') }}{{ 'ezplatform.forgot_password.reset_your_password.reason.migration'|trans|desc('Your password has expired, change it.') }}
@@ -18,7 +22,7 @@ - {{ form_widget(form_forgot_user_password.reset, {'attr': {'class': 'btn ibexa-btn ibexa-btn--primary ibexa-login__btn--reset-password'}}) }} + {{ form_widget(form_forgot_user_password.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn--reset-password'}}) }} {{ form_end(form_forgot_user_password) }} {% endif %} diff --git a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig index 6bad4231c4..efa32ef3b0 100644 --- a/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/forgot_password/index_with_login.html.twig @@ -12,7 +12,7 @@ - {{ form_widget(form_forgot_user_password_with_login.reset, {'attr': {'class': 'btn ibexa-btn ibexa-btn--primary ibexa-login__btn ibexa-login__btn--reset-password'}}) }} + {{ form_widget(form_forgot_user_password_with_login.reset, {'attr': {'class': 'ids-btn ids-btn--primary ids-btn--medium ibexa-login__btn ibexa-login__btn--reset-password'}}) }} {{ form_end(form_forgot_user_password_with_login) }} {% endif %} diff --git a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig index 1b3ccfb103..bbe9b417ae 100644 --- a/src/bundle/Resources/views/themes/admin/account/login/index.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/login/index.html.twig @@ -66,14 +66,15 @@ {% endblock %} {% block login_form_buttons %} - + diff --git a/src/bundle/Resources/views/themes/admin/account/notifications/filters.html.twig b/src/bundle/Resources/views/themes/admin/account/notifications/filters.html.twig index 5820efab60..7619342d2d 100644 --- a/src/bundle/Resources/views/themes/admin/account/notifications/filters.html.twig +++ b/src/bundle/Resources/views/themes/admin/account/notifications/filters.html.twig @@ -19,20 +19,23 @@{{ 'language.modal.message'|trans|desc('Delete the languages?') }}
{% endblock %} {% block footer_content %} - {{ form_widget(deleteForm.delete, { 'attr': {'class': 'btn ibexa-btn ibexa-btn--primary'} }) }} - + {% endblock %} {% endembed %} diff --git a/src/bundle/Resources/views/themes/admin/language/tab/languages.html.twig b/src/bundle/Resources/views/themes/admin/language/tab/languages.html.twig index ab47eae92b..98fff634dd 100644 --- a/src/bundle/Resources/views/themes/admin/language/tab/languages.html.twig +++ b/src/bundle/Resources/views/themes/admin/language/tab/languages.html.twig @@ -56,15 +56,14 @@ {% set col_raw %} {% if can_administrate %} - - - + variant="button" + type="tertiary-alt" + icon="edit" + icon_size="small" + title="{{ 'language.edit'|trans|desc('Edit') }}" + /> {% endif %} {% endset %} {% set body_row_cols = body_row_cols|merge([{ @@ -96,21 +95,18 @@ {% block actions %} {% if can_administrate %} {% set modal_data_target = 'delete-languages-modal' %} - + {{ 'language.delete'|trans|desc('Delete') }} + {% include '@ibexadesign/ui/modal/bulk_delete_confirmation.html.twig' with { id: modal_data_target, message: 'language.modal.message'|trans|desc('Delete the languages?'), diff --git a/src/bundle/Resources/views/themes/admin/limitation/udw_limitation_value.html.twig b/src/bundle/Resources/views/themes/admin/limitation/udw_limitation_value.html.twig index 79d0021a7a..ec2a4e92fb 100755 --- a/src/bundle/Resources/views/themes/admin/limitation/udw_limitation_value.html.twig +++ b/src/bundle/Resources/views/themes/admin/limitation/udw_limitation_value.html.twig @@ -3,20 +3,22 @@ {{ form_errors(form.limitationValues) }} {{ form_widget(form.limitationValues) }} - + data-value-template="{{ value_template_attr }}" + > + {{ 'role.policy.limitation.location.udw_button'|trans({}, 'ibexa_content_forms_role')|desc('Select Locations') }} +