Compare commits

..

2 Commits

Author SHA1 Message Date
Nonimart
2167de1672 FIX block and passing brouillons page in linkable page list in OptionSelectrontrol
All checks were successful
continuous-integration/drone/push Build is passing
2026-04-03 14:36:27 +02:00
Nonimart
ef64310b51 FIX accepting draft pages in parcours pages list in the optionSelectcontrol 2026-04-03 11:26:19 +02:00
8 changed files with 53 additions and 63 deletions

View File

@ -1 +1 @@
<?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '62bbe4b1522ccd65faf8'); <?php return array('dependencies' => array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => 'fcd901559e8b72a56c33');

View File

@ -1,13 +1,12 @@
/*!****************************************************************************************************************************************************************************************************************************************************!*\ /*!****************************************************************************************************************************************************************************************************************************************************!*\
!*** css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/editor.scss ***! !*** css ../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!../../node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/editor.scss ***!
\****************************************************************************************************************************************************************************************************************************************************/ \****************************************************************************************************************************************************************************************************************************************************/
/** .homegrade-blocks-parcours-step.is-selected {
* The following styles get applied inside the editor only. outline: 2px solid var(--wp--preset--color--secondary, --wp-admin-theme-color, #007cba) !important;
* }
* Replace them with your own styles or remove the file completely. .homegrade-blocks-parcours-step.is-selected:focus:after {
*/ position: static !important;
.wp-block-create-block-test { outline: none !important;
border: 1px dotted #f00;
} }
/*# sourceMappingURL=index.css.map*/ /*# sourceMappingURL=index.css.map*/

View File

@ -1 +1 @@
{"version":3,"file":"index.css","mappings":";;;AAAA;;;;EAAA;AAMA;EACC;AAAD,C","sources":["webpack://test/./src/editor.scss"],"sourcesContent":["/**\n * The following styles get applied inside the editor only.\n *\n * Replace them with your own styles or remove the file completely.\n */\n\n.wp-block-create-block-test {\n\tborder: 1px dotted #f00;\n}\n"],"names":[],"sourceRoot":""} {"version":3,"file":"index.css","mappings":";;;AAAA;EACC;AACD;AAAC;EACC;EACA;AAEF,C","sources":["webpack://test/./src/editor.scss"],"sourcesContent":[".homegrade-blocks-parcours-step.is-selected {\n\toutline: 2px solid var(--wp--preset--color--secondary, --wp-admin-theme-color, #007cba) !important;\n\t&:focus:after {\n\t\tposition: static !important;\n\t\toutline: none !important;\n\t}\n}\n"],"names":[],"sourceRoot":""}

View File

@ -41,14 +41,14 @@ function OptionsSelectControl({
relatedPostId relatedPostId
}) { }) {
let [postOptions, setPostOptions] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null); let [postOptions, setPostOptions] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
const lang = (0,_utilities_js__WEBPACK_IMPORTED_MODULE_5__.getAdminLanguageFromCookie)("wp-wpml_current_language"); const lang = (0,_utilities_js__WEBPACK_IMPORTED_MODULE_5__.getAdminLanguageFromCookie)('wp-wpml_current_language');
const optionPages = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useSelect)(select => { const optionPages = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useSelect)(select => {
let query = { let query = {
status: "publish", status: ['draft', 'publish'],
per_page: -1, per_page: -1,
lang: lang lang: lang
}; };
return select("core").getEntityRecords("postType", "parcours", query); return select('core').getEntityRecords('postType', 'parcours', query);
}, [lang]); }, [lang]);
const editUrl = relatedPostId ? `${window.location.origin}/wp-admin/post.php?post=${relatedPostId}&action=edit` : null; const editUrl = relatedPostId ? `${window.location.origin}/wp-admin/post.php?post=${relatedPostId}&action=edit` : null;
function handleRelatedPostChange(postId) { function handleRelatedPostChange(postId) {
@ -61,7 +61,7 @@ function OptionsSelectControl({
if (optionPages && optionPages.length > 0) { if (optionPages && optionPages.length > 0) {
options.push({ options.push({
value: 0, value: 0,
label: "Selectionnez une page" label: 'Selectionnez une page'
}); });
optionPages.forEach(page => { optionPages.forEach(page => {
options.push({ options.push({
@ -72,7 +72,7 @@ function OptionsSelectControl({
} else { } else {
options.push({ options.push({
value: 0, value: 0,
label: "Pas encore de questions..." label: 'Pas encore de questions...'
}); });
} }
return options; return options;
@ -83,15 +83,15 @@ function OptionsSelectControl({
setPostOptions(buildSelectOptions(optionPages)); setPostOptions(buildSelectOptions(optionPages));
} }
}, [optionPages]); }, [optionPages]);
let panelTitle = "Post Parcours Reliée"; let panelTitle = 'Post Parcours Reliée';
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, {
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Étape parcours", "homegrade-blocks") title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Étape parcours', 'homegrade-blocks')
}, postOptions && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, { }, postOptions && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, {
label: panelTitle, label: panelTitle,
value: relatedPostId, value: relatedPostId,
options: postOptions, options: postOptions,
onChange: e => handleRelatedPostChange(e) onChange: e => handleRelatedPostChange(e)
}), relatedPostId && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.Tip, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Pour modifier le contenu de la question affichée ici, rendez-vous dans la fiche question correspondante.", "homegrade-blocks")), relatedPostId && editUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", { }), relatedPostId && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.Tip, null, (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)('Pour modifier le contenu de la question affichée ici, rendez-vous dans la fiche question correspondante.', 'homegrade-blocks')), relatedPostId && editUrl && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("a", {
href: editUrl, href: editUrl,
className: "edit-question-button" className: "edit-question-button"
}, "\xC9diter le post"))); }, "\xC9diter le post")));
@ -132,11 +132,11 @@ function Edit({
const { const {
relatedPostId relatedPostId
} = attributes; } = attributes;
const post = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => select("core").getEntityRecord("postType", "parcours", relatedPostId)); const post = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => select('core').getEntityRecord('postType', 'parcours', relatedPostId));
const stepIconUrl = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => { const stepIconUrl = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_4__.useSelect)(select => {
var _media$source_url; var _media$source_url;
let setpIconID = post?.acf?.step_icon; let setpIconID = post?.acf?.step_icon;
const media = select("core").getMedia(setpIconID); const media = select('core').getMedia(setpIconID);
return (_media$source_url = media?.source_url) !== null && _media$source_url !== void 0 ? _media$source_url : null; return (_media$source_url = media?.source_url) !== null && _media$source_url !== void 0 ? _media$source_url : null;
}, [post]); }, [post]);
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_OptionsSelectControl__WEBPACK_IMPORTED_MODULE_3__["default"], { return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_OptionsSelectControl__WEBPACK_IMPORTED_MODULE_3__["default"], {
@ -147,7 +147,7 @@ function Edit({
className: `homegrade-blocks-parcours-step parcours-step parcours-step-card` className: `homegrade-blocks-parcours-step parcours-step parcours-step-card`
}) })
}, post && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { }, post && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", {
class: "parcours-step-card__icon", className: "parcours-step-card__icon",
src: stepIconUrl, src: stepIconUrl,
alt: "" alt: ""
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("h3", { }), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)("h3", {

File diff suppressed because one or more lines are too long

View File

@ -1,29 +1,25 @@
import { __ } from "@wordpress/i18n"; import { __ } from '@wordpress/i18n';
import { InspectorControls } from "@wordpress/block-editor"; import { InspectorControls } from '@wordpress/block-editor';
import { import { PanelBody, SelectControl, ComboboxControl } from '@wordpress/components';
PanelBody, import './editor.scss';
SelectControl, import { Tip } from '@wordpress/components';
ComboboxControl, import { getAdminLanguageFromCookie } from '../../utilities.js';
} from "@wordpress/components"; import { useSelect } from '@wordpress/data';
import "./editor.scss"; import { useEffect, useState } from '@wordpress/element';
import { Tip } from "@wordpress/components"; import { decodeEntities } from '@wordpress/html-entities';
import { getAdminLanguageFromCookie } from "../../utilities.js";
import { useSelect } from "@wordpress/data";
import { useEffect, useState } from "@wordpress/element";
import { decodeEntities } from "@wordpress/html-entities";
export default function OptionsSelectControl({ setAttributes, relatedPostId }) { export default function OptionsSelectControl({ setAttributes, relatedPostId }) {
let [postOptions, setPostOptions] = useState(null); let [postOptions, setPostOptions] = useState(null);
const lang = getAdminLanguageFromCookie("wp-wpml_current_language"); const lang = getAdminLanguageFromCookie('wp-wpml_current_language');
const optionPages = useSelect( const optionPages = useSelect(
(select) => { (select) => {
let query = { let query = {
status: "publish", status: ['draft', 'publish'],
per_page: -1, per_page: -1,
lang: lang, lang: lang,
}; };
return select("core").getEntityRecords("postType", "parcours", query); return select('core').getEntityRecords('postType', 'parcours', query);
}, },
[lang] [lang]
); );
@ -38,7 +34,7 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) {
function buildSelectOptions(optionPages) { function buildSelectOptions(optionPages) {
let options = []; let options = [];
if (optionPages && optionPages.length > 0) { if (optionPages && optionPages.length > 0) {
options.push({ value: 0, label: "Selectionnez une page" }); options.push({ value: 0, label: 'Selectionnez une page' });
optionPages.forEach((page) => { optionPages.forEach((page) => {
options.push({ options.push({
value: page.id, value: page.id,
@ -46,7 +42,7 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) {
}); });
}); });
} else { } else {
options.push({ value: 0, label: "Pas encore de questions..." }); options.push({ value: 0, label: 'Pas encore de questions...' });
} }
return options; return options;
} }
@ -58,11 +54,11 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) {
} }
}, [optionPages]); }, [optionPages]);
let panelTitle = "Post Parcours Reliée"; let panelTitle = 'Post Parcours Reliée';
return ( return (
<InspectorControls> <InspectorControls>
<PanelBody title={__("Étape parcours", "homegrade-blocks")}> <PanelBody title={__('Étape parcours', 'homegrade-blocks')}>
{postOptions && ( {postOptions && (
<ComboboxControl <ComboboxControl
label={panelTitle} label={panelTitle}
@ -74,8 +70,8 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) {
{relatedPostId && ( {relatedPostId && (
<Tip> <Tip>
{__( {__(
"Pour modifier le contenu de la question affichée ici, rendez-vous dans la fiche question correspondante.", 'Pour modifier le contenu de la question affichée ici, rendez-vous dans la fiche question correspondante.',
"homegrade-blocks" 'homegrade-blocks'
)} )}
</Tip> </Tip>
)} )}

View File

@ -1,18 +1,18 @@
import { __ } from "@wordpress/i18n"; import { __ } from '@wordpress/i18n';
import { useBlockProps } from "@wordpress/block-editor"; import { useBlockProps } from '@wordpress/block-editor';
import OptionsSelectControl from "./OptionsSelectControl"; import OptionsSelectControl from './OptionsSelectControl';
import { useSelect } from "@wordpress/data"; import { useSelect } from '@wordpress/data';
import "./editor.scss"; import './editor.scss';
export default function Edit({ attributes, setAttributes }) { export default function Edit({ attributes, setAttributes }) {
const { relatedPostId } = attributes; const { relatedPostId } = attributes;
const post = useSelect((select) => const post = useSelect((select) =>
select("core").getEntityRecord("postType", "parcours", relatedPostId) select('core').getEntityRecord('postType', 'parcours', relatedPostId)
); );
const stepIconUrl = useSelect( const stepIconUrl = useSelect(
(select) => { (select) => {
let setpIconID = post?.acf?.step_icon; let setpIconID = post?.acf?.step_icon;
const media = select("core").getMedia(setpIconID); const media = select('core').getMedia(setpIconID);
return media?.source_url ?? null; return media?.source_url ?? null;
}, },
[post] [post]
@ -20,10 +20,7 @@ export default function Edit({ attributes, setAttributes }) {
return ( return (
<> <>
<OptionsSelectControl <OptionsSelectControl relatedPostId={relatedPostId} setAttributes={setAttributes} />
relatedPostId={relatedPostId}
setAttributes={setAttributes}
/>
<div <div
{...useBlockProps({ {...useBlockProps({
@ -32,7 +29,7 @@ export default function Edit({ attributes, setAttributes }) {
> >
{post && ( {post && (
<> <>
<img class="parcours-step-card__icon" src={stepIconUrl} alt="" /> <img className="parcours-step-card__icon" src={stepIconUrl} alt="" />
<h3 className="parcours-step-card__title">{post.title.rendered}</h3> <h3 className="parcours-step-card__title">{post.title.rendered}</h3>
</> </>
)} )}

View File

@ -1,9 +1,7 @@
/** .homegrade-blocks-parcours-step.is-selected {
* The following styles get applied inside the editor only. outline: 2px solid var(--wp--preset--color--secondary, --wp-admin-theme-color, #007cba) !important;
* &:focus:after {
* Replace them with your own styles or remove the file completely. position: static !important;
*/ outline: none !important;
}
.wp-block-create-block-test {
border: 1px dotted #f00;
} }