diff --git a/layouts/joomla/form/field/subform/repeatable-table.php b/layouts/joomla/form/field/subform/repeatable-table.php
index 66f73fd072c0f..5b886e14e5b34 100644
--- a/layouts/joomla/form/field/subform/repeatable-table.php
+++ b/layouts/joomla/form/field/subform/repeatable-table.php
@@ -120,18 +120,25 @@ class="btn btn-mini button btn-success group-add group-add-
- sublayout(
- $sublayout,
- array(
- 'form' => $tmpl,
- 'basegroup' => $fieldname,
- 'group' => $fieldname . 'X',
- 'buttons' => $buttons,
- 'unique_subform_id' => $unique_subform_id,
- )
- )
- ); ?>
+ '),
+ array('SUBFORMLT', 'SUBFORMGT'),
+ trim(
+ $this->sublayout(
+ $sublayout,
+ array(
+ 'form' => $tmpl,
+ 'basegroup' => $fieldname,
+ 'group' => $fieldname . 'X',
+ 'buttons' => $buttons,
+ 'unique_subform_id' => $unique_subform_id,
+ )
+ )
+ )
+ );
+ ?>
diff --git a/layouts/joomla/form/field/subform/repeatable.php b/layouts/joomla/form/field/subform/repeatable.php
index 4569b94af90f4..b091a6608b6de 100644
--- a/layouts/joomla/form/field/subform/repeatable.php
+++ b/layouts/joomla/form/field/subform/repeatable.php
@@ -70,18 +70,25 @@
endforeach;
?>
- sublayout(
- $sublayout,
- array(
- 'form' => $tmpl,
- 'basegroup' => $fieldname,
- 'group' => $fieldname . 'X',
- 'buttons' => $buttons,
- 'unique_subform_id' => $unique_subform_id,
- )
- )
- ); ?>
+ '),
+ array('SUBFORMLT', 'SUBFORMGT'),
+ trim(
+ $this->sublayout(
+ $sublayout,
+ array(
+ 'form' => $tmpl,
+ 'basegroup' => $fieldname,
+ 'group' => $fieldname . 'X',
+ 'buttons' => $buttons,
+ 'unique_subform_id' => $unique_subform_id,
+ )
+ )
+ )
+ );
+ ?>
diff --git a/media/system/js/subform-repeatable-uncompressed.js b/media/system/js/subform-repeatable-uncompressed.js
index 123df96b80371..3fa83c33d2fef 100644
--- a/media/system/js/subform-repeatable-uncompressed.js
+++ b/media/system/js/subform-repeatable-uncompressed.js
@@ -68,14 +68,14 @@
// Find the template element and get its HTML content, this is our template.
var $tmplElement = this.$container.find(this.options.rowTemplateSelector).last();
- // Move the template out of the form scope, for IE compatibility.
- // But only a root template (!!!)
- if (!$tmplElement.parents(this.options.rowTemplateSelector).length) {
- $(document.body).append($tmplElement);
- }
-
this.template = $.trim($tmplElement.html()) || '';
- this.$tmplElement = $tmplElement;
+
+ // This is IE fix for
+ $tmplElement.css('display', 'none'); // Make sure it not visible
+ var map = {'SUBFORMLT': '<', 'SUBFORMGT': '>'};
+ this.template = this.template.replace(/(SUBFORMLT)|(SUBFORMGT)/g, function(match){
+ return map[match];
+ });
}
// create from existing rows
else {
diff --git a/media/system/js/subform-repeatable.js b/media/system/js/subform-repeatable.js
index 1972b8834f1c9..7b988d6ad4674 100644
--- a/media/system/js/subform-repeatable.js
+++ b/media/system/js/subform-repeatable.js
@@ -1 +1 @@
-(function($){"use strict";$.subformRepeatable=function(container,options){this.$container=$(container);if(this.$container.data("subformRepeatable")){return self}this.$container.data("subformRepeatable",self);this.options=$.extend({},$.subformRepeatable.defaults,options);this.template="";this.prepareTemplate();this.$containerRows=this.options.rowsContainer?this.$container.find(this.options.rowsContainer):this.$container;var self=this;this.$container.on("click",this.options.btAdd,function(e){e.preventDefault();var after=$(this).parents(self.options.repeatableElement);if(!after.length){after=null}self.addRow(after)});this.$container.on("click",this.options.btRemove,function(e){e.preventDefault();var $row=$(this).parents(self.options.repeatableElement);self.removeRow($row)});if(this.options.btMove){this.$containerRows.sortable({items:this.options.repeatableElement,handle:this.options.btMove,tolerance:"pointer"})}this.$container.trigger("subform-ready")};$.subformRepeatable.prototype.prepareTemplate=function(){if(this.options.rowTemplateSelector){var $tmplElement=this.$container.find(this.options.rowTemplateSelector).last();if(!$tmplElement.parents(this.options.rowTemplateSelector).length){$(document.body).append($tmplElement)}this.template=$.trim($tmplElement.html())||"";this.$tmplElement=$tmplElement}else{var row=this.$container.find(this.options.repeatableElement).get(0),$row=$(row).clone();try{this.clearScripts($row)}catch(e){if(window.console){console.log(e)}}this.template=$row.prop("outerHTML")}};$.subformRepeatable.prototype.addRow=function(after){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count>=this.options.maximum){return null}var row=$.parseHTML(this.template);if(after){$(after).after(row)}else{this.$containerRows.append(row)}var $row=$(row);$row.attr("data-new","true");this.fixUniqueAttributes($row,count);try{this.fixScripts($row)}catch(e){if(window.console){console.log(e)}}this.$container.trigger("subform-row-add",$row);return $row};$.subformRepeatable.prototype.removeRow=function($row){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count<=this.options.minimum){return}this.$container.trigger("subform-row-remove",$row);$row.remove()};$.subformRepeatable.prototype.fixUniqueAttributes=function($row,_count,_group,_basename){var group=typeof _group==="undefined"?$row.attr("data-group"):_group,basename=typeof _basename==="undefined"?$row.attr("data-base-name"):_basename,count=typeof _count==="undefined"?0:_count,groupnew=basename+count;$row.attr("data-group",groupnew);var haveName=$row.find("[name]"),ids={};for(var i=0,l=haveName.length;i"};this.template=this.template.replace(/(SUBFORMLT)|(SUBFORMGT)/g,function(match){return map[match]})}else{var row=this.$container.find(this.options.repeatableElement).get(0),$row=$(row).clone();try{this.clearScripts($row)}catch(e){if(window.console){console.log(e)}}this.template=$row.prop("outerHTML")}};$.subformRepeatable.prototype.addRow=function(after){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count>=this.options.maximum){return null}var row=$.parseHTML(this.template);if(after){$(after).after(row)}else{this.$containerRows.append(row)}var $row=$(row);$row.attr("data-new","true");this.fixUniqueAttributes($row,count);try{this.fixScripts($row)}catch(e){if(window.console){console.log(e)}}this.$container.trigger("subform-row-add",$row);return $row};$.subformRepeatable.prototype.removeRow=function($row){var count=this.$containerRows.find(this.options.repeatableElement).length;if(count<=this.options.minimum){return}this.$container.trigger("subform-row-remove",$row);$row.remove()};$.subformRepeatable.prototype.fixUniqueAttributes=function($row,_count,_group,_basename){var group=typeof _group==="undefined"?$row.attr("data-group"):_group,basename=typeof _basename==="undefined"?$row.attr("data-base-name"):_basename,count=typeof _count==="undefined"?0:_count,groupnew=basename+count;$row.attr("data-group",groupnew);var haveName=$row.find("[name]"),ids={};for(var i=0,l=haveName.length;i