PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 2.3.1
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v2.3.1
4.6.0 4.5.6 4.5.5 4.5.4 4.5.3 4.5.2 trunk 1.0.0 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.5.0 1.6.0 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0 2.2.1 2.2.2 2.3.0 2.3.1 2.3.2 2.3.3 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 2.5.5 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.1.3 3.2.0 3.2.1 3.3.0 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.6.8 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.10 3.9.11 3.9.12 3.9.13 3.9.14 3.9.15 3.9.16 3.9.17 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9 4.0.0 4.0.1 4.0.10 4.0.11 4.0.12 4.0.13 4.0.14 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.0.9 4.1.0 4.1.1 4.1.10 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.2.8 4.2.9 4.3.0 4.3.1 4.4.0 4.4.1 4.4.10 4.4.11 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 4.5.0 4.5.1
embedpress / Gutenberg / src / wistia / edit.js
embedpress / Gutenberg / src / wistia Last commit date
edit.js 7 years ago editor.scss 7 years ago index.js 7 years ago style.scss 7 years ago
edit.js
106 lines
1 /**
2 * Internal dependencies
3 */
4 import EmbedControls from '../common/embed-controls';
5 import EmbedLoading from '../common/embed-loading';
6 import EmbedPlaceholder from '../common/embed-placeholder';
7 import Iframe from '../common/Iframe';
8
9 /**
10 * WordPress dependencies
11 */
12 const { __ } = wp.i18n;
13 const { Component, Fragment } = wp.element;
14
15 class WistiaEdit extends Component {
16 constructor() {
17 super( ...arguments );
18 this.switchBackToURLInput = this.switchBackToURLInput.bind( this );
19 this.setUrl = this.setUrl.bind( this );
20 this.onLoad = this.onLoad.bind( this );
21 this.state = {
22 editingURL: false,
23 url: this.props.attributes.url,
24 fetching: true,
25 cannotEmbed: false
26 };
27 }
28
29 onLoad() {
30 this.setState({
31 fetching: false
32 })
33 }
34 decodeHTMLEntities (str) {
35 if(str && typeof str === 'string') {
36 // strip script/html tags
37 str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
38 str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
39
40 }
41 return str;
42 }
43
44
45 setUrl( event ) {
46 if ( event ) {
47 event.preventDefault();
48 }
49 const { url } = this.state;
50 const { setAttributes } = this.props;
51 setAttributes( { url } );
52 if(url && ( url.match( /^http[s]?:\/\/(?:www\.)?wistia\.com\/medias/i ) || url.match( /^http[s]?:\/\/(?:www\.)?fast\/.wistia\.com\/embed\/medias/i.jsonp) ) ) {
53 let mediaIdMatches = url.match(/medias(.*)/);
54 let mediaId = mediaIdMatches[1];
55
56 let iframeSrc = '//fast.wistia.net/embed/iframe/' + mediaId;
57
58 this.setState( { editingURL: false, cannotEmbed: false } );
59 setAttributes( {iframeSrc: iframeSrc });
60 }
61 else {
62 this.setState({
63 cannotEmbed: true,
64 editingURL: true
65 })
66 }
67 }
68
69 switchBackToURLInput() {
70 this.setState( { editingURL: true } );
71 }
72
73 render() {
74 const { url, editingURL, fetching, cannotEmbed } = this.state;
75 const { iframeSrc } = this.props.attributes;
76
77 const label = __( 'Wistia URL');
78
79 // No preview, or we can't embed the current URL, or we've clicked the edit button.
80 if ( !iframeSrc || editingURL ) {
81 return (
82 <EmbedPlaceholder
83 label={ label }
84 onSubmit={ this.setUrl }
85 value={ url }
86 cannotEmbed={ cannotEmbed }
87 onChange={ ( event ) => this.setState( { url: event.target.value } ) }
88 />
89 );
90 }
91 else {
92 return (
93 <Fragment>
94 {fetching ? <EmbedLoading /> : null}
95 <Iframe src={iframeSrc} onLoad={this.onLoad} style={{ display: fetching ? 'none' : '' }} frameborder="0" width="600" height="330" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" />
96 <EmbedControls
97 showEditButton={ iframeSrc && ! cannotEmbed }
98 switchBackToURLInput={ this.switchBackToURLInput }
99 />
100 </Fragment>
101 );
102 }
103 }
104 };
105 export default WistiaEdit;
106