PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / trunk
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages vtrunk
3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 2.3.2 2.3.3 All 194 releases
convertkit / resources / backend / js / quick-edit.js

quick-edit.js in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages trunk, at resources/backend/js/quick-edit.js

70 lines 2.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Quick Edit
3 *
4 * @author ConvertKit
5 */
6
7 /**
8 * Copies Quick Edit fields into WordPress' #inline-edit table row on load.
9 *
10 * Populates Quick Edit fields for this Plugin with the values output
11 * in the `add_inline_data` WordPress action when the user clicks
12 * a Quick Edit link in a Post, Page or Custom Post Type WP_List_Table.
13 *
14 * WordPress' built in Quick Edit functionality does not do this automatically
15 * for Plugins that register settings, which is why we have this code here.
16 *
17 * @since 1.9.8.0
18 */
19
20 document.addEventListener('DOMContentLoaded', function () {
21 const convertKitQuickEditWrapper = document.querySelector(
22 'tr#inline-edit .inline-edit-wrapper fieldset.inline-edit-col-left'
23 ),
24 convertKitQuickEdit = document.querySelector('#convertkit-quick-edit'),
25 convertKitInlineEditPost = inlineEditPost.edit;
26
27 if (convertKitQuickEditWrapper) {
28 // Move Quick Edit fields from footer into the hidden inline-edit table row.
29 convertKitQuickEditWrapper.appendChild(convertKitQuickEdit);
30
31 // Show the Quick Edit fields, as they are now contained in the inline-edit row which WordPress will show/hide as necessary.
32 convertKitQuickEdit.style.display = 'block';
33
34 // Extend WordPress' inline edit function to load the Plugin's Quick Edit fields.
35 inlineEditPost.edit = function (id) {
36 // Merge arguments from the original function.
37 convertKitInlineEditPost.apply(this, arguments);
38
39 // Get Post ID.
40 if (typeof id === 'object') {
41 id = parseInt(this.getId(id));
42 }
43
44 // Iterate through any ConvertKit inline data, assigning values to Quick Edit fields.
45 document
46 .querySelectorAll('#inline_' + id + ' .convertkit')
47 .forEach(function (element) {
48 // Get Quick Edit field.
49 const convertKitQuickEditField = document.querySelector(
50 '#convertkit-quick-edit select[name="wp-convertkit[' +
51 element.dataset.setting +
52 ']"]'
53 );
54
55 // If the Quick Edit field doesn't exist for this setting, skip it.
56 // (e.g. we're editing a Post and this is a Landing Page setting, that isn't supported in Posts).
57 if (convertKitQuickEditField === null) {
58 return;
59 }
60
61 // Assign the setting's value to the setting's Quick Edit field.
62 convertKitQuickEditField.value = element.dataset.value;
63 });
64
65 // Bind refresh resource event listeners.
66 convertKitRefreshResourcesInitEventListeners();
67 };
68 }
69 });
70