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