mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
FIX Fix link plugins to support tinymce6
This commit is contained in:
parent
d56682509c
commit
7368df8757
2
client/dist/js/TinyMCE_sslink-anchor.js
vendored
2
client/dist/js/TinyMCE_sslink-anchor.js
vendored
@ -1 +1 @@
|
||||
!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.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/legacy/TinyMCE_sslink-anchor.js")}({"./client/src/legacy/TinyMCE_sslink-anchor.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),o=r(i),a=n(9),c=r(a),l=n(1),s=r(l),d=n(5),u=r(d),p=n(4),f=n(6),A=n(0),E=r(A),_=n(8),C=r(_),h=n(7),g=n(3),R=n("./client/src/state/anchorSelector/AnchorSelectorActions.js");c.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_ANCHOR","Anchor on a page"),onclick:function(e){return e.execCommand("sslinkanchor")},priority:60},editorIdentifier).addCommandWithUrlTest("sslinkanchor",/^\[sitetree_link.+]#[^#\]]+$/);var O={init:function(e){e.addCommand("sslinkanchor",function(){var t=(0,E.default)("#"+e.id).entwine("ss"),n=Number((0,E.default)("#Form_EditForm_ID").val()||0),r=e.$("[id],[name]",e.getBody()).toArray().map(function(e){return e.id||e.name});ss.store.dispatch((0,R.updatedCurrentField)(n,r,e.id)),t.openLinkAnchorDialog()})}},m="insert-link__dialog-wrapper--anchor",T=(0,g.provideInjector)((0,h.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorAnchorLink"));E.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkAnchorDialog:function(){var t=e("#"+m);t.length||(t=e('<div id="'+m+'" />'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+m).entwine({renderModal:function(t){var n=this,r=ss.store,i=ss.apolloClient,a=function(){return n.close()},c=function(){return n.handleInsert.apply(n,arguments)},l=this.getOriginalAttributes(),d=tinymce.activeEditor.selection,A=d.getContent()||"",E=d.getNode().tagName,_="A"!==E&&""===A.trim(),C=Number(e("#Form_EditForm_ID").val()||0);u.default.render(s.default.createElement(p.ApolloProvider,{client:i},s.default.createElement(f.Provider,{store:r},s.default.createElement(T,{isOpen:t,onInsert:c,onClosed:a,title:o.default._t("CMS.LINK_ANCHOR","Link to an anchor on a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--anchor",fileAttributes:l,identifier:"Admin.InsertLinkAnchorModal",requireLinkText:_,currentPageID:C}))),this[0])},buildAttributes:function(e){return{href:C.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=C.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkanchor",function(e){return O.init(e)}),t.default=O},"./client/src/state/anchorSelector/AnchorSelectorActionTypes.js":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={ANCHORSELECTOR_CURRENT_FIELD:"ANCHORSELECTOR_CURRENT_FIELD",ANCHORSELECTOR_UPDATED:"ANCHORSELECTOR_UPDATED",ANCHORSELECTOR_UPDATING:"ANCHORSELECTOR_UPDATING",ANCHORSELECTOR_UPDATE_FAILED:"ANCHORSELECTOR_UPDATE_FAILED"}},"./client/src/state/anchorSelector/AnchorSelectorActions.js":function(e,t,n){"use strict";function r(e){return{type:l.default.ANCHORSELECTOR_UPDATING,payload:{pageId:e}}}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:l.default.ANCHORSELECTOR_UPDATED,payload:{pageId:e,anchors:t,cacheResult:n}}}function o(e,t,n){return{type:l.default.ANCHORSELECTOR_CURRENT_FIELD,payload:{pageId:e,anchors:t,fieldID:n}}}function a(e){return{type:l.default.ANCHORSELECTOR_UPDATE_FAILED,payload:{pageId:e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.beginUpdating=r,t.updated=i,t.updatedCurrentField=o,t.updateFailed=a;var c=n("./client/src/state/anchorSelector/AnchorSelectorActionTypes.js"),l=function(e){return e&&e.__esModule?e:{default:e}}(c)},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=React},2:function(e,t){e.exports=i18n},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}});
|
||||
!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.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/legacy/TinyMCE_sslink-anchor.js")}({"./client/src/legacy/TinyMCE_sslink-anchor.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),o=r(i),a=n(9),l=r(a),c=n(1),s=r(c),d=n(5),u=r(d),p=n(4),f=n(6),A=n(0),E=r(A),_=n(8),C=r(_),h=n(7),g=n(3),R=n("./client/src/state/anchorSelector/AnchorSelectorActions.js");l.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_ANCHOR","Anchor on a page"),onAction:function(e){return e.execCommand("sslinkanchor")},priority:60},editorIdentifier).addCommandWithUrlTest("sslinkanchor",/^\[sitetree_link.+]#[^#\]]+$/);var O={init:function(e){e.addCommand("sslinkanchor",function(){var t=(0,E.default)("#"+e.id).entwine("ss"),n=Number((0,E.default)("#Form_EditForm_ID").val()||0),r=(0,E.default)(e.getBody()).find("[id],[name]").toArray().map(function(e){return e.id||e.name});ss.store.dispatch((0,R.updatedCurrentField)(n,r,e.id)),t.openLinkAnchorDialog()})}},m="insert-link__dialog-wrapper--anchor",T=(0,g.provideInjector)((0,h.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorAnchorLink"));E.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkAnchorDialog:function(){var t=e("#"+m);t.length||(t=e('<div id="'+m+'" />'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+m).entwine({renderModal:function(t){var n=this,r=ss.store,i=ss.apolloClient,a=function(){return n.close()},l=function(){return n.handleInsert.apply(n,arguments)},c=this.getOriginalAttributes(),d=tinymce.activeEditor.selection,A=d.getContent()||"",E=d.getNode().tagName,_="A"!==E&&""===A.trim(),C=Number(e("#Form_EditForm_ID").val()||0);u.default.render(s.default.createElement(p.ApolloProvider,{client:i},s.default.createElement(f.Provider,{store:r},s.default.createElement(T,{isOpen:t,onInsert:l,onClosed:a,title:o.default._t("CMS.LINK_ANCHOR","Link to an anchor on a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--anchor",fileAttributes:c,identifier:"Admin.InsertLinkAnchorModal",requireLinkText:_,currentPageID:C}))),this[0])},buildAttributes:function(e){return{href:C.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=C.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkanchor",function(e){return O.init(e)}),t.default=O},"./client/src/state/anchorSelector/AnchorSelectorActionTypes.js":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={ANCHORSELECTOR_CURRENT_FIELD:"ANCHORSELECTOR_CURRENT_FIELD",ANCHORSELECTOR_UPDATED:"ANCHORSELECTOR_UPDATED",ANCHORSELECTOR_UPDATING:"ANCHORSELECTOR_UPDATING",ANCHORSELECTOR_UPDATE_FAILED:"ANCHORSELECTOR_UPDATE_FAILED"}},"./client/src/state/anchorSelector/AnchorSelectorActions.js":function(e,t,n){"use strict";function r(e){return{type:c.default.ANCHORSELECTOR_UPDATING,payload:{pageId:e}}}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.default.ANCHORSELECTOR_UPDATED,payload:{pageId:e,anchors:t,cacheResult:n}}}function o(e,t,n){return{type:c.default.ANCHORSELECTOR_CURRENT_FIELD,payload:{pageId:e,anchors:t,fieldID:n}}}function a(e){return{type:c.default.ANCHORSELECTOR_UPDATE_FAILED,payload:{pageId:e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.beginUpdating=r,t.updated=i,t.updatedCurrentField=o,t.updateFailed=a;var l=n("./client/src/state/anchorSelector/AnchorSelectorActionTypes.js"),c=function(e){return e&&e.__esModule?e:{default:e}}(l)},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=React},2:function(e,t){e.exports=i18n},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}});
|
2
client/dist/js/TinyMCE_sslink-internal.js
vendored
2
client/dist/js/TinyMCE_sslink-internal.js
vendored
@ -1 +1 @@
|
||||
!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.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/legacy/TinyMCE_sslink-internal.js")}({"./client/src/legacy/TinyMCE_sslink-internal.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),o=r(i),a=n(9),l=r(a),s=n(1),u=r(s),c=n(5),d=r(c),f=n(4),p=n(6),g=n(0),k=r(g),m=n(8),_=r(m),h=n(7),x=n(3);l.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_PAGE","Page on this site"),onclick:function(e){return e.execCommand("sslinkinternal")},priority:90},editorIdentifier).addCommandWithUrlTest("sslinkinternal",/^\[sitetree_link.+]$/);var I={init:function(e){e.addCommand("sslinkinternal",function(){(0,k.default)("#"+e.id).entwine("ss").openLinkInternalDialog()})}},A="insert-link__dialog-wrapper--internal",C=(0,x.provideInjector)((0,h.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorInternalLink"));k.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkInternalDialog:function(){var t=e("#"+A);t.length||(t=e('<div id="'+A+'" />'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+A).entwine({renderModal:function(e){var t=this,n=ss.store,r=ss.apolloClient,i=function(){return t.close()},a=function(){return t.handleInsert.apply(t,arguments)},l=this.getOriginalAttributes(),s=this.getRequireLinkText();d.default.render(u.default.createElement(f.ApolloProvider,{client:r},u.default.createElement(p.Provider,{store:n},u.default.createElement(C,{isOpen:e,onInsert:a,onClosed:i,title:o.default._t("CMS.LINK_PAGE","Link to a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--internal",fileAttributes:l,identifier:"Admin.InsertLinkInternalModal",requireLinkText:s}))),this[0])},getRequireLinkText:function(){var e=this.getElement().getEditor().getInstance().selection,t=e.getContent()||"";return"A"!==e.getNode().tagName&&""===t.trim()},buildAttributes:function(e){return{href:_.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=_.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkinternal",function(e){return I.init(e)}),t.default=I},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=React},2:function(e,t){e.exports=i18n},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}});
|
||||
!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.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/legacy/TinyMCE_sslink-internal.js")}({"./client/src/legacy/TinyMCE_sslink-internal.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(2),o=r(i),a=n(9),l=r(a),s=n(1),u=r(s),c=n(5),d=r(c),f=n(4),p=n(6),g=n(0),k=r(g),m=n(8),_=r(m),h=n(7),x=n(3);l.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_PAGE","Page on this site"),onAction:function(e){return e.execCommand("sslinkinternal")},priority:90},editorIdentifier).addCommandWithUrlTest("sslinkinternal",/^\[sitetree_link.+]$/);var A={init:function(e){e.addCommand("sslinkinternal",function(){(0,k.default)("#"+e.id).entwine("ss").openLinkInternalDialog()})}},I="insert-link__dialog-wrapper--internal",C=(0,x.provideInjector)((0,h.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorInternalLink"));k.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkInternalDialog:function(){var t=e("#"+I);t.length||(t=e('<div id="'+I+'" />'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+I).entwine({renderModal:function(e){var t=this,n=ss.store,r=ss.apolloClient,i=function(){return t.close()},a=function(){return t.handleInsert.apply(t,arguments)},l=this.getOriginalAttributes(),s=this.getRequireLinkText();d.default.render(u.default.createElement(f.ApolloProvider,{client:r},u.default.createElement(p.Provider,{store:n},u.default.createElement(C,{isOpen:e,onInsert:a,onClosed:i,title:o.default._t("CMS.LINK_PAGE","Link to a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--internal",fileAttributes:l,identifier:"Admin.InsertLinkInternalModal",requireLinkText:s}))),this[0])},getRequireLinkText:function(){var e=this.getElement().getEditor().getInstance().selection,t=e.getContent()||"";return"A"!==e.getNode().tagName&&""===t.trim()},buildAttributes:function(e){return{href:_.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=_.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkinternal",function(e){return A.init(e)}),t.default=A},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=React},2:function(e,t){e.exports=i18n},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}});
|
@ -19,7 +19,7 @@ TinyMCEActionRegistrar
|
||||
'sslink',
|
||||
{
|
||||
text: i18n._t('CMS.LINKLABEL_ANCHOR', 'Anchor on a page'),
|
||||
onclick: (activeEditor) => activeEditor.execCommand(commandName),
|
||||
onAction: (activeEditor) => activeEditor.execCommand(commandName),
|
||||
priority: 60,
|
||||
},
|
||||
editorIdentifier,
|
||||
@ -32,8 +32,8 @@ const plugin = {
|
||||
const field = jQuery(`#${editor.id}`).entwine('ss');
|
||||
// Get the anchors in the current field and save them as props for AnchorSelectorField
|
||||
const currentPageID = Number(jQuery('#Form_EditForm_ID').val() || 0);
|
||||
const validTargets = editor
|
||||
.$('[id],[name]', editor.getBody())
|
||||
const validTargets = jQuery(editor.getBody())
|
||||
.find('[id],[name]')
|
||||
.toArray()
|
||||
.map((element) => element.id || element.name);
|
||||
ss.store.dispatch(updatedCurrentField(currentPageID, validTargets, editor.id));
|
||||
|
@ -18,7 +18,7 @@ TinyMCEActionRegistrar
|
||||
'sslink',
|
||||
{
|
||||
text: i18n._t('CMS.LINKLABEL_PAGE', 'Page on this site'),
|
||||
onclick: (activeEditor) => activeEditor.execCommand(commandName),
|
||||
onAction: (activeEditor) => activeEditor.execCommand(commandName),
|
||||
priority: 90,
|
||||
},
|
||||
editorIdentifier,
|
||||
|
@ -62,7 +62,7 @@ Feature: Edit a page
|
||||
Then I should see "About Us"
|
||||
And I go to "/about-modified-us"
|
||||
Then I should not see "About Us"
|
||||
|
||||
|
||||
# Assert URL segment + metadata on frontend
|
||||
When I go to "/admin/pages"
|
||||
And I click on "About Us" in the tree
|
||||
@ -79,19 +79,19 @@ Feature: Edit a page
|
||||
When I click on "About Us" in the tree
|
||||
|
||||
# Embed files from the "Files" section of the admin area
|
||||
And I click on the "div[aria-label='Insert from Files'] button" element
|
||||
And I press the "Insert from Files" HTML field button
|
||||
And I click on the ".gallery__files .gallery-item__thumbnail" element
|
||||
And I press the "Insert file" button
|
||||
|
||||
# Link to a file in the "Files" section of the admin area
|
||||
And I click on the "div[aria-label='Insert link [Ctrl+K]'] button" element
|
||||
And I select "Link to a file" from the TinyMCE menu with javascript
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Link to a file" in the ".tox-collection__group" element
|
||||
And I click on the ".gallery__files .gallery-item__thumbnail" element
|
||||
And I fill in "Form_fileInsertForm_Text" with "MyImage"
|
||||
And I press the "Link to file" button
|
||||
|
||||
# Embed media from a URL
|
||||
And I click on the "div[aria-label='Insert media via URL'] button" element
|
||||
And I press the "Insert media via URL" button
|
||||
And I fill in "Form_remoteCreateForm_Url" with "https://www.youtube.com/watch?v=ScMzIvxBSi4"
|
||||
And I press "Add media"
|
||||
And I wait for 15 seconds
|
||||
|
@ -15,12 +15,12 @@ So that I can link to a external website or a page on my site
|
||||
Scenario: I can link to an internal page
|
||||
When I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Page on this site" in the ".mce-menu" element
|
||||
And I click "Page on this site" in the ".tox-collection__group" element
|
||||
Then I should see an "form#Form_editorInternalLink" element
|
||||
When I click "(Search or choose Page)" in the ".Select-multi-value-wrapper" element
|
||||
And I click "About Us" in the ".treedropdownfield__menu" element
|
||||
And I fill in "my desc" for "Link description"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a title="my desc" href="[sitetree_link,id=2]">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
@ -29,7 +29,7 @@ So that I can link to a external website or a page on my site
|
||||
Given I fill in the "Content" HTML field with "<a title='my desc' href='[sitetree_link,id=2]'>awesome</a>"
|
||||
And I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Page on this site" in the ".mce-menu" element
|
||||
And I click "Page on this site" in the ".tox-collection__group" element
|
||||
And I should see an "form#Form_editorInternalLink" element
|
||||
Then I should see "About Us" in the ".Select-value" element
|
||||
And the "Link description" field should contain "my desc"
|
||||
@ -37,7 +37,7 @@ So that I can link to a external website or a page on my site
|
||||
When I click "About Us" in the ".Select-value" element
|
||||
And I click "Home" in the ".treedropdownfield__menu" element
|
||||
And I fill in "my new desc" for "Link description"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a title="my new desc" href="[sitetree_link,id=1]">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
@ -45,11 +45,11 @@ So that I can link to a external website or a page on my site
|
||||
Scenario: I can link to an external URL
|
||||
Given I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
When I click "Link to external URL" in the ".mce-menu" element
|
||||
When I click "Link to external URL" in the ".tox-collection__group" element
|
||||
And I should see an "form#Form_ModalsEditorExternalLink" element
|
||||
When I fill in "http://silverstripe.org" for "URL"
|
||||
And I check "Open in new window/tab"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a rel="noopener" href="http://silverstripe.org" target="_blank">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
@ -58,12 +58,12 @@ So that I can link to a external website or a page on my site
|
||||
Given I fill in the "Content" HTML field with "<p>My <a href='http://silverstripe.org'>awesome</a> content"
|
||||
And I select "awesome" in the "Content" HTML field
|
||||
When I press the "Insert link" HTML field button
|
||||
And I click "Link to external URL" in the ".mce-menu" element
|
||||
And I click "Link to external URL" in the ".tox-collection__group" element
|
||||
And I should see an "form#Form_ModalsEditorExternalLink" element
|
||||
Then the "URL" field should contain "http://silverstripe.org"
|
||||
# This doesn't seem to suffer from that issue
|
||||
When I fill in "http://google.com" for "URL"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a href="http://google.com">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
|
@ -16,7 +16,7 @@ So that I can link to a external website or a page on my site
|
||||
Scenario: I can link to an anchor in an internal page
|
||||
When I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Anchor on a page" in the ".mce-menu" element
|
||||
And I click "Anchor on a page" in the ".tox-collection__group" element
|
||||
Then I should see an "form#Form_editorAnchorLink" element
|
||||
And I should see "About Us" in the "#Form_editorAnchorLink_PageID_Holder .Select-multi-value-wrapper" element
|
||||
When I click "About Us" in the "#Form_editorAnchorLink_PageID_Holder .Select-multi-value-wrapper" element
|
||||
@ -25,7 +25,7 @@ So that I can link to a external website or a page on my site
|
||||
And I click "youranchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-menu-outer" element
|
||||
Then I should see "youranchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-value" element
|
||||
When I fill in "my desc" for "Link description"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a title="my desc" href="[sitetree_link,id=3]#youranchor">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
@ -33,7 +33,7 @@ So that I can link to a external website or a page on my site
|
||||
Scenario: I can link to an anchor from a dataobject on the current page
|
||||
When I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Anchor on a page" in the ".mce-menu" element
|
||||
And I click "Anchor on a page" in the ".tox-collection__group" element
|
||||
Then I should see an "form#Form_editorAnchorLink" element
|
||||
And I should see "About Us" in the "#Form_editorAnchorLink_PageID_Holder .Select-multi-value-wrapper" element
|
||||
When I click "Select or enter anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-multi-value-wrapper" element
|
||||
@ -41,7 +41,7 @@ So that I can link to a external website or a page on my site
|
||||
When I click "dataobject-anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-menu-outer" element
|
||||
Then I should see "dataobject-anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-value" element
|
||||
When I fill in "my desc" for "Link description"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a title="my desc" href="[sitetree_link,id=2]#dataobject-anchor">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
@ -50,7 +50,7 @@ So that I can link to a external website or a page on my site
|
||||
Given I fill in the "Content" HTML field with "<p>My awesome content</p><p><a id='unsaved-anchor'></a>unsaved content</p>"
|
||||
When I select "awesome" in the "Content" HTML field
|
||||
And I press the "Insert link" HTML field button
|
||||
And I click "Anchor on a page" in the ".mce-menu" element
|
||||
And I click "Anchor on a page" in the ".tox-collection__group" element
|
||||
Then I should see an "form#Form_editorAnchorLink" element
|
||||
And I should see "About Us" in the "#Form_editorAnchorLink_PageID_Holder .Select-multi-value-wrapper" element
|
||||
When I click "Select or enter anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-multi-value-wrapper" element
|
||||
@ -59,7 +59,7 @@ So that I can link to a external website or a page on my site
|
||||
When I click "unsaved-anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-menu-outer" element
|
||||
Then I should see "unsaved-anchor" in the "#Form_editorAnchorLink_Anchor_Holder .Select-value" element
|
||||
When I fill in "my desc" for "Link description"
|
||||
And I press the "Insert" button
|
||||
And I press the "Insert link" button
|
||||
Then the "Content" HTML field should contain "<a title="my desc" href="[sitetree_link,id=2]#unsaved-anchor">awesome</a>"
|
||||
# Required to avoid "unsaved changes" browser dialog
|
||||
Then I press the "Save" button
|
||||
|
@ -1,4 +1,3 @@
|
||||
@gsat
|
||||
Feature: Redirector Pages
|
||||
As an author
|
||||
I want to redirect to a different location
|
||||
|
@ -118,22 +118,6 @@ class FixtureContext extends BehatFixtureContext
|
||||
Assert::assertEquals($value, $radioButton->getAttribute($attribute));
|
||||
}
|
||||
|
||||
/**
|
||||
* Assumes you've just opened the Insert link menu, e.g.
|
||||
* I click on the "div[aria-label='Insert link [Ctrl+K]'] button" element
|
||||
*
|
||||
* @When /^I select "(.+?)" from the TinyMCE menu with javascript$/
|
||||
* @param string $label
|
||||
*/
|
||||
public function iSelectFromTheTinyMceMenu($label)
|
||||
{
|
||||
// :visible and :contains are jQuery css selectors
|
||||
$js = <<<JS
|
||||
jQuery(".mce-menu-item:visible span:contains('{$label}')").click();
|
||||
JS;
|
||||
$this->getMainContext()->getSession()->executeScript($js);
|
||||
}
|
||||
|
||||
/**
|
||||
* e.g. --PageOne,--PageTwo,---PageTwoChild,--PageThree
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user