PluginProbe ʕ •ᴥ•ʔ
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents / 2.3.3
EmbedPress – PDF Embedder, 3D PDF FlipBook, Google Reviews, YouTube Videos, Upload & Embed PDF documents v2.3.3
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 6 years ago editor.scss 6 years ago index.js 6 years ago index.php 6 years ago style.scss 6 years ago
edit.js
144 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 mediaId: null
27 };
28 this.setUrl();
29 }
30
31
32 componentDidMount () {
33 if(this.props.attributes.url) {
34 let mediaIdMatches = this.props.attributes.url.match(/medias\/(.*)/);
35 let mediaId = mediaIdMatches[1];
36 this.setState({
37 ...this.state,
38 mediaId
39 });
40 }
41 }
42
43 onLoad() {
44 this.setState({
45 fetching: false
46 });
47 console.log(embedpressObj);
48 if(embedpressObj['wisita_options']) {
49 let $state = { ...this.state }
50 setTimeout(function() {
51 let script = document.createElement("script");
52 script.src = "https://fast.wistia.com/assets/external/E-v1.js";
53 script.charset="ISO-8859-1"
54 document.body.appendChild(script);
55 }, 100);
56
57 setTimeout(function() {
58 let script = document.createElement("script");
59 script.type = 'text/javascript';
60 script.innerHTML = 'window.pp_embed_wistia_labels = ' + embedpressObj['wistia_labels'];
61 document.body.appendChild(script);
62
63 script = document.createElement("script");
64 script.type = 'text/javascript';
65 script.innerHTML = 'wistiaEmbed = Wistia.embed( \"'+ $state.mediaId + '\", ' + embedpressObj.wisita_options + ' );';
66 document.body.appendChild(script);
67 }, 400);
68 }
69
70 }
71 decodeHTMLEntities (str) {
72 if(str && typeof str === 'string') {
73 // strip script/html tags
74 str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
75 str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
76
77 }
78 return str;
79 }
80
81
82 setUrl( event ) {
83 if ( event ) {
84 event.preventDefault();
85 }
86 const { url } = this.state;
87 const { setAttributes } = this.props;
88 setAttributes( { url } );
89 if(url && ( url.match( /^http[s]?:\/\/(?:www\.)?wistia\.com\/medias/i ) || url.match( /^http[s]?:\/\/(?:www\.)?fast\/.wistia\.com\/embed\/medias/i.jsonp) ) ) {
90 let mediaIdMatches = url.match(/medias\/(.*)/);
91 let mediaId = mediaIdMatches[1];
92 let iframeSrc = '//fast.wistia.net/embed/iframe/' + mediaId;
93
94 this.setState( { editingURL: false, cannotEmbed: false, mediaId } );
95 setAttributes( {iframeSrc });
96 }
97 else {
98 this.setState({
99 cannotEmbed: true,
100 editingURL: true
101 })
102 }
103 }
104
105 switchBackToURLInput() {
106 this.setState( { editingURL: true } );
107 }
108
109 render() {
110 const { url, editingURL, fetching, cannotEmbed } = this.state;
111 const { iframeSrc } = this.props.attributes;
112
113 const label = __( 'Wistia URL');
114
115 // No preview, or we can't embed the current URL, or we've clicked the edit button.
116 if ( !iframeSrc || editingURL ) {
117 return (
118 <EmbedPlaceholder
119 label={ label }
120 onSubmit={ this.setUrl }
121 value={ url }
122 cannotEmbed={ cannotEmbed }
123 onChange={ ( event ) => this.setState( { url: event.target.value } ) }
124 />
125 );
126 }
127 else {
128 return (
129 <Fragment>
130 {fetching ? <EmbedLoading /> : null}
131 <div className="ose-wistia" id={"wistia_" + this.state.mediaId }>
132 <Iframe src={iframeSrc} onLoad={this.onLoad} style={{ display: fetching ? 'none' : '' }} frameborder="0" width="600" height="330" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true" />
133 </div>
134 <EmbedControls
135 showEditButton={ iframeSrc && ! cannotEmbed }
136 switchBackToURLInput={ this.switchBackToURLInput }
137 />
138 </Fragment>
139 );
140 }
141 }
142 };
143 export default WistiaEdit;
144