From c0c76f7c5b5f14eb38bef5bae10d12f02f9f7100 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 28 Feb 2020 21:10:04 +0100 Subject: [PATCH] wip #3448 @1.5 --- src/public/bunchmultiple/bunchmultiple.css | 4 +++ .../bunchmultiple/bunchmultiple.css.map | 2 +- src/public/bunchmultiple/bunchmultiple.js | 31 ++++++++++++------- src/public/bunchmultiple/bunchmultiple.less | 2 ++ .../views/fields/bunch_multiple.blade.php | 29 ++++++++--------- 5 files changed, 41 insertions(+), 27 deletions(-) diff --git a/src/public/bunchmultiple/bunchmultiple.css b/src/public/bunchmultiple/bunchmultiple.css index 19f7bcc..098e5d2 100644 --- a/src/public/bunchmultiple/bunchmultiple.css +++ b/src/public/bunchmultiple/bunchmultiple.css @@ -1,3 +1,7 @@ +.bunchmultiple { + width: 100%; + margin: 0 15px; +} .bunchmultiple .bunchmultiple__wrapper { padding: 15px; border: 1px solid #eee; diff --git a/src/public/bunchmultiple/bunchmultiple.css.map b/src/public/bunchmultiple/bunchmultiple.css.map index 0944dd7..8d72713 100644 --- a/src/public/bunchmultiple/bunchmultiple.css.map +++ b/src/public/bunchmultiple/bunchmultiple.css.map @@ -1 +1 @@ -{"version":3,"sources":["bunchmultiple.less"],"names":[],"mappings":"AAAA,cACI;EACI,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,mBAAA;;AALR,cACI,wBAMI;EACI,UAAA;;AARZ,cACI,wBAMI,cAGI;EACI,gBAAA;EACA,mBAAA;;AAZhB,cACI,wBAeI;EACI,mBAAA;;AAEA,cAlBR,wBAeI,MAGK;EACG,uBAAA;EACA,sBAAA;;AAFJ,cAlBR,wBAeI,MAGK,MAIG;EACI,UAAA;;AALR,cAlBR,wBAeI,MAGK,MAQG;EACI,UAAA;;AA5BpB,cACI,wBAeI,MAgBI;EACI,yBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;;AApChB,cACI,wBAeI,MAgBI,QAMI,EAAC;EACG,WAAA;EACA,gBAAA;;AAEA,cAzChB,wBAeI,MAgBI,QAMI,EAAC,OAII;EACG,mBAAA;;AAGJ,cA7ChB,wBAeI,MAgBI,QAMI,EAAC,OAQI;EACG,kBAAA;EACA,WAAA;;AAhDxB,cACI,wBAeI,MAqCI;EACI,gBAAA;EACA,iEAAA;EACA,yBAAA;EACA,eAAA;;AAGJ,cA3DR,wBAeI,MA4CK;EACG,aAAA;;AAGJ,cA/DR,wBAeI,MAgDK,UACG;EACI,oBAAA;EACA,UAAA","file":"bunchmultiple.css"} \ No newline at end of file +{"version":3,"sources":["bunchmultiple.less"],"names":[],"mappings":"AAAA;EACI,WAAA;EACA,cAAA;;AAFJ,cAGI;EACI,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,mBAAA;;AAPR,cAGI,wBAMI;EACI,UAAA;;AAVZ,cAGI,wBAMI,cAGI;EACI,gBAAA;EACA,mBAAA;;AAdhB,cAGI,wBAeI;EACI,mBAAA;;AAEA,cAlBR,wBAeI,MAGK;EACG,uBAAA;EACA,sBAAA;;AAFJ,cAlBR,wBAeI,MAGK,MAIG;EACI,UAAA;;AALR,cAlBR,wBAeI,MAGK,MAQG;EACI,UAAA;;AA9BpB,cAGI,wBAeI,MAgBI;EACI,yBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;;AAtChB,cAGI,wBAeI,MAgBI,QAMI,EAAC;EACG,WAAA;EACA,gBAAA;;AAEA,cAzChB,wBAeI,MAgBI,QAMI,EAAC,OAII;EACG,mBAAA;;AAGJ,cA7ChB,wBAeI,MAgBI,QAMI,EAAC,OAQI;EACG,kBAAA;EACA,WAAA;;AAlDxB,cAGI,wBAeI,MAqCI;EACI,gBAAA;EACA,iEAAA;EACA,yBAAA;EACA,eAAA;;AAGJ,cA3DR,wBAeI,MA4CK;EACG,aAAA;;AAGJ,cA/DR,wBAeI,MAgDK,UACG;EACI,oBAAA;EACA,UAAA","file":"bunchmultiple.css"} \ No newline at end of file diff --git a/src/public/bunchmultiple/bunchmultiple.js b/src/public/bunchmultiple/bunchmultiple.js index 45178a9..f856fab 100644 --- a/src/public/bunchmultiple/bunchmultiple.js +++ b/src/public/bunchmultiple/bunchmultiple.js @@ -7,6 +7,8 @@ JQbunchmultiple.prototype = { init: function () { var $this = this; + this.id = $(this.element).attr('id'); + this.bmidselector = '[data-bmid="' + this.id + '"]'; var initValues = this.element.data('values'); $.each(initValues, function (k, v) { @@ -17,19 +19,19 @@ this.initItem(); } - this.element.on('click', '.additem', function () { + this.element.on('click', '.additem' + this.bmidselector, function () { $this.initItem(); return false; }); - this.element.on('click', '.remove', function () { + this.element.on('click', '.remove' + this.bmidselector, function () { $this.removeItem($(this).closest('.item')); return false; }); - this.element.on('click', '.legend', function () { + this.element.on('click', '.legend' + this.bmidselector, function () { var item = $(this).closest('.item'); - var subform = item.find('.subform'); + var subform = item.find('.subform' + this.bmidselector); if (!item.hasClass('collapsed')) { subform.css('height', subform.outerHeight()); setTimeout(function () { @@ -43,7 +45,10 @@ this.initSort(); - this.element.on('change', 'input,select,textarea,.dropzone', function () { + this.element.on('change', 'input' + this.bmidselector + + ',select' + this.bmidselector + + ',textarea' + this.bmidselector + + ',.dropzone' + this.bmidselector, function () { $this.update(); return true; }); @@ -63,7 +68,7 @@ var val = []; var $this = this; var id = this.element.attr('id'); - $.each(this.element.find('.item:not(.sample) .subform'), function () { + $.each(this.element.find('.item' + this.bmidselector + ':not(.sample) .subform'), function () { var data = $(this).find(':input').serializeArray(); var filteredData = {}; $.each(data, function (k, v) { @@ -74,11 +79,11 @@ val.push(filteredData); }); - this.element.find('.hiddenfield').val(JSON.stringify(val)); + this.element.find('.hiddenfield' + this.bmidselector).val(JSON.stringify(val)); }, updateLegends: function () { - $('[data-legend]').each(function () { + $('[data-legend]' + this.bmidselector).each(function () { var item = $(this).closest('.item'); var form = item.find('.subform'); var txt = $(this).data('legend').replace(/\%([a-zA-Z0-9_]+)/gm, function (match, varname) { @@ -95,7 +100,7 @@ initSort: function () { var $this = this; - new Sortable(this.element.find('.bunchmultiple__items').get(0), { + new Sortable(this.element.find('.bunchmultiple__items' + this.bmidselector).get(0), { handle: '.sort-handle', ghostClass: 'ghost', onSort: function (evt) { @@ -106,7 +111,7 @@ removeItem: function (item) { $(item).remove(); - if (this.element.find('.item:not(.sample)').length === 0) { + if (this.element.find('.item' + this.bmidselector + ':not(.sample)').length === 0) { this.initItem(); } this.update(); @@ -120,7 +125,7 @@ collapsed = false; isNew = true; } - var item = this.element.find('.sample').clone(false); + var item = this.element.find('.sample' + this.bmidselector).clone(false); if (isNew) { $(item).find('[data-reset-value]').val(''); } @@ -128,9 +133,11 @@ if (collapsed) { $(item).addClass('collapsed'); } - $(this.element).find(".bunchmultiple__items").append($(item)); + $(this.element).find(".bunchmultiple__items" + this.bmidselector).append($(item)); this.setValues(item, values); + $(item).find('.form-group').find('input, select, .dropzone, textarea').attr('data-bmid', this.id); + $(document).trigger('cubist.bunchmultiple.added'); }, diff --git a/src/public/bunchmultiple/bunchmultiple.less b/src/public/bunchmultiple/bunchmultiple.less index 761ed8b..1184098 100644 --- a/src/public/bunchmultiple/bunchmultiple.less +++ b/src/public/bunchmultiple/bunchmultiple.less @@ -1,4 +1,6 @@ .bunchmultiple { + width: 100%; + margin: 0 15px; .bunchmultiple__wrapper { padding: 15px; border: 1px solid #eee; diff --git a/src/resources/views/fields/bunch_multiple.blade.php b/src/resources/views/fields/bunch_multiple.blade.php index 7f6804a..f45caa1 100644 --- a/src/resources/views/fields/bunch_multiple.blade.php +++ b/src/resources/views/fields/bunch_multiple.blade.php @@ -11,33 +11,34 @@ if (!is_string($value)) { $value = json_encode($value); } - ?>
- -
+ +
@include('crud::inc.field_translatable_icon')
-
-
-
- - - +
+
+
+ + +
-
- @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields'])) +
+ @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields'],'bmid'=>$field['rand']))
-
-- 2.39.5