From b9115f3f6d9037c0ada8d07788f141d6d1420f56 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli Date: Tue, 10 Jan 2023 12:34:13 +1300 Subject: [PATCH] Fix anchor select field component This should have been done when we upgraded react-select. My bad. --- client/dist/js/bundle.js | 6 ++-- .../AnchorSelectorField.js | 21 ++++++------ .../behat/features/insert-anchor-link.feature | 29 +++++++---------- tests/behat/src/FixtureContext.php | 32 +++++++++++++++++++ 4 files changed, 57 insertions(+), 31 deletions(-) diff --git a/client/dist/js/bundle.js b/client/dist/js/bundle.js index e1a30cfc..12b919ba 100644 --- a/client/dist/js/bundle.js +++ b/client/dist/js/bundle.js @@ -1,4 +1,4 @@ -!function(){"use strict";var e,t,n={274:function(e,t,n){var r=a(n(180)),o=a(n(521));function a(e){return e&&e.__esModule?e:{default:e}}window.document.addEventListener("DOMContentLoaded",(()=>{(0,o.default)(),(0,r.default)()}))},521:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=s(n(648)),o=s(n(93)),a=s(n(436)),i=s(n(149));function s(e){return e&&e.__esModule?e:{default:e}}t.default=()=>{r.default.component.register("AnchorSelectorField",o.default),r.default.transform("pages-history",(e=>{e.component("HistoryViewer.pages-controller-cms-content",a.default,"PageHistoryViewer")})),r.default.transform("pages-history-revert",(e=>{e.component("HistoryViewerToolbar.VersionedAdmin.HistoryViewer.SiteTree.HistoryViewerVersionDetail",i.default,"PageRevertMutation")}))}},180:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=i(n(648)),o=n(827),a=i(n(572));function i(e){return e&&e.__esModule?e:{default:e}}t.default=()=>{r.default.reducer.register("cms",(0,o.combineReducers)({anchorSelector:a.default}))}},93:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.ConnectedAnchorSelectorField=t.Component=void 0;var r=b(n(754)),o=b(n(363)),a=b(n(875)),i=n(624),s=n(827),l=n(762),u=b(n(277)),c=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var n=g(t);if(n&&n.has(e))return n.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in e)if("default"!==a&&Object.prototype.hasOwnProperty.call(e,a)){var i=o?Object.getOwnPropertyDescriptor(e,a):null;i&&(i.get||i.set)?Object.defineProperty(r,a,i):r[a]=e[a]}r.default=e,n&&n.set(e,r);return r}(n(447)),d=b(n(892)),f=b(n(42)),p=n(967),h=b(n(720)),v=b(n(820)),m=b(n(86));function g(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,n=new WeakMap;return(g=function(e){return e?n:t})(e)}function b(e){return e&&e.__esModule?e:{default:e}}const y=()=>null;class _ extends u.default{constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.handleLoadingError=this.handleLoadingError.bind(this)}componentDidMount(){this.ensurePagesLoaded()}componentDidUpdate(e){this.props.pageId!==e.pageId&&this.ensurePagesLoaded()}ensurePagesLoaded(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.props;if(e.loadingState===d.default.UPDATING||e.loadingState===d.default.SUCCESS||!e.pageId)return Promise.resolve();let t=[];e.loadingState===d.default.FIELD_ONLY&&(t=this.props.anchors),e.actions.anchorSelector.beginUpdating(e.pageId);const n=e.data.endpoint.replace(/:id/,e.pageId);return(0,a.default)(n,{credentials:"same-origin"}).then((e=>e.json())).then((n=>{const r=[...new Set([...n,...t])];return e.actions.anchorSelector.updated(e.pageId,r),r})).catch((t=>{e.actions.anchorSelector.updateFailed(e.pageId),this.handleLoadingError(t,e)}))}getDropdownOptions(){const e=this.props.anchors.map((e=>({value:e})));return this.props.value&&!this.props.anchors.find((e=>e===this.props.value))&&e.unshift({value:this.props.value}),e}handleChange(e){"function"==typeof this.props.onChange&&this.props.onChange(e?e.value:"")}handleLoadingError(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props;if(t.onLoadingError===y)throw e;return t.onLoadingError({errors:[{value:e.message,type:"error"}]})}render(){const e={id:this.props.id},t=(0,v.default)("anchorselectorfield",this.props.extraClass),n=this.getDropdownOptions(),a=this.props.value||"",i=r.default._t("CMS.ANCHOR_SELECT_OR_TYPE","Select or enter anchor");return o.default.createElement(p.Creatable,{searchable:!0,options:n,className:t,name:this.props.name,inputProps:e,onChange:this.handleChange,onBlurResetsInput:!0,value:a,placeholder:i,labelKey:"value"})}}t.Component=_,_.propTypes={extraClass:m.default.string,id:m.default.string,name:m.default.string.isRequired,onChange:m.default.func,value:m.default.string,attributes:m.default.oneOfType([m.default.object,m.default.array]),pageId:m.default.number,anchors:m.default.array,loadingState:m.default.oneOf(Object.keys(d.default).map((e=>d.default[e]))),onLoadingError:m.default.func,data:m.default.shape({endpoint:m.default.string,targetFieldName:m.default.string})},_.defaultProps={value:"",extraClass:"",onLoadingError:y,attributes:{}};const w=(0,i.connect)((function(e,t){const n=(0,l.formValueSelector)(t.formid,h.default),r=t&&t.data&&t.data.targetFieldName||"PageID",o=Number(n(e,r)||0);let a=[];const i=o?e.cms.anchorSelector.pages.find((e=>e.id===o)):null;!i||i.loadingState!==d.default.SUCCESS&&i.loadingState!==d.default.DIRTY&&i.loadingState!==d.default.FIELD_ONLY||(a=i.anchors);let s=null;return s=i?i.loadingState:o?d.default.DIRTY:d.default.SUCCESS,{pageId:o,anchors:a,loadingState:s}}),(function(e){return{actions:{anchorSelector:(0,s.bindActionCreators)(c,e)}}}))(_);t.ConnectedAnchorSelectorField=w;var C=(0,f.default)(w);t.default=C},554:function(e,t,n){var r;((r=n(311))&&r.__esModule?r:{default:r}).default.entwine("ss",(function(e){e(".TreeDropdownField").entwine({OldValue:null}),e("#Form_AddForm_ParentID_Holder .treedropdownfield").entwine({onmatch(){this._super(),e(".cms-add-form").updateTypeList()}}),e(".cms-add-form .parent-mode :input").entwine({onclick:function(e){var t=this.closest("form").find("#Form_AddForm_ParentID_Holder .TreeDropdownField");"top"==this.val()?(t.setOldValue(t.getValue()),t.setValue(0)):(t.setValue(t.getOldValue()||0),t.setOldValue(null)),t.refresh(),t.trigger("change")}}),e(".cms-add-form").entwine({ParentCache:{},onadd:function(){var t=this;this.find("#Form_AddForm_ParentID_Holder .TreeDropdownField").on("change",(function(){t.updateTypeList()})),this.find(".SelectionGroup.parent-mode").on("change",(function(){t.updateTypeList()})),"top"==e(".cms-add-form .parent-mode :input").val()&&this.updateTypeList()},loadCachedChildren:function(e){var t=this.getParentCache();return void 0!==t[e]?t[e]:null},saveCachedChildren:function(e,t){var n=this.getParentCache();n[e]=t,this.setParentCache(n)},updateTypeList:function(){var t=this.data("hints"),n=this.find("#Form_AddForm_ParentID"),r=this.find("input[name=ParentModeField]:checked").val(),o=n.data("metadata"),a="child"===r?n.getValue():null,i=o?o.ClassName:null,s=i&&"child"===r&&a?i:"Root",l=void 0!==t[s]?t[s]:null,u=this,c=l&&void 0!==l.defaultChild?l.defaultChild:null,d=[];if(a){if(this.hasClass("loading"))return;return this.addClass("loading"),null!==(d=this.loadCachedChildren(a))?(this.updateSelectionFilter(d,c),void this.removeClass("loading")):(e.ajax({url:u.data("childfilter"),data:{ParentID:a},success:function(e){u.saveCachedChildren(a,e),u.updateSelectionFilter(e,c)},complete:function(){u.removeClass("loading")}}),!1)}d=l&&void 0!==l.disallowedChildren?l.disallowedChildren:[],this.updateSelectionFilter(d,c)},updateSelectionFilter:function(t,n){var r=this.find("#Form_AddForm_PageType div.radio.selected")[0],o=!1,a=null;if(this.find("#Form_AddForm_PageType div.radio").each((function(n,i){var s=e(this).find("input").val(),l=-1===e.inArray(s,t);i===r&&l&&(o=!0),e(this).setEnabled(l),l||e(this).setSelected(!1),a=(null===a||a)&&l})),o)var i=e(r).parents("li:first");else if(n)i=this.find("#Form_AddForm_PageType div.radio input[value="+n+"]").parents("li:first");else i=this.find("#Form_AddForm_PageType div.radio:not(.disabled):first");i.setSelected(!0),i.siblings().setSelected(!1),this.find("#Form_AddForm_PageType div.radio:not(.disabled)").length?this.find("button[name=action_doAdd]").removeAttr("disabled"):this.find("button[name=action_doAdd]").attr("disabled","disabled"),this.find(".message-restricted")[a?"hide":"show"]()}}),e(".cms-add-form #Form_AddForm_PageType div.radio").entwine({onclick:function(e){this.setSelected(!0)},setSelected:function(e){var t=this.find("input");e&&!t.is(":disabled")?(this.siblings().setSelected(!1),this.toggleClass("selected",!0),t.prop("checked",!0)):(this.toggleClass("selected",!1),t.prop("checked",!1))},setEnabled:function(t){e(this).toggleClass("disabled",!t),t?e(this).find("input").removeAttr("disabled"):e(this).find("input").attr("disabled","disabled").removeAttr("checked")}}),e(".cms-content-addpage-button").entwine({onclick:function(t){var n,r=e(".cms-tree"),o=e(".cms-list"),a=0;if(r.is(":visible")){var i=r.jstree("get_selected");a=i?e(i[0]).data("id"):null}else{var s=o.find('input[name="Page[GridState]"]').val();s&&(a=parseInt(JSON.parse(s).ParentID,10))}var l,u={selector:this.data("targetPanel"),pjax:this.data("pjax")};a?(n=this.data("extraParams")?this.data("extraParams"):"",l=e.path.addSearchParams(i18n.sprintf(this.data("urlAddpage"),a),n)):l=this.attr("href"),e(".cms-container").loadPanel(l,null,u),t.preventDefault(),this.blur()}})}))},649:function(e,t,n){var r=i(n(311)),o=i(n(754)),a=i(n(141));function i(e){return e&&e.__esModule?e:{default:e}}r.default.entwine("ss",(function(e){e(".cms-edit-form :input#Form_EditForm_ClassName").entwine({onchange:function(){alert(o.default._t("CMS.ALERTCLASSNAME"))}}),e(".cms-edit-form input[name=Title]").entwine({onmatch:function(){var t=this;t.data("OrigVal",t.val());var n=t.closest("form"),r=e("input:text[name=URLSegment]",n),o=e("input[name=LiveLink]",n);r.length>0&&(t._addActions(),this.on("change",(function(n){var a=t.data("OrigVal"),i=t.val();t.data("OrigVal",i),0===r.val().indexOf(r.data("defaultUrl"))&&""==o.val()?t.updateURLSegment(i):e(".update",t.parent()).show().parent(".form__field-holder").addClass("input-group"),t.updateRelatedFields(i,a),t.updateBreadcrumbLabel(i)}))),this._super()},onunmatch:function(){this._super()},updateRelatedFields:function(t,n){this.parents("form").find("input[name=MetaTitle], input[name=MenuTitle]").each((function(){var r=e(this);r.val()==n&&(r.val(t),r.updatedRelatedFields&&r.updatedRelatedFields())}))},updateURLSegment:function(t){var n=e("input:text[name=URLSegment]",this.closest("form")).closest(".field.urlsegment"),r=e(".update",this.parent());n.update(t),r.is(":visible")&&r.hide().parent(".form__field-holder").removeClass("input-group")},updateBreadcrumbLabel:function(t){e(".cms-edit-form input[name=ID]").val();var n=e("span.cms-panel-link.crumb");t&&""!=t&&n.text(t)},_addActions:function(){var t,n=this;(t=e("