]> _ Git - cubist_cms-back.git/commitdiff
wip #3448 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 28 Feb 2020 20:10:04 +0000 (21:10 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 28 Feb 2020 20:10:04 +0000 (21:10 +0100)
src/public/bunchmultiple/bunchmultiple.css
src/public/bunchmultiple/bunchmultiple.css.map
src/public/bunchmultiple/bunchmultiple.js
src/public/bunchmultiple/bunchmultiple.less
src/resources/views/fields/bunch_multiple.blade.php

index 19f7bcc2e3491f0dcdddc0ecba184c63ef9f4e25..098e5d2d7e9937e856884ffd03dfe5986f38b81e 100644 (file)
@@ -1,3 +1,7 @@
+.bunchmultiple {
+  width: 100%;
+  margin: 0 15px;
+}
 .bunchmultiple .bunchmultiple__wrapper {
   padding: 15px;
   border: 1px solid #eee;
index 0944dd78225011408f4e4a417afb9009e2303343..8d72713716739263a9e2914cdcda29f9aaf517e8 100644 (file)
@@ -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
index 45178a9044f9f325bf235725900f49d38f7b2feb..f856fabf344255e6f8ce72186b16f17277e4febc 100644 (file)
@@ -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) {
                 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 () {
 
             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) {
                 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) {
         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) {
 
         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();
                 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('');
             }
             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');
         },
 
index 761ed8b443aacd6fc3f9171373973c9e74dcd2ce..1184098ba732eccdf658fcf38f033f19b404eb6c 100644 (file)
@@ -1,4 +1,6 @@
 .bunchmultiple {
+    width: 100%;
+    margin: 0 15px;
     .bunchmultiple__wrapper {
         padding: 15px;
         border: 1px solid #eee;
index 7f6804ad1e4e967750ad391a35a88798e57841e1..f45caa1e2e52af50bbc5c328629c70d613c5abfb 100644 (file)
@@ -11,33 +11,34 @@ if (!is_string($value)) {
     $value = json_encode($value);
 }
 
-
 ?>
 <div class="bunchmultiple col-xs-12" id="{!! $field['rand'] !!}" data-values="{{ $value }}">
-    <input type="hidden" class="hiddenfield" name="{{$field['name']}}" value="{{ $value }}"/>
-    <div class="bunchmultiple__wrapper col-xs-12">
+    <input type="hidden" class="hiddenfield" name="{{$field['name']}}" value="{{ $value }}" data-bmid="{!! $field['rand'] !!}"/>
+    <div class="bunchmultiple__wrapper col-xs-12" data-bmid="{!! $field['rand'] !!}">
         <div @include('crud::inc.field_wrapper_attributes') >
             <label>{!! $field['label'] !!}</label>
             @include('crud::inc.field_translatable_icon')
             <div class="clearfix"></div>
 
-            <div class="bunchmultiple__items">
-                <div class="item sample">
-                    <div class="legend">
-                        <a href="#" class="action sort-handle"><i class="fa fa-sort" role="presentation"
-                                                                  aria-hidden="true"></i></a>
-                        <span data-legend="{{$field['edit_label']}}"></span>
-                        <a href="#" class="action remove"><i class="fa fa-trash" role="presentation"
-                                                             aria-hidden="true"></i></a>
+            <div class="bunchmultiple__items" data-bmid="{!! $field['rand'] !!}">
+                <div class="item sample" data-bmid="{!! $field['rand'] !!}">
+                    <div class="legend" data-bmid="{!! $field['rand'] !!}">
+                        <a href="#" class="action sort-handle" data-bmid="{!! $field['rand'] !!}"><i class="fa fa-sort"
+                                                                                                     role="presentation"
+                                                                                                     aria-hidden="true"></i></a>
+                        <span data-legend="{{$field['edit_label']}}" data-bmid="{!! $field['rand'] !!}"></span>
+                        <a href="#" class="action remove" data-bmid="{!! $field['rand'] !!}"><i class="fa fa-trash"
+                                                                                                role="presentation"
+                                                                                                aria-hidden="true"></i></a>
                     </div>
-                    <div class="subform">
-                        @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields']))
+                    <div class="subform" data-bmid="{!! $field['rand'] !!}">
+                        @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields'],'bmid'=>$field['rand']))
                     </div>
                 </div>
             </div>
 
             <div class="btn-group m-t-10">
-                <button class="btn btn-sm btn-default additem" type="button"><i
+                <button class="btn btn-sm btn-default additem" data-bmid="{!! $field['rand'] !!}" type="button"><i
                         class="fa fa-plus"></i> {{$field['add_label']}}</button>
             </div>