1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-25 07:41:30 +02:00

Refactor repeater.js to use data-name instead of ID as needed for module by @BernhardBaumrock and PR #253

Co-authored-by: BernhardBaumrock <office@baumrock.com>
This commit is contained in:
Ryan Cramer
2023-01-13 08:24:52 -05:00
parent 6ff498f503
commit b12c7e9031
3 changed files with 16 additions and 4 deletions

View File

@@ -85,7 +85,7 @@ class ProcessWire extends Wire {
* Version suffix string (when applicable)
*
*/
const versionSuffix = '';
const versionSuffix = 'dev';
/**
* Minimum required index.php version, represented by the PROCESSWIRE define

View File

@@ -356,7 +356,7 @@ function InputfieldRepeater($) {
var pageID = $repeater.attr('data-page'); // $("#Inputfield_id").val();
var itemID = parseInt($item.attr('data-page'));
var repeaterID = $repeater.attr('id');
var fieldName = repeaterID.replace('wrap_Inputfield_', '').replace('_LPID' + pageID, '');
var fieldName = getRepeaterFieldName($repeater);
var ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName + '&repeater_edit=' + itemID;
var $spinner = $item.find('.InputfieldRepeaterDrag');
var $inputfields = $loaded.closest('.Inputfields');
@@ -483,7 +483,7 @@ function InputfieldRepeater($) {
// get addItem from ajax
if(!pageID) pageID = inputfieldPageID;
var fieldName = $inputfieldRepeater.attr('id').replace('wrap_Inputfield_', '');
var fieldName = getRepeaterFieldName($inputfieldRepeater);
var $spinner = $addLink.parent().find('.InputfieldRepeaterSpinner');
var ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName;
@@ -824,6 +824,18 @@ function InputfieldRepeater($) {
return $item.children('.InputfieldHeader').children('.InputfieldRepeaterItemLabel');
}
function getRepeaterFieldName($inputfield) {
if(!$inputfield.hasClass('InputfieldRepeater')) $inputfield = $inputfield.closest('.InputfieldRepeater');
if(!$inputfield.length) return '';
var fieldName = $inputfield.attr('data-name');
if(typeof fieldName === 'undefined') {
fieldName = $inputfield.attr('id').replace('wrap_Inputfield_', '');
if(fieldName.indexOf('_LPID') > -1) fieldName = fieldName.replace(/_LPID\d+$/, '');
console.log('Warning: repeater inputfield lacks data-name so used fallback', $inputfield);
}
return fieldName;
}
/*** SORT FUNCTIONS ***********************************************************************************/
function setItemSort($item, sort) {

File diff suppressed because one or more lines are too long