kopia lustrzana https://github.com/wagtail/wagtail
Populate embed data fields in contentstate
rodzic
14a23af0d0
commit
e5de74d24b
|
|
@ -8,16 +8,14 @@ class EmbedSource extends ModalSource {
|
||||||
this.parseData = this.parseData.bind(this);
|
this.parseData = this.parseData.bind(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
parseData(html) {
|
parseData(html, embed) {
|
||||||
const embed = $.parseHTML(html)[0];
|
|
||||||
|
|
||||||
this.onConfirmAtomicBlock({
|
this.onConfirmAtomicBlock({
|
||||||
embedType: embed.getAttribute('data-embedtype'),
|
embedType: embed.embedType,
|
||||||
url: embed.getAttribute('data-url'),
|
url: embed.url,
|
||||||
providerName: embed.getAttribute('data-provider-name'),
|
providerName: embed.providerName,
|
||||||
authorName: embed.getAttribute('data-author-name'),
|
authorName: embed.authorName,
|
||||||
thumbnail: embed.getAttribute('data-thumbnail-url'),
|
thumbnail: embed.thumbnail,
|
||||||
title: embed.getAttribute('data-title'),
|
title: embed.title,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ from draftjs_exporter.dom import DOM
|
||||||
from wagtail.admin.rich_text.converters import editor_html
|
from wagtail.admin.rich_text.converters import editor_html
|
||||||
from wagtail.admin.rich_text.converters.contentstate_models import Entity
|
from wagtail.admin.rich_text.converters.contentstate_models import Entity
|
||||||
from wagtail.admin.rich_text.converters.html_to_contentstate import AtomicBlockEntityElementHandler
|
from wagtail.admin.rich_text.converters.html_to_contentstate import AtomicBlockEntityElementHandler
|
||||||
from wagtail.embeds import format
|
from wagtail.embeds import embeds, format
|
||||||
from wagtail.embeds.exceptions import EmbedException
|
from wagtail.embeds.exceptions import EmbedException
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -76,7 +76,19 @@ class MediaEmbedElementHandler(AtomicBlockEntityElementHandler):
|
||||||
to contentstate
|
to contentstate
|
||||||
"""
|
"""
|
||||||
def create_entity(self, name, attrs, state, contentstate):
|
def create_entity(self, name, attrs, state, contentstate):
|
||||||
return Entity('EMBED', 'IMMUTABLE', {'url': attrs['url']})
|
try:
|
||||||
|
embed_obj = embeds.get_embed(attrs['url'])
|
||||||
|
embed_data = {
|
||||||
|
'embedType': embed_obj.type,
|
||||||
|
'url': embed_obj.url,
|
||||||
|
'providerName': embed_obj.provider_name,
|
||||||
|
'authorName': embed_obj.author_name,
|
||||||
|
'thumbnail': embed_obj.thumbnail_url,
|
||||||
|
'title': embed_obj.title,
|
||||||
|
}
|
||||||
|
except EmbedException:
|
||||||
|
embed_data = {'url': attrs['url']}
|
||||||
|
return Entity('EMBED', 'IMMUTABLE', embed_data)
|
||||||
|
|
||||||
|
|
||||||
ContentstateMediaConversionRule = {
|
ContentstateMediaConversionRule = {
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue