Skip to content

Commit 0a51772

Browse files
committed
After CR
1 parent 7c2f972 commit 0a51772

File tree

11 files changed

+74
-99
lines changed

11 files changed

+74
-99
lines changed

src/bundle/Resources/public/js/scripts/admin.location.view.js

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,22 @@
88
const queryString = window.location.search;
99
const urlParams = new URLSearchParams(queryString);
1010
const publishedContentId = urlParams.get('publishedContentId');
11+
const sendForm = () => {
12+
doc.querySelector('#form_subitems_content_edit_create').click();
13+
};
14+
const updateForm = (contentId, languageCode) => {
15+
doc.querySelector('#form_subitems_content_edit_content_info').value = contentId;
16+
doc.querySelector(`#form_subitems_content_edit_language_${languageCode}`).checked = true;
17+
};
1118
const handleEditItem = (content, location, isLanguageSelectorOpened) => {
1219
const contentId = content._id;
1320
const locationId = location._id;
1421
const languageCode = content.mainLanguageCode;
1522
const checkVersionDraftLink = Routing.generate('ibexa.version_draft.has_no_conflict', { contentId, languageCode, locationId });
16-
const updateForm = () => {
17-
doc.querySelector('#form_subitems_content_edit_content_info').value = contentId;
18-
doc.querySelector(`#form_subitems_content_edit_language_${languageCode}`).checked = true;
19-
};
23+
2024
const addDraft = () => {
21-
updateForm();
22-
doc.querySelector('#form_subitems_content_edit_create').click();
25+
updateForm(contentId, languageCode);
26+
sendForm();
2327
bootstrap.Modal.getOrCreateInstance(doc.querySelector('#version-draft-conflict-modal')).hide();
2428
};
2529
const attachModalListeners = (wrapper) => {
@@ -74,10 +78,10 @@
7478
if (response.status === 409) {
7579
response.text().then(showModal);
7680
} else if (response.status === 200) {
77-
updateForm();
81+
updateForm(contentId, languageCode);
7882

7983
if (!isLanguageSelectorOpened) {
80-
doc.querySelector('#form_subitems_content_edit_create').click();
84+
sendForm();
8185
}
8286
}
8387
})
@@ -205,7 +209,7 @@
205209
doc.body.addEventListener(
206210
'ibexa-sub-items:submit-version-edit-form',
207211
() => {
208-
doc.querySelector('#form_subitems_content_edit_create').click();
212+
sendForm();
209213
},
210214
false,
211215
);

src/bundle/Resources/public/js/scripts/sidebar/btn/location.edit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
attachModalListeners(wrapper, form, btns);
4747
};
4848
const changeHandler = (form, btns, event) => {
49-
const sendImmediately = event?.detail?.sendImmediately;
49+
const sendImmediately = event?.detail?.sendImmediately ?? false;
5050
const contentIdInput = form.querySelector('.ibexa-extra-actions__form-field--content-info');
5151
const locationInput = form.querySelector('.ibexa-extra-actions__form-field--location');
5252
const contentId = contentIdInput.value;

src/bundle/Resources/translations/ibexa_locationview.en.xliff

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,8 @@
7777
<note>key: edit.languages.edit</note>
7878
</trans-unit>
7979
<trans-unit id="36c14ac08f24f86dbd38979c15f7ddaa9447d8c8" resname="instant.filter.languages.placeholder">
80-
<source>instant.filter.languages.placeholder</source>
81-
<target state="new">instant.filter.languages.placeholder</target>
80+
<source>Search...</source>
81+
<target state="new">Search...</target>
8282
<note>key: instant.filter.languages.placeholder</note>
8383
</trans-unit>
8484
<trans-unit id="de8bb1e6f538f44a79b62917155d15d17691211c" resname="instant.filter.languages.select_language.desc">

src/bundle/Resources/translations/ibexa_sub_items.en.xliff

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,6 @@
201201
<target state="new">Hide</target>
202202
<note>key: hide_locations_btn.label</note>
203203
</trans-unit>
204-
<trans-unit id="36c14ac08f24f86dbd38979c15f7ddaa9447d8c8" resname="instant.filter.languages.placeholder">
205-
<source>Search...</source>
206-
<target state="new">Search...</target>
207-
<note>key: instant.filter.languages.placeholder</note>
208-
</trans-unit>
209204
<trans-unit id="de8bb1e6f538f44a79b62917155d15d17691211c" resname="instant.filter.languages.select_language.desc">
210205
<source>Languages</source>
211206
<target state="new">Languages</target>

src/bundle/Resources/translations/ibexa_universal_discovery_widget.en.xliff

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,11 @@
191191
<target state="new">Items already added to the list are marked as selected and unable to deselect.</target>
192192
<note>key: init_selected_locations.alert.title</note>
193193
</trans-unit>
194+
<trans-unit id="36c14ac08f24f86dbd38979c15f7ddaa9447d8c8" resname="instant.filter.languages.placeholder">
195+
<source>Search...</source>
196+
<target state="new">Search...</target>
197+
<note>key: instant.filter.languages.placeholder</note>
198+
</trans-unit>
194199
<trans-unit id="2d4febe56a341671c069ff47b6e6adfd2bba005c" resname="limitation.pick.error">
195200
<source>Could not fetch content names</source>
196201
<target state="new">Could not fetch content names</target>

src/bundle/Resources/views/themes/admin/content/widget/content_edit.html.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33

44
{% set data_actions = data_actions|default('edit') %}
55
{% set action = action is defined ? action : path('ibexa.content.edit') %}
6-
{% set checkIsPreventShow = form.language.vars.choices|length == 1 %}
6+
{% set check_is_prevent_show = form.language.vars.choices|length == 1 %}
77

88
{% embed '@ibexadesign/ui/component/edit_content_translation_select.html.twig' with {
99
title: 'content.edit.select_language'|trans|desc('Select translation'),
10-
hasSearch: form.language.vars.choices|length >= 10,
10+
has_search: form.language.vars.choices|length >= 10,
1111
filter_placeholder: 'instant.filter.languages.placeholder'|trans|desc('Search...'),
1212
filter_description: 'instant.filter.languages.select_language.desc'|trans|desc('Languages'),
13-
extra_class: checkIsPreventShow ? 'ibexa-extra-actions--prevent-show',
13+
extra_class: check_is_prevent_show ? 'ibexa-extra-actions--prevent-show',
1414
data_attr: {
1515
'data-actions': data_actions
1616
},

src/bundle/Resources/views/themes/admin/ui/component/edit_content_translation_select.html.twig

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33
{% set title = title|default('') %}
44
{% set filter_placeholder = filter_placeholder|default('') %}
55
{% set filter_description = filter_description|default('') %}
6-
{% set hasSearch = hasSearch|default(true) %}
76
{% set extra_class = extra_class|default('') %}
7+
88
{% set container_attr = {
99
class: ('ibexa-extra-actions ibexa-extra-actions--edit ibexa-extra-actions--hidden '
10-
~ (hasSearch ? 'ibexa-extra-actions--has-search ')
10+
~ (has_search ? 'ibexa-extra-actions--has-search ')
1111
~ extra_class),
1212
}|merge(data_attr|default({})) %}
1313

1414
<div {{ html.attributes(container_attr) }}>
15-
{% block before_body %}
16-
{% endblock %}
15+
{% block before_body %}{% endblock %}
1716

1817
{% block header %}
1918
{% if title %}
@@ -26,7 +25,7 @@
2625
{% block content %}
2726
<div class="ibexa-extra-actions__content">
2827
<div class="ibexa-instant-filter">
29-
<div class="ibexa-instant-filter__input-wrapper {% if not hasSearch %}ibexa-instant-filter__input-wrapper--hidden{% endif %}">
28+
<div class="ibexa-instant-filter__input-wrapper {% if not has_search %}ibexa-instant-filter__input-wrapper--hidden{% endif %}">
3029
<input
3130
type="text"
3231
class="ibexa-instant-filter__input ibexa-input ibexa-input--text form-control"
@@ -40,8 +39,7 @@
4039
</div>
4140
{% endif %}
4241

43-
{% block content_items %}
44-
{% endblock %}
42+
{% block content_items %}{% endblock %}
4543
</div>
4644
</div>
4745
{% endblock %}
@@ -52,6 +50,5 @@
5250
</div>
5351
{% endblock %}
5452

55-
{% block after_body %}
56-
{% endblock %}
57-
</div>
53+
{% block after_body %}{% endblock %}
54+
</div>

src/bundle/Resources/views/themes/admin/ui/edit_translation_button.html.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131

3232
{% embed '@ibexadesign/ui/component/edit_content_translation_select.html.twig' with {
3333
title: 'edit_translation.languages.select_language_title'|trans|desc('Select translation'),
34-
hasSearch: translations|length >= 10,
34+
has_search: translations|length >= 10,
3535
filter_placeholder: 'edit_translation.languages.filter.placeholder'|trans|desc('Search...'),
3636
filter_description: 'edit_translation.languages.filter.description'|trans|desc('Languages'),
3737
data_attr: {

src/bundle/ui-dev/src/modules/sub-items/components/sub-items-list/instant.filter.component.js

Lines changed: 15 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,32 @@
1-
import React, { useEffect, useState, useRef } from 'react';
1+
import React, { useState, useMemo } from 'react';
22
import PropTypes from 'prop-types';
33

44
import { getTranslator } from '@ibexa-admin-ui/src/bundle/Resources/public/js/scripts/helpers/context.helper';
55
import { createCssClassNames } from '@ibexa-admin-ui-modules/common/helpers/css.class.names';
66

7-
const FILTER_TIMEOUT = 200;
8-
97
const InstantFilter = (props) => {
108
const Translator = getTranslator();
11-
const _refInstantFilter = useRef(null);
129
const [filterQuery, setFilterQuery] = useState('');
13-
const [itemsMap, setItemsMap] = useState([]);
1410
const searchInputWrapperClassName = createCssClassNames({
1511
'ibexa-instant-filter__input-wrapper': true,
16-
'ibexa-instant-filter__input-wrapper--hidden': !props.hasSearchEnabled,
12+
'ibexa-instant-filter__input-wrapper--hidden': !props.isSearchEnabled,
1713
});
18-
let filterTimeout = null;
19-
20-
useEffect(() => {
21-
const items = [..._refInstantFilter.current.querySelectorAll('.ibexa-instant-filter__item')];
22-
const itemsMapNext = items.map((item) => ({
23-
label: item.textContent.toLowerCase(),
24-
element: item,
25-
}));
14+
const filteredItems = useMemo(() => {
15+
if (!filterQuery) {
16+
return props.items;
17+
}
2618

27-
setItemsMap(itemsMapNext);
28-
}, [props.items]);
29-
30-
useEffect(() => {
3119
const filterQueryLowerCase = filterQuery.toLowerCase();
3220

33-
filterTimeout = window.setTimeout(() => {
34-
itemsMap.forEach((item) => {
35-
const methodName = item.label.includes(filterQueryLowerCase) ? 'removeAttribute' : 'setAttribute';
36-
37-
item.element[methodName]('hidden', true);
38-
});
39-
}, FILTER_TIMEOUT);
21+
return props.items.filter((item) => {
22+
const itemLabelLowerCase = item.label.toLowerCase();
4023

41-
return () => {
42-
window.clearTimeout(filterTimeout);
43-
};
44-
}, [filterQuery]);
24+
return itemLabelLowerCase.includes(filterQueryLowerCase);
25+
});
26+
}, [props.items, filterQuery]);
4527

4628
return (
47-
<div className="ibexa-instant-filter" ref={_refInstantFilter}>
29+
<div className="ibexa-instant-filter">
4830
<div className={searchInputWrapperClassName}>
4931
<input
5032
type="text"
@@ -58,7 +40,7 @@ const InstantFilter = (props) => {
5840
{Translator.trans(/*@Desc("Languages")*/ 'instant.filter.languages.select_language.desc', {}, 'ibexa_sub_items')}
5941
</div>
6042
<div className="ibexa-instant-filter__items">
61-
{props.items.map((item) => {
43+
{filteredItems.map((item) => {
6244
const radioId = `item_${item.value}`;
6345
const labelClassName = createCssClassNames({
6446
'form-check-label': true,
@@ -91,14 +73,14 @@ const InstantFilter = (props) => {
9173
};
9274

9375
InstantFilter.propTypes = {
94-
hasSearchEnabled: PropTypes.bool,
76+
isSearchEnabled: PropTypes.bool,
9577
activeLanguage: PropTypes.string,
9678
items: PropTypes.array,
9779
handleItemChange: PropTypes.func,
9880
};
9981

10082
InstantFilter.defaultProps = {
101-
hasSearchEnabled: true,
83+
isSearchEnabled: true,
10284
activeLanguage: '',
10385
items: [],
10486
handleItemChange: () => {},

src/bundle/ui-dev/src/modules/sub-items/components/sub-items-list/language.selector.compoment.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ const LanguageSelector = (props) => {
1313
const discardBtnRef = useRef(null);
1414
const submitBtnRef = useRef(null);
1515
const [activeLanguage, setActiveLanguage] = useState('');
16-
const hasSearchEnabled = props.languageItems.length >= MIN_ITEMS_WITH_SEARCH;
16+
const isSearchEnabled = props.languageItems.length >= MIN_ITEMS_WITH_SEARCH;
1717
const className = createCssClassNames({
1818
'c-language-selector': true,
1919
'ibexa-extra-actions': true,
2020
'ibexa-extra-actions--edit': true,
2121
'ibexa-extra-actions--hidden': !props.isOpen,
22-
'ibexa-extra-actions--has-search': hasSearchEnabled,
22+
'ibexa-extra-actions--has-search': isSearchEnabled,
2323
});
2424
const closeLanguageSelector = (event) => {
2525
if (!event.target.closest('.c-table-view-item__btn') && !event.target.classList.contains('ibexa-instant-filter__input')) {
@@ -60,7 +60,7 @@ const LanguageSelector = (props) => {
6060
items={props.languageItems}
6161
activeLanguage={activeLanguage}
6262
handleItemChange={handleItemChange}
63-
hasSearchEnabled={hasSearchEnabled}
63+
isSearchEnabled={isSearchEnabled}
6464
/>
6565
</div>
6666
<div className="ibexa-extra-actions__confirm-wrapper">

0 commit comments

Comments
 (0)