ContentFrame module responsible for the edited content by opposition to the content of the EditorFrame
An iframe embeds the content of the page to be edited
Initialized by Granite.author.init
- Source:
- ContentFrame.js
Members
-
dataType
-
Type of data expected by the content page
- Source:
- ContentFrame.js
-
iframe :jQuery
-
The iframe object of the outer document.
It embeds the page to edit
Type:
- jQuery
- Source:
- ContentFrame.js
-
location
-
Keeps track of the URL of the content that is currently loaded in the iframe
- Source:
- ContentFrame.js
Methods
-
currentLocation()
-
Returns the current location of the iframe
NB: To get the actual content path of the resource loaded in the Editor, refer to Granite.author.ContentFrame.getContentPath- Source:
- ContentFrame.js
-
getContentPath()
-
Returns the content path of the resource opened in the Editor
- Source:
- ContentFrame.js
-
getDocument()
-
Returns the current document of the iframe
- Source:
- ContentFrame.js
Returns:
- the iframe's document
- Type
- jQuery
-
getEditableConfigNode(path)
-
Returns the HTML node corresponding to the Editable config in the iframe for a given path
Parameters:
Name Type Description path
string data-path attribute value of the editable
- Source:
- ContentFrame.js
Returns:
- Type
- jQuery
-
getEditableNode(path)
-
Returns the HTML node in the iframe corresponding to the Editable for a given path
Parameters:
Name Type Description path
string data-path attribute value of the editable
- Source:
- ContentFrame.js
Returns:
- Type
- jQuery
-
getEditables( [root])
-
Returns all the Editables present in the iframe document
The Editables returned should be ordered according to the structure of the pageThe logic here could be customized at two different levels, by either setting:
- a findEditables function that will override the whole behavior of the method
- a editableConstructor function that will only override the way Editables are instantiated
This could be achieved by calling ContentFrame.setFindEditablesFunction() or ContentFrame.setEditableConstructor() prior to this method.
This method is data type sensitive:
- for HTML data type, the editables are derived from the
elements in the iframe - for JSON data type, the editables are derived from the editContextObj previously fetched
Parameters:
Name Type Argument Description root
jQuery | string <optional>
Either the DOM where to find editables, or the root edit context path under which the editables will be derived.
- Source:
- ContentFrame.js
Returns:
An ordered array of Editables
- Type
- Array.<Granite.author.Editable>
-
init()
-
Initialize the ContentFrame by loading the content page, and subscribing to messages sent by the iframe.
NB: This interacts with the scripts included by the content page (defined incq.authoring.page
)- Source:
- ContentFrame.js
Fires:
- Document#event:cq-contentframe-layout-change
- Document#event:cq-contentframe-datatype-set
-
load(url)
-
Make the iframe load the given URL
Parameters:
Name Type Description url
string URL to be loaded
- Source:
- ContentFrame.js
-
loadEditables()
-
Loads all the Editables.
This method delegates the computation of the editables to Granite.author.ContentFrame.getEditables and then broadcasts the editables.
- Source:
- ContentFrame.js
Fires:
Returns:
An array of all Granite.author.Editables in the content frame
- Type
- Array.<Granite.author.Editable>
-
loadEditablesAsync( [forceReloadEditContext])
-
Loads all the Editables and returns a promise that resolves when the editables are loaded.
This method has a data type sensitive behavior, contrary to Granite.author.ContentFrame.loadEditables:
- for HTML data type, the editables are actually synchronously loaded via Granite.author.ContentFrame.loadEditables
- for JSON data type, this method first waits for the page model change and layout changed events before fetching the edit context.
and then delegates to Granite.author.ContentFrame.loadEditables
Parameters:
Name Type Argument Description forceReloadEditContext
boolean <optional>
should the edit context be reloaded
- Source:
- ContentFrame.js
Fires:
Returns:
An array of all Granite.author.Editables in the content frame
- Type
- $.Promise
-
reload()
-
Reloads the current URL
- Source:
- ContentFrame.js
-
resetContentHeight( [autoHeight])
-
Resets the height of the ContentWrapper and ContentFrame; used to adjust the iframe height when a change occurs inside of the content page
This is called on cq-contentframe-layout-change eventParameters:
Name Type Argument Description autoHeight
boolean <optional>
Allow a deep computation of the iFrame inner content height. The inner content is entirely redrawn before the inner document height is applied to the iFrame
- Source:
- ContentFrame.js
-
setEditableConstructor(cons)
-
Provides the Granite.author.Editables constructor function
Parameters:
Name Type Description cons
function The constructor function used to instantiate Granite.author.Editables
- Source:
- ContentFrame.js
- See:
-
- ContentFrame.getEditables
-
setFindEditablesFunction(func)
-
Provides a function to be used when exploring the DOM for Granite.author.Editables
Parameters:
Name Type Description func
function The function responsible for providing a list of Granite.author.Editable
- Source:
- ContentFrame.js
- See:
-
- ContentFrame.getEditables
-
showPlaceholder(condition)
-
Toggle all the placeholders elements of the iframe
NB: This causes a full rendering of the inner document
Parameters:
Name Type Description condition
boolean Should the placeholders be displayed
- Source:
- ContentFrame.js