PluginProbe
WP Ultimate Post Grid / 4.0.1
WP Ultimate Post Grid v4.0.1
4.1.1 trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.8 1.9 2.0 2.1 2.2 2.3 2.4.0 2.5.0 2.6.0 2.7.0 2.8.0 2.8.2 3.0.0 3.3.0 3.4.0 3.5.0 3.6.0 3.7.0 All 32 releases
wp-ultimate-post-grid / assets / js / shared / Api / Template.js

Template.js in WP Ultimate Post Grid 4.0.1, at assets/js/shared/Api/Template.js

71 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import ApiWrapper from 'Shared/ApiWrapper';
2
3 const templateEndpoint = wpupg_admin.endpoints.template;
4 const debounceTime = 500;
5
6 let previewPromises = [];
7 let previewRequests = {};
8 let previewRequestsTimer = null;
9
10 export default {
11 previewShortcode(uid, shortcode, item) {
12 previewRequests[uid] = shortcode;
13
14 clearTimeout(previewRequestsTimer);
15 previewRequestsTimer = setTimeout(() => {
16 this.previewShortcodes( item );
17 }, debounceTime);
18
19 return new Promise( r => previewPromises.push( r ) );
20 },
21 previewShortcodes( item ) {
22 const thesePromises = previewPromises;
23 const theseRequests = previewRequests;
24 previewPromises = [];
25 previewRequests = {};
26
27 const data = {
28 shortcodes: theseRequests,
29 item,
30 };
31
32 fetch(`${templateEndpoint}/preview`, {
33 method: 'POST',
34 headers: {
35 'X-WP-Nonce': wpupg_admin.api_nonce,
36 'Accept': 'application/json',
37 'Content-Type': 'application/json',
38 },
39 credentials: 'same-origin',
40 body: JSON.stringify(data),
41 }).then(response => {
42 return response.json().then(json => {
43 let result = response.ok ? json.preview : {};
44
45 thesePromises.forEach( r => r( result ) );
46 });
47 });
48 },
49 save(template) {
50 const data = {
51 template,
52 };
53
54 return ApiWrapper.call( templateEndpoint, 'POST', data );
55 },
56 delete(slug) {
57 const data = {
58 slug,
59 };
60
61 return ApiWrapper.call( templateEndpoint, 'DELETE', data );
62 },
63 searchItems( input ) {
64 const data = {
65 input,
66 };
67
68 return ApiWrapper.call( `${templateEndpoint}/preview-item`, 'POST', data );
69 },
70 };
71