|
6 | 6 | const SELECTOR_ADD_COLUMN = '.ibexa-btn--add-column';
|
7 | 7 | const SELECTOR_REMOVE_COLUMN = '.ibexa-btn--remove-column';
|
8 | 8 | const SELECTOR_TEMPLATE = '.ibexa-matrix-settings__column-template';
|
| 9 | + const ERROR_NODE_SELECTOR = '.ibexa-form-error'; |
9 | 10 | const NUMBER_PLACEHOLDER = /__number__/g;
|
10 | 11 | const getNextIndex = (parentNode) => {
|
11 | 12 | return parentNode.dataset.nextIndex++;
|
|
36 | 37 | node.insertAdjacentHTML('beforeend', template.replace(NUMBER_PLACEHOLDER, getNextIndex(node)));
|
37 | 38 |
|
38 | 39 | initColumns(settingsNode);
|
| 40 | + validateColumnsNumber(settingsNode); |
39 | 41 |
|
40 | 42 | node.closest('.ibexa-table').dispatchEvent(new CustomEvent('ibexa-refresh-main-table-checkbox'));
|
| 43 | + |
41 | 44 | doc.body.dispatchEvent(new CustomEvent('ibexa-inputs:added'));
|
| 45 | + doc.body.dispatchEvent(new CustomEvent('ibexa-fieldtype-matrix:added-column', { |
| 46 | + detail: { |
| 47 | + columnNode: node.querySelector(`${SELECTOR_COLUMN}:last-of-type`) |
| 48 | + }, |
| 49 | + })); |
42 | 50 | };
|
43 | 51 | const removeItems = (event) => {
|
44 | 52 | const settingsNode = event.target.closest(SELECTOR_SETTINGS_COLUMNS);
|
|
66 | 74 | });
|
67 | 75 |
|
68 | 76 | node.closest('.ibexa-table').dispatchEvent(new CustomEvent('ibexa-refresh-main-table-checkbox'));
|
| 77 | + validateColumnsNumber(settingsNode); |
69 | 78 | }, 0);
|
70 | 79 |
|
71 | 80 | initColumns(settingsNode);
|
| 81 | + console.log(settingsNode) |
| 82 | + |
72 | 83 | };
|
73 | 84 | const checkColumn = (event) => {
|
74 | 85 | const settingsNode = event.target.closest(SELECTOR_SETTINGS_COLUMNS);
|
|
91 | 102 |
|
92 | 103 | initColumns(container);
|
93 | 104 | };
|
| 105 | + const validateColumnsNumber = (settingsNode) => { |
| 106 | + const columns = settingsNode.querySelectorAll(SELECTOR_COLUMN); |
| 107 | + const errorNode = settingsNode.querySelector(ERROR_NODE_SELECTOR); |
| 108 | + |
| 109 | + errorNode.toggleAttribute('hidden', columns.length > 0); |
| 110 | + } |
94 | 111 |
|
95 | 112 | doc.querySelectorAll(SELECTOR_SETTINGS_COLUMNS).forEach((container) => {
|
96 | 113 | initComponent(container);
|
|
0 commit comments