From ea92339d8d84c3530d129685d95d482a32ad337a Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Tue, 18 Oct 2022 15:17:19 +1300 Subject: [PATCH 1/5] ENH Update deprecation messages --- code/Controllers/CMSMain.php | 2 +- code/Controllers/CMSPageHistoryController.php | 2 +- code/Model/SiteTree.php | 2 +- code/Model/SiteTreeFileExtension.php | 2 +- code/Model/SiteTreeFileFormFactoryExtension.php | 6 ++---- code/Model/SiteTreeFolderExtension.php | 4 ++-- code/Model/VirtualPage.php | 2 +- 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/code/Controllers/CMSMain.php b/code/Controllers/CMSMain.php index d582c25e..64367236 100644 --- a/code/Controllers/CMSMain.php +++ b/code/Controllers/CMSMain.php @@ -2163,7 +2163,7 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr } /** - * @deprecated 5.0 Please use custom logic for this + * @deprecated 5.0 Use custom logic instead * @param $request * @return HTTPResponse|string|void */ diff --git a/code/Controllers/CMSPageHistoryController.php b/code/Controllers/CMSPageHistoryController.php index eba00f31..5a12f8c6 100644 --- a/code/Controllers/CMSPageHistoryController.php +++ b/code/Controllers/CMSPageHistoryController.php @@ -24,7 +24,7 @@ use SilverStripe\View\ViewableData; /** * Legacy CMS History controller. This functionality has been moved to the `silverstripe/versioned-admin` module and * this class will be removed completly in SilverStripe 5.0.0. - * @deprecated 4.3.0:5.0.0 + * @deprecated 4.3.0:5.0.0 Use silverstripe/versioned-admin instead */ class CMSPageHistoryController extends CMSMain { diff --git a/code/Model/SiteTree.php b/code/Model/SiteTree.php index 4e6f0e7a..1206dcec 100755 --- a/code/Model/SiteTree.php +++ b/code/Model/SiteTree.php @@ -2751,7 +2751,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi } /** - * @deprecated 5.0 use creatableChildPages instead + * @deprecated 5.0 Use creatableChildPages() instead * * Gets a list of the page types that can be created under this specific page * diff --git a/code/Model/SiteTreeFileExtension.php b/code/Model/SiteTreeFileExtension.php index fd617533..2b554513 100644 --- a/code/Model/SiteTreeFileExtension.php +++ b/code/Model/SiteTreeFileExtension.php @@ -7,7 +7,7 @@ use SilverStripe\ORM\DataExtension; use SilverStripe\View\SSViewer; /** - * @deprecated 4.2..5.0 Link tracking is baked into File class now + * @deprecated 4.2..5.0 Use FileLinkTracking instead * @property File $owner */ class SiteTreeFileExtension extends DataExtension diff --git a/code/Model/SiteTreeFileFormFactoryExtension.php b/code/Model/SiteTreeFileFormFactoryExtension.php index f03c8c49..b3d39a0f 100644 --- a/code/Model/SiteTreeFileFormFactoryExtension.php +++ b/code/Model/SiteTreeFileFormFactoryExtension.php @@ -12,8 +12,7 @@ use SilverStripe\Admin\Forms\UsedOnTable; use SilverStripe\Versioned\RecursivePublishable; /** - * @deprecated 5.0 - * No longer required - superceded by {@see UsedOnTable} + * @deprecated 5.0 Use UsedOnTable instead * * Extension applied to {@see FileFormFactory} to decorate with a "Used on:" information area. * Uses tracking provided by {@see SiteTreeFileExtension} to generate this. @@ -29,8 +28,7 @@ class SiteTreeFileFormFactoryExtension extends DataExtension if (!$tabset) { return; } - $class = UsedOnTable::class; - Deprecation::notice('5.0', "Use the $class to show this table"); + Deprecation::notice('5.0', "Use UsedOnTable instead"); $usedOnField = UsedOnTable::create('UsedOnTableReplacement'); $usedOnField->setRecord($context['Record']); diff --git a/code/Model/SiteTreeFolderExtension.php b/code/Model/SiteTreeFolderExtension.php index 164b6660..35a990cd 100644 --- a/code/Model/SiteTreeFolderExtension.php +++ b/code/Model/SiteTreeFolderExtension.php @@ -15,7 +15,7 @@ use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; /** - * @deprecated 4.2..5.0 Will be removed in cms 5.0 + * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it */ class SiteTreeFolderExtension extends DataExtension { @@ -29,7 +29,7 @@ class SiteTreeFolderExtension extends DataExtension /** * Looks for files used in system and create where clause which contains all ID's of files. * - * @deprecated 4.2..5.0 + * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it * @returns string where clause which will work as filter. */ public function getUnusedFilesListFilter() diff --git a/code/Model/VirtualPage.php b/code/Model/VirtualPage.php index dd4187cc..e377c924 100644 --- a/code/Model/VirtualPage.php +++ b/code/Model/VirtualPage.php @@ -361,7 +361,7 @@ class VirtualPage extends Page } /** - * @deprecated 4.2..5.0 + * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it */ public function updateImageTracking() { From 55b17c920cdb45e821e3bbb16614392e5a5abba2 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Tue, 18 Oct 2022 15:23:59 +1300 Subject: [PATCH 2/5] API Update deprecations --- code/Controllers/CMSMain.php | 4 +++- code/Controllers/CMSPageHistoryController.php | 8 +++++++- code/Model/SiteTree.php | 3 ++- code/Model/SiteTreeFileExtension.php | 8 +++++++- code/Model/SiteTreeFileFormFactoryExtension.php | 15 +++++++++++++-- code/Model/SiteTreeFolderExtension.php | 8 ++++---- code/Model/VirtualPage.php | 4 ++-- 7 files changed, 38 insertions(+), 12 deletions(-) diff --git a/code/Controllers/CMSMain.php b/code/Controllers/CMSMain.php index 64367236..424e9eb1 100644 --- a/code/Controllers/CMSMain.php +++ b/code/Controllers/CMSMain.php @@ -2,6 +2,7 @@ namespace SilverStripe\CMS\Controllers; +use SilverStripe\Dev\Deprecation; use InvalidArgumentException; use Psr\SimpleCache\CacheInterface; use SilverStripe\Admin\AdminRootController; @@ -2163,12 +2164,13 @@ class CMSMain extends LeftAndMain implements CurrentPageIdentifier, PermissionPr } /** - * @deprecated 5.0 Use custom logic instead + * @deprecated 4.12.0 Use custom logic instead * @param $request * @return HTTPResponse|string|void */ public function publishall($request) { + Deprecation::notice('4.12.0', 'Use custom logic instead'); if (!Permission::check('ADMIN')) { return Security::permissionFailure($this); } diff --git a/code/Controllers/CMSPageHistoryController.php b/code/Controllers/CMSPageHistoryController.php index 5a12f8c6..48a8ae35 100644 --- a/code/Controllers/CMSPageHistoryController.php +++ b/code/Controllers/CMSPageHistoryController.php @@ -2,6 +2,7 @@ namespace SilverStripe\CMS\Controllers; +use SilverStripe\Dev\Deprecation; use SilverStripe\Admin\LeftAndMainFormRequestHandler; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Control\Controller; @@ -24,7 +25,7 @@ use SilverStripe\View\ViewableData; /** * Legacy CMS History controller. This functionality has been moved to the `silverstripe/versioned-admin` module and * this class will be removed completly in SilverStripe 5.0.0. - * @deprecated 4.3.0:5.0.0 Use silverstripe/versioned-admin instead + * @deprecated 4.3.0 Use silverstripe/versioned-admin instead */ class CMSPageHistoryController extends CMSMain { @@ -59,6 +60,11 @@ class CMSPageHistoryController extends CMSMain */ protected $versionID = null; + public function __construct() + { + Deprecation::notice('4.3.0', 'Use silverstripe/versioned-admin instead', Deprecation::SCOPE_CLASS); + } + public function getResponseNegotiator() { $negotiator = parent::getResponseNegotiator(); diff --git a/code/Model/SiteTree.php b/code/Model/SiteTree.php index 1206dcec..b15cbdbf 100755 --- a/code/Model/SiteTree.php +++ b/code/Model/SiteTree.php @@ -2751,7 +2751,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi } /** - * @deprecated 5.0 Use creatableChildPages() instead + * @deprecated 4.12.0 Use creatableChildPages() instead * * Gets a list of the page types that can be created under this specific page * @@ -2759,6 +2759,7 @@ class SiteTree extends DataObject implements PermissionProvider, i18nEntityProvi */ public function creatableChildren() { + Deprecation::notice('4.12.0', 'Use creatableChildPages() instead'); // Build the list of candidate children $cache = SiteTree::singleton()->getCreatableChildrenCache(); $cacheKey = $this->generateChildrenCacheKey(Security::getCurrentUser() ? Security::getCurrentUser()->ID : 0); diff --git a/code/Model/SiteTreeFileExtension.php b/code/Model/SiteTreeFileExtension.php index 2b554513..5cbd7d53 100644 --- a/code/Model/SiteTreeFileExtension.php +++ b/code/Model/SiteTreeFileExtension.php @@ -2,12 +2,13 @@ namespace SilverStripe\CMS\Model; +use SilverStripe\Dev\Deprecation; use SilverStripe\Assets\File; use SilverStripe\ORM\DataExtension; use SilverStripe\View\SSViewer; /** - * @deprecated 4.2..5.0 Use FileLinkTracking instead + * @deprecated 4.2.0 Use FileLinkTracking instead * @property File $owner */ class SiteTreeFileExtension extends DataExtension @@ -21,6 +22,11 @@ class SiteTreeFileExtension extends DataExtension * * @return string */ + public function __construct() + { + Deprecation::notice('4.2.0', 'Use FileLinkTracking instead', Deprecation::SCOPE_CLASS); + } + public function BackLinkHTMLList() { $viewer = SSViewer::create(['type' => 'Includes', self::class . '_description']); diff --git a/code/Model/SiteTreeFileFormFactoryExtension.php b/code/Model/SiteTreeFileFormFactoryExtension.php index b3d39a0f..e20c95ec 100644 --- a/code/Model/SiteTreeFileFormFactoryExtension.php +++ b/code/Model/SiteTreeFileFormFactoryExtension.php @@ -12,7 +12,7 @@ use SilverStripe\Admin\Forms\UsedOnTable; use SilverStripe\Versioned\RecursivePublishable; /** - * @deprecated 5.0 Use UsedOnTable instead + * @deprecated 4.12.0 Use UsedOnTable instead * * Extension applied to {@see FileFormFactory} to decorate with a "Used on:" information area. * Uses tracking provided by {@see SiteTreeFileExtension} to generate this. @@ -21,14 +21,25 @@ use SilverStripe\Versioned\RecursivePublishable; */ class SiteTreeFileFormFactoryExtension extends DataExtension { + /** + * @deprecated 4.12.0 Use UsedOnTable instead + */ + public function __construct() + { + Deprecation::notice('4.12.0', 'Use UsedOnTable instead', Deprecation::SCOPE_CLASS); + } + + /** + * @deprecated 4.12.0 Use UsedOnTable instead + */ public function updateFormFields(FieldList $fields, $controller, $formName, $context) { + Deprecation::notice('4.12.0', 'Use UsedOnTable instead'); /** @var TabSet $tabset */ $tabset = $fields->fieldByName('Editor'); if (!$tabset) { return; } - Deprecation::notice('5.0', "Use UsedOnTable instead"); $usedOnField = UsedOnTable::create('UsedOnTableReplacement'); $usedOnField->setRecord($context['Record']); diff --git a/code/Model/SiteTreeFolderExtension.php b/code/Model/SiteTreeFolderExtension.php index 35a990cd..08f53f9e 100644 --- a/code/Model/SiteTreeFolderExtension.php +++ b/code/Model/SiteTreeFolderExtension.php @@ -15,26 +15,26 @@ use SilverStripe\ORM\DataList; use SilverStripe\ORM\DataObject; /** - * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it + * @deprecated 4.2.0 Will be removed without equivalent functionality to replace it */ class SiteTreeFolderExtension extends DataExtension { public function __construct() { + Deprecation::notice('4.2.0', 'Will be removed without equivalent functionality to replace it', Deprecation::SCOPE_CLASS); parent::__construct(); - Deprecation::notice('5.0', 'Will be removed in 5.0'); } /** * Looks for files used in system and create where clause which contains all ID's of files. * - * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it + * @deprecated 4.2.0 Will be removed without equivalent functionality to replace it * @returns string where clause which will work as filter. */ public function getUnusedFilesListFilter() { - Deprecation::notice('5.0', 'Will be removed in 5.0'); + Deprecation::notice('4.2.0', 'Will be removed without equivalent functionality to replace it'); // Add all records in link tracking $usedFiles = FileLink::get()->column('LinkedID'); diff --git a/code/Model/VirtualPage.php b/code/Model/VirtualPage.php index e377c924..9d0573c2 100644 --- a/code/Model/VirtualPage.php +++ b/code/Model/VirtualPage.php @@ -361,11 +361,11 @@ class VirtualPage extends Page } /** - * @deprecated 4.2..5.0 Will be removed without equivalent functionality to replace it + * @deprecated 4.2.0 Will be removed without equivalent functionality to replace it */ public function updateImageTracking() { - Deprecation::notice('5.0', 'This will be removed in 5.0'); + Deprecation::notice('4.2.0', 'Will be removed without equivalent functionality to replace it'); // Doesn't work on unsaved records if (!$this->isInDB()) { From e63774061d9a4a9116f4bd00c105d12445d1aed6 Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Tue, 18 Oct 2022 16:35:11 +1300 Subject: [PATCH 3/5] FIX Call parent::contruct() --- code/Controllers/CMSPageHistoryController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/code/Controllers/CMSPageHistoryController.php b/code/Controllers/CMSPageHistoryController.php index 48a8ae35..7ffcc88d 100644 --- a/code/Controllers/CMSPageHistoryController.php +++ b/code/Controllers/CMSPageHistoryController.php @@ -62,6 +62,7 @@ class CMSPageHistoryController extends CMSMain public function __construct() { + parent::__construct(); Deprecation::notice('4.3.0', 'Use silverstripe/versioned-admin instead', Deprecation::SCOPE_CLASS); } From 7a7c751f7cfb8196457911c826c2114ffd4ed3b1 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Tue, 1 Nov 2022 17:27:27 +1300 Subject: [PATCH 4/5] FIX Don't use deprecated jQuery functions (#2792) --- client/dist/js/bundle.js | 2 +- client/src/legacy/CMSMain.AddForm.js | 4 ++-- client/src/legacy/CMSMain.EditForm.js | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/client/dist/js/bundle.js b/client/dist/js/bundle.js index dcc65588..70c00c51 100644 --- a/client/dist/js/bundle.js +++ b/client/dist/js/bundle.js @@ -1 +1 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/bundles/bundle.js")}({"./client/src/boot/index.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var a=n("./client/src/boot/registerReducers.js"),o=r(a),i=n("./client/src/boot/registerComponents.js"),s=r(i);window.document.addEventListener("DOMContentLoaded",function(){(0,s.default)(),(0,o.default)()})},"./client/src/boot/registerComponents.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(3),o=r(a),i=n("./client/src/components/AnchorSelectorField/AnchorSelectorField.js"),s=r(i),l=n("./client/src/state/history/readOnePageQuery.js"),d=r(l),c=n("./client/src/state/history/rollbackPageMutation.js"),u=r(c);t.default=function(){o.default.component.register("AnchorSelectorField",s.default),o.default.transform("pages-history",function(e){e.component("HistoryViewer.pages-controller-cms-content",d.default,"PageHistoryViewer")}),o.default.transform("pages-history-revert",function(e){e.component("HistoryViewerToolbar.VersionedAdmin.HistoryViewer.SiteTree.HistoryViewerVersionDetail",u.default,"PageRevertMutation")})}},"./client/src/boot/registerReducers.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(3),o=r(a),i=n(12),s=n("./client/src/state/anchorSelector/AnchorSelectorReducer.js"),l=r(s);t.default=function(){o.default.reducer.register("cms",(0,i.combineReducers)({anchorSelector:l.default}))}},"./client/src/bundles/bundle.js":function(e,t,n){"use strict";n("./client/src/legacy/CMSMain.AddForm.js"),n("./client/src/legacy/CMSMain.EditForm.js"),n("./client/src/legacy/CMSMain.js"),n("./client/src/legacy/CMSMain.Tree.js"),n("./client/src/legacy/CMSPageHistoryController.js"),n("./client/src/legacy/RedirectorPage.js"),n("./client/src/legacy/SiteTreeURLSegmentField.js"),n("./client/src/boot/index.js")},"./client/src/components/AnchorSelectorField/AnchorSelectorField.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t0&&void 0!==arguments[0]?arguments[0]:this.props;if(t.loadingState===E.default.UPDATING||t.loadingState===E.default.SUCCESS||!t.pageId)return Promise.resolve();var n=[];t.loadingState===E.default.FIELD_ONLY&&(n=this.props.anchors),t.actions.anchorSelector.beginUpdating(t.pageId);var r=t.data.endpoint.replace(/:id/,t.pageId);return(0,g.default)(r,{credentials:"same-origin"}).then(function(e){return e.json()}).then(function(e){var r=[].concat(a(new Set([].concat(a(e),a(n)))));return t.actions.anchorSelector.updated(t.pageId,r),r}).catch(function(n){t.actions.anchorSelector.updateFailed(t.pageId),e.handleLoadingError(n,t)})}},{key:"getDropdownOptions",value:function(){var e=this,t=this.props.anchors.map(function(e){return{value:e}});return this.props.value&&!this.props.anchors.find(function(t){return t===e.props.value})&&t.unshift({value:this.props.value}),t}},{key:"handleChange",value:function(e){"function"==typeof this.props.onChange&&this.props.onChange(e?e.value:"")}},{key:"handleLoadingError",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props;if(t.onLoadingError===D)throw e;return t.onLoadingError({errors:[{value:e.message,type:"error"}]})}},{key:"render",value:function(){var e={id:this.props.id},t=(0,j.default)("anchorselectorfield",this.props.extraClass),n=this.getDropdownOptions(),r=this.props.value||"",a=f.default._t("CMS.ANCHOR_SELECT_OR_TYPE","Select or enter anchor");return h.default.createElement(R.Creatable,{searchable:!0,options:n,className:t,name:this.props.name,inputProps:e,onChange:this.handleChange,onBlurResetsInput:!0,value:r,placeholder:a,labelKey:"value"})}}]),t}(y.default);I.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(E.default).map(function(e){return E.default[e]})),onLoadingError:M.default.func,data:M.default.shape({endpoint:M.default.string,targetFieldName:M.default.string})},I.defaultProps={value:"",extraClass:"",onLoadingError:D,attributes:{}};var k=(0,v.connect)(l,d)(I);t.Component=I,t.ConnectedAnchorSelectorField=k,t.default=(0,F.default)(k)},"./client/src/legacy/CMSMain.AddForm.js":function(e,t,n){"use strict";var r=n(0);(function(e){return e&&e.__esModule?e:{default:e}})(r).default.entwine("ss",function(e){e(".TreeDropdownField").entwine({OldValue:null}),e("#Form_AddForm_ParentID_Holder .treedropdownfield").entwine({onmatch:function(){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").bind("change",function(){t.updateTypeList()}),this.find(".SelectionGroup.parent-mode").bind("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(),a=n.data("metadata"),o="child"===r?n.getValue():null,i=a?a.ClassName:null,s=i&&"child"===r&&o?i:"Root",l=void 0!==t[s]?t[s]:null,d=this,c=l&&void 0!==l.defaultChild?l.defaultChild:null,u=[];if(o){if(this.hasClass("loading"))return;return this.addClass("loading"),null!==(u=this.loadCachedChildren(o))?(this.updateSelectionFilter(u,c),void this.removeClass("loading")):(e.ajax({url:d.data("childfilter"),data:{ParentID:o},success:function(e){d.saveCachedChildren(o,e),d.updateSelectionFilter(e,c)},complete:function(){d.removeClass("loading")}}),!1)}u=l&&void 0!==l.disallowedChildren?l.disallowedChildren:[],this.updateSelectionFilter(u,c)},updateSelectionFilter:function(t,n){var r=this.find("#Form_AddForm_PageType div.radio.selected")[0],a=!1,o=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&&(a=!0),e(this).setEnabled(l),l||e(this).setSelected(!1),o=null===o?l:o&&l}),a)var i=e(r).parents("li:first");else if(n)var i=this.find("#Form_AddForm_PageType div.radio input[value="+n+"]").parents("li:first");else var 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")[o?"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"),a=e(".cms-list"),o=0;if(r.is(":visible")){var i=r.jstree("get_selected");o=i?e(i[0]).data("id"):null}else{var s=a.find('input[name="Page[GridState]"]').val();s&&(o=parseInt(JSON.parse(s).ParentID,10))}var l,d={selector:this.data("targetPanel"),pjax:this.data("pjax")};o?(n=this.data("extraParams")?this.data("extraParams"):"",l=e.path.addSearchParams(i18n.sprintf(this.data("urlAddpage"),o),n)):l=this.attr("href"),e(".cms-container").loadPanel(l,null,d),t.preventDefault(),this.blur()}})})},"./client/src/legacy/CMSMain.EditForm.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(a,o){try{var i=t[a](o),s=i.value}catch(e){return void n(e)}if(!i.done)return Promise.resolve(s).then(function(e){r("next",e)},function(e){r("throw",e)});e(s)}return r("next")})}}var o=n(0),i=r(o),s=n(1),l=r(s),d=n("./node_modules/@silverstripe/reactstrap-confirm/dist/index.js"),c=r(d);i.default.entwine("ss",function(e){e(".cms-edit-form :input#Form_EditForm_ClassName").entwine({onchange:function(){alert(l.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),a=e("input[name=LiveLink]",n);r.length>0&&(t._addActions(),this.bind("change",function(n){var o=t.data("OrigVal"),i=t.val();t.data("OrigVal",i),0===r.val().indexOf(r.data("defaultUrl"))&&""==a.val()?t.updateURLSegment(i):e(".update",t.parent()).show().parent(".form__field-holder").addClass("input-group"),t.updateRelatedFields(i,o),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")),r=n.closest(".field.urlsegment"),a=e(".update",this.parent());r.update(t),a.is(":visible")&&a.hide().parent(".form__field-holder").removeClass("input-group")},updateBreadcrumbLabel:function(t){var n=(e(".cms-edit-form input[name=ID]").val(),e("span.cms-panel-link.crumb"));t&&""!=t&&n.text(t)},_addActions:function(){var t,n=this;t=e("