PluginProbe ʕ •ᴥ•ʔ
Secure Custom Fields / 6.4.2
Secure Custom Fields v6.4.2
6.9.1 6.9.0 6.8.9 6.8.7 6.8.8 6.8.6 6.8.4 6.8.5 trunk 6.4.0-beta1 6.4.0-beta2 6.4.1 6.4.1-beta3 6.4.1-beta4 6.4.1-beta5 6.4.1-beta6 6.4.1-beta7 6.4.2 6.5.0 6.5.1 6.5.2 6.5.3 6.5.4 6.5.5 6.5.6 6.5.7 6.6.0 6.7.0 6.7.1 6.8.0 6.8.1 6.8.2 6.8.3
secure-custom-fields / assets / build / js / acf-internal-post-type.js
secure-custom-fields / assets / build / js Last commit date
pro 1 year ago acf-escaped-html-notice.js 1 year ago acf-escaped-html-notice.js.map 1 year ago acf-escaped-html-notice.min.js 1 year ago acf-field-group.js 1 year ago acf-field-group.js.map 1 year ago acf-field-group.min.js 1 year ago acf-input.js 1 year ago acf-input.js.map 1 year ago acf-input.min.js 1 year ago acf-internal-post-type.js 1 year ago acf-internal-post-type.js.map 1 year ago acf-internal-post-type.min.js 1 year ago acf.js 1 year ago acf.js.map 1 year ago acf.min.js 1 year ago index.php 1 year ago
acf-internal-post-type.js
402 lines
1 /******/ (() => { // webpackBootstrap
2 /******/ var __webpack_modules__ = ({
3
4 /***/ "./assets/src/js/_acf-internal-post-type.js":
5 /*!**************************************************!*\
6 !*** ./assets/src/js/_acf-internal-post-type.js ***!
7 \**************************************************/
8 /***/ (() => {
9
10 (function ($, undefined) {
11 /**
12 * internalPostTypeSettingsManager
13 *
14 * Model for handling events in the settings metaboxes of internal post types
15 *
16 * @since ACF 6.1
17 */
18 const internalPostTypeSettingsManager = new acf.Model({
19 id: 'internalPostTypeSettingsManager',
20 wait: 'ready',
21 events: {
22 'blur .acf_slugify_to_key': 'onChangeSlugify',
23 'blur .acf_singular_label': 'onChangeSingularLabel',
24 'blur .acf_plural_label': 'onChangePluralLabel',
25 'change .acf_hierarchical_switch': 'onChangeHierarchical',
26 'click .acf-regenerate-labels': 'onClickRegenerateLabels',
27 'click .acf-clear-labels': 'onClickClearLabels',
28 'change .rewrite_slug_field': 'onChangeURLSlug',
29 'keyup .rewrite_slug_field': 'onChangeURLSlug'
30 },
31 onChangeSlugify: function (e, $el) {
32 const name = $el.val();
33 const $keyInput = $('.acf_slugified_key');
34
35 // Generate field key.
36 if ($keyInput.val().trim() == '') {
37 let slug = acf.strSanitize(name.trim()).replaceAll('_', '-');
38 slug = acf.applyFilters('generate_internal_post_type_name', slug, this);
39 let slugLength = 0;
40 if ('taxonomy' === acf.get('screen')) {
41 slugLength = 32;
42 } else if ('post_type' === acf.get('screen')) {
43 slugLength = 20;
44 }
45 if (slugLength) {
46 slug = slug.substring(0, slugLength);
47 }
48 $keyInput.val(slug);
49 }
50 },
51 initialize: function () {
52 // check we should init.
53 if (!['taxonomy', 'post_type'].includes(acf.get('screen'))) return;
54
55 // select2
56 const template = function (selection) {
57 if ('undefined' === typeof selection.element) {
58 return selection;
59 }
60 const $parentSelect = $(selection.element.parentElement);
61 const $selection = $('<span class="acf-selection"></span>');
62 $selection.html(acf.strEscape(selection.element.innerHTML));
63 let isDefault = false;
64 if ($parentSelect.filter('.acf-taxonomy-manage_terms, .acf-taxonomy-edit_terms, .acf-taxonomy-delete_terms').length && selection.id === 'manage_categories') {
65 isDefault = true;
66 } else if ($parentSelect.filter('.acf-taxonomy-assign_terms').length && selection.id === 'edit_posts') {
67 isDefault = true;
68 } else if (selection.id === 'taxonomy_key' || selection.id === 'post_type_key' || selection.id === 'default') {
69 isDefault = true;
70 }
71 if (isDefault) {
72 $selection.append('<span class="acf-select2-default-pill">' + acf.__('Default') + '</span>');
73 }
74 $selection.data('element', selection.element);
75 return $selection;
76 };
77 acf.newSelect2($('select.query_var'), {
78 field: false,
79 templateSelection: template,
80 templateResult: template
81 });
82 acf.newSelect2($('select.acf-taxonomy-manage_terms'), {
83 field: false,
84 templateSelection: template,
85 templateResult: template
86 });
87 acf.newSelect2($('select.acf-taxonomy-edit_terms'), {
88 field: false,
89 templateSelection: template,
90 templateResult: template
91 });
92 acf.newSelect2($('select.acf-taxonomy-delete_terms'), {
93 field: false,
94 templateSelection: template,
95 templateResult: template
96 });
97 acf.newSelect2($('select.acf-taxonomy-assign_terms'), {
98 field: false,
99 templateSelection: template,
100 templateResult: template
101 });
102 acf.newSelect2($('select.meta_box'), {
103 field: false,
104 templateSelection: template,
105 templateResult: template
106 });
107 const permalinkRewrite = acf.newSelect2($('select.permalink_rewrite'), {
108 field: false,
109 templateSelection: template,
110 templateResult: template
111 });
112 $('.rewrite_slug_field').trigger('change');
113 permalinkRewrite.on('change', function (e) {
114 $('.rewrite_slug_field').trigger('change');
115 });
116 },
117 onChangeURLSlug: function (e, $el) {
118 const $field = $('div.acf-field.acf-field-permalink-rewrite');
119 const rewriteType = $field.find('select').find('option:selected').val();
120 const originalInstructions = $field.data(rewriteType + '_instructions');
121 const siteURL = $field.data('site_url');
122 const $permalinkDesc = $field.find('p.description').first();
123 if (rewriteType === 'taxonomy_key' || rewriteType === 'post_type_key') {
124 var slugvalue = $('.acf_slugified_key').val().trim();
125 } else {
126 var slugvalue = $el.val().trim();
127 }
128 if (!slugvalue.length) slugvalue = '{slug}';
129 $permalinkDesc.html($('<span>' + originalInstructions + '</span>').text().replace('{slug}', '<strong>' + $('<span>' + siteURL + '/' + slugvalue + '</span>').text() + '</strong>'));
130 },
131 onChangeSingularLabel: function (e, $el) {
132 const label = $el.val();
133 this.updateLabels(label, 'singular', false);
134 },
135 onChangePluralLabel: function (e, $el) {
136 const label = $el.val();
137 this.updateLabels(label, 'plural', false);
138 },
139 onChangeHierarchical: function (e, $el) {
140 const hierarchical = $el.is(':checked');
141 if ('taxonomy' === acf.get('screen')) {
142 let text = $('.acf-field-meta-box').data('tags_meta_box');
143 if (hierarchical) {
144 text = $('.acf-field-meta-box').data('categories_meta_box');
145 }
146 $('#acf_taxonomy-meta_box').find('option:first').text(text).trigger('change');
147 }
148 this.updatePlaceholders(hierarchical);
149 },
150 onClickRegenerateLabels: function (e, $el) {
151 this.updateLabels($('.acf_singular_label').val(), 'singular', true);
152 this.updateLabels($('.acf_plural_label').val(), 'plural', true);
153 },
154 onClickClearLabels: function (e, $el) {
155 this.clearLabels();
156 },
157 updateLabels(label, type, force) {
158 $('[data-label][data-replace="' + type + '"').each((index, element) => {
159 var $input = $(element).find('input[type="text"]').first();
160 if (!force && $input.val() != '') return;
161 if (label == '') return;
162 $input.val($(element).data('transform') === 'lower' ? $(element).data('label').replace('%s', label.toLowerCase()) : $(element).data('label').replace('%s', label));
163 });
164 },
165 clearLabels() {
166 $('[data-label]').each((index, element) => {
167 $(element).find('input[type="text"]').first().val('');
168 });
169 },
170 updatePlaceholders(heirarchical) {
171 if (acf.get('screen') == 'post_type') {
172 var singular = acf.__('Post');
173 var plural = acf.__('Posts');
174 if (heirarchical) {
175 singular = acf.__('Page');
176 plural = acf.__('Pages');
177 }
178 } else {
179 var singular = acf.__('Tag');
180 var plural = acf.__('Tags');
181 if (heirarchical) {
182 singular = acf.__('Category');
183 plural = acf.__('Categories');
184 }
185 }
186 $('[data-label]').each((index, element) => {
187 var useReplacement = $(element).data('replace') === 'plural' ? plural : singular;
188 if ($(element).data('transform') === 'lower') {
189 useReplacement = useReplacement.toLowerCase();
190 }
191 $(element).find('input[type="text"]').first().attr('placeholder', $(element).data('label').replace('%s', useReplacement));
192 });
193 }
194 });
195
196 /**
197 * advancedSettingsMetaboxManager
198 *
199 * Screen options functionality for internal post types
200 *
201 * @since ACF 6.1
202 */
203 const advancedSettingsMetaboxManager = new acf.Model({
204 id: 'advancedSettingsMetaboxManager',
205 wait: 'load',
206 events: {
207 'change .acf-advanced-settings-toggle': 'onToggleACFAdvancedSettings',
208 'change #screen-options-wrap #acf-advanced-settings-hide': 'onToggleScreenOptionsAdvancedSettings'
209 },
210 initialize: function () {
211 this.$screenOptionsToggle = $('#screen-options-wrap #acf-advanced-settings-hide:first');
212 this.$ACFAdvancedToggle = $('.acf-advanced-settings-toggle:first');
213 this.render();
214 },
215 isACFAdvancedSettingsChecked: function () {
216 // Screen option is hidden by filter.
217 if (!this.$ACFAdvancedToggle.length) {
218 return false;
219 }
220 return this.$ACFAdvancedToggle.prop('checked');
221 },
222 isScreenOptionsAdvancedSettingsChecked: function () {
223 // Screen option is hidden by filter.
224 if (!this.$screenOptionsToggle.length) {
225 return false;
226 }
227 return this.$screenOptionsToggle.prop('checked');
228 },
229 onToggleScreenOptionsAdvancedSettings: function () {
230 if (this.isScreenOptionsAdvancedSettingsChecked()) {
231 if (!this.isACFAdvancedSettingsChecked()) {
232 this.$ACFAdvancedToggle.trigger('click');
233 }
234 } else {
235 if (this.isACFAdvancedSettingsChecked()) {
236 this.$ACFAdvancedToggle.trigger('click');
237 }
238 }
239 },
240 onToggleACFAdvancedSettings: function () {
241 if (this.isACFAdvancedSettingsChecked()) {
242 if (!this.isScreenOptionsAdvancedSettingsChecked()) {
243 this.$screenOptionsToggle.trigger('click');
244 }
245 } else {
246 if (this.isScreenOptionsAdvancedSettingsChecked()) {
247 this.$screenOptionsToggle.trigger('click');
248 }
249 }
250 },
251 render: function () {
252 // On render, sync screen options to ACF's setting.
253 this.onToggleACFAdvancedSettings();
254 }
255 });
256 const linkFieldGroupsManger = new acf.Model({
257 id: 'linkFieldGroupsManager',
258 events: {
259 'click .acf-link-field-groups': 'linkFieldGroups'
260 },
261 linkFieldGroups: function () {
262 let popup = false;
263 const step1 = function () {
264 $.ajax({
265 url: acf.get('ajaxurl'),
266 data: acf.prepareForAjax({
267 action: 'acf/link_field_groups'
268 }),
269 type: 'post',
270 dataType: 'json',
271 success: step2
272 });
273 };
274 const step2 = function (response) {
275 popup = acf.newPopup({
276 title: response.data.title,
277 content: response.data.content,
278 width: '600px'
279 });
280 popup.$el.addClass('acf-link-field-groups-popup');
281 popup.on('submit', 'form', step3);
282 };
283 const step3 = function (e) {
284 e.preventDefault();
285 const $select = popup.$('select');
286 const val = $select.val();
287 if (!val.length) {
288 $select.focus();
289 return;
290 }
291 acf.startButtonLoading(popup.$('.button'));
292
293 // get HTML
294 $.ajax({
295 url: acf.get('ajaxurl'),
296 data: acf.prepareForAjax({
297 action: 'acf/link_field_groups',
298 field_groups: val
299 }),
300 type: 'post',
301 dataType: 'json',
302 success: step4
303 });
304 };
305 const step4 = function (response) {
306 popup.content(response.data.content);
307 if (wp.a11y && wp.a11y.speak && acf.__) {
308 wp.a11y.speak(acf.__('Field groups linked successfully.'), 'polite');
309 }
310 popup.$('button.acf-close-popup').focus();
311 };
312 step1();
313 }
314 });
315 })(jQuery);
316
317 /***/ })
318
319 /******/ });
320 /************************************************************************/
321 /******/ // The module cache
322 /******/ var __webpack_module_cache__ = {};
323 /******/
324 /******/ // The require function
325 /******/ function __webpack_require__(moduleId) {
326 /******/ // Check if module is in cache
327 /******/ var cachedModule = __webpack_module_cache__[moduleId];
328 /******/ if (cachedModule !== undefined) {
329 /******/ return cachedModule.exports;
330 /******/ }
331 /******/ // Create a new module (and put it into the cache)
332 /******/ var module = __webpack_module_cache__[moduleId] = {
333 /******/ // no module.id needed
334 /******/ // no module.loaded needed
335 /******/ exports: {}
336 /******/ };
337 /******/
338 /******/ // Execute the module function
339 /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
340 /******/
341 /******/ // Return the exports of the module
342 /******/ return module.exports;
343 /******/ }
344 /******/
345 /************************************************************************/
346 /******/ /* webpack/runtime/compat get default export */
347 /******/ (() => {
348 /******/ // getDefaultExport function for compatibility with non-harmony modules
349 /******/ __webpack_require__.n = (module) => {
350 /******/ var getter = module && module.__esModule ?
351 /******/ () => (module['default']) :
352 /******/ () => (module);
353 /******/ __webpack_require__.d(getter, { a: getter });
354 /******/ return getter;
355 /******/ };
356 /******/ })();
357 /******/
358 /******/ /* webpack/runtime/define property getters */
359 /******/ (() => {
360 /******/ // define getter functions for harmony exports
361 /******/ __webpack_require__.d = (exports, definition) => {
362 /******/ for(var key in definition) {
363 /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
364 /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
365 /******/ }
366 /******/ }
367 /******/ };
368 /******/ })();
369 /******/
370 /******/ /* webpack/runtime/hasOwnProperty shorthand */
371 /******/ (() => {
372 /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
373 /******/ })();
374 /******/
375 /******/ /* webpack/runtime/make namespace object */
376 /******/ (() => {
377 /******/ // define __esModule on exports
378 /******/ __webpack_require__.r = (exports) => {
379 /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
380 /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
381 /******/ }
382 /******/ Object.defineProperty(exports, '__esModule', { value: true });
383 /******/ };
384 /******/ })();
385 /******/
386 /************************************************************************/
387 var __webpack_exports__ = {};
388 // This entry need to be wrapped in an IIFE because it need to be in strict mode.
389 (() => {
390 "use strict";
391 /*!*************************************************!*\
392 !*** ./assets/src/js/acf-internal-post-type.js ***!
393 \*************************************************/
394 __webpack_require__.r(__webpack_exports__);
395 /* harmony import */ var _acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_acf-internal-post-type.js */ "./assets/src/js/_acf-internal-post-type.js");
396 /* harmony import */ var _acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_acf_internal_post_type_js__WEBPACK_IMPORTED_MODULE_0__);
397
398 })();
399
400 /******/ })()
401 ;
402 //# sourceMappingURL=acf-internal-post-type.js.map