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:
@@ -85,7 +85,7 @@ class ProcessWire extends Wire {
|
|||||||
* Version suffix string (when applicable)
|
* Version suffix string (when applicable)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
const versionSuffix = '';
|
const versionSuffix = 'dev';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minimum required index.php version, represented by the PROCESSWIRE define
|
* Minimum required index.php version, represented by the PROCESSWIRE define
|
||||||
|
@@ -356,7 +356,7 @@ function InputfieldRepeater($) {
|
|||||||
var pageID = $repeater.attr('data-page'); // $("#Inputfield_id").val();
|
var pageID = $repeater.attr('data-page'); // $("#Inputfield_id").val();
|
||||||
var itemID = parseInt($item.attr('data-page'));
|
var itemID = parseInt($item.attr('data-page'));
|
||||||
var repeaterID = $repeater.attr('id');
|
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 ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName + '&repeater_edit=' + itemID;
|
||||||
var $spinner = $item.find('.InputfieldRepeaterDrag');
|
var $spinner = $item.find('.InputfieldRepeaterDrag');
|
||||||
var $inputfields = $loaded.closest('.Inputfields');
|
var $inputfields = $loaded.closest('.Inputfields');
|
||||||
@@ -483,7 +483,7 @@ function InputfieldRepeater($) {
|
|||||||
|
|
||||||
// get addItem from ajax
|
// get addItem from ajax
|
||||||
if(!pageID) pageID = inputfieldPageID;
|
if(!pageID) pageID = inputfieldPageID;
|
||||||
var fieldName = $inputfieldRepeater.attr('id').replace('wrap_Inputfield_', '');
|
var fieldName = getRepeaterFieldName($inputfieldRepeater);
|
||||||
var $spinner = $addLink.parent().find('.InputfieldRepeaterSpinner');
|
var $spinner = $addLink.parent().find('.InputfieldRepeaterSpinner');
|
||||||
var ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName;
|
var ajaxURL = ProcessWire.config.InputfieldRepeater.editorUrl + '?id=' + pageID + '&field=' + fieldName;
|
||||||
|
|
||||||
@@ -824,6 +824,18 @@ function InputfieldRepeater($) {
|
|||||||
return $item.children('.InputfieldHeader').children('.InputfieldRepeaterItemLabel');
|
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 ***********************************************************************************/
|
/*** SORT FUNCTIONS ***********************************************************************************/
|
||||||
|
|
||||||
function setItemSort($item, sort) {
|
function setItemSort($item, sort) {
|
||||||
|
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user