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