]> _ Git - cubist_cms-back.git/commitdiff
wip #6398 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 13 Oct 2023 15:42:48 +0000 (17:42 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 13 Oct 2023 15:42:48 +0000 (17:42 +0200)
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
src/resources/views/fields/bunch_oneline_multiple.blade.php

index 32584a8fb43f952a8ec944999177fa44d4895498..d0a780b947ca03aae032152e3da15bb301bd2692 100644 (file)
   cursor: move;
 }
 .bunchmultiple .bunchmultiple__wrapper .item .legend a.action.edit {
+  position: absolute;
+  right: 80px;
+  cursor: pointer;
+}
+.bunchmultiple .bunchmultiple__wrapper .item .legend a.action.duplicate {
   position: absolute;
   right: 50px;
   cursor: pointer;
index afcf5748d3646f3d56b588f3f6d5cfc37d94c436..7e8225758ac65978d2f068c105d0a744a9c89395 100644 (file)
@@ -1 +1 @@
-{"version":3,"sources":["bunchmultiple.less"],"names":[],"mappings":"AAAA;EACI,cAAA;;AAEA,cAAC,sBACG,wBACI,MACI,QACI,EAAC;EACG,kBAAA;EACA,SAAA;;AAEA,cARnB,sBACG,wBACI,MACI,QACI,EAAC,OAII;EACG,QAAA;EACA,mBAAA;;AAVxB,cAAC,sBACG,wBAeI;EAKI,qBAAA;EACA,mBAAA;;AAtBZ,cAAC,sBACG,wBAeI,YACI;EACI,aAAA;;AAlBhB,cAAC,sBACG,wBAeI,YAQI;EAEI,qBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,SAAA;;AA/BhB,cAAC,sBACG,wBAeI,YAkBI,MAAK;EACD,YAAA;;AAShB,cAAC,uBACG,wBACI,MACI,QACI,EAAC;EACG,kBAAA;EACA,SAAA;;AAEA,cARnB,uBACG,wBACI,MACI,QACI,EAAC,OAII;EACG,QAAA;EACA,mBAAA;;AAVxB,cAAC,uBACG,wBAeI;EAKI,qBAAA;EACA,mBAAA;;AAtBZ,cAAC,uBACG,wBAeI,YACI;EACI,aAAA;;AAlBhB,cAAC,uBACG,wBAeI,YAQI;EACI,UAAA;EACA,qBAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA;EACA,kBAAA;EACA,SAAA;;AA/BhB,cAAC,uBACG,wBAeI,YAkBI,MAAK;EACD,YAAA;;AAQhB,cAAC;EACG,WAAA;;AA3FR,cA8FI;EACI,aAAA;EACA,sBAAA;EACA,mBAAA;EACA,mBAAA;;AAEA,cANJ,wBAMK;EACG,aAAA;;AAGJ,cAVJ,wBAUK;EACG,UAAA;EACA,SAAA;EACA,gBAAA;EACA,gBAAA;;AA5GZ,cA8FI,wBAkBI;EACI,UAAA;;AAjHZ,cA8FI,wBAkBI,cAGI;EACI,gBAAA;EACA,mBAAA;;AArHhB,cA8FI,wBA2BI;EACI,mBAAA;;AAEA,cA9BR,wBA2BI,MAGK;EACG,uBAAA;EACA,sBAAA;;AAFJ,cA9BR,wBA2BI,MAGK,MAIG;EACI,UAAA;;AALR,cA9BR,wBA2BI,MAGK,MAQG;EACI,UAAA;;AArIpB,cA8FI,wBA2BI,MAgBI;EACI,yBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;;AA9IhB,cA8FI,wBA2BI,MAgBI,QAOI;EACI,qBAAA;EACA,gBAAA;EACA,yBAAA;EACA,mBAAA;EACA,uBAAA;EACA,kBAAA;EACA,UAAA;EACA,SAAA;;AAxJpB,cA8FI,wBA2BI,MAgBI,QAOI,OAUI;EACI,iBAAA;EACA,qBAAA;EACA,qBAAA;;AA7JxB,cA8FI,wBA2BI,MAgBI,QAOI,OAUI,MAKI;AA/JxB,cA8FI,wBA2BI,MAgBI,QAOI,OAUI,MAKS;EACD,WAAA;EACA,YAAA;;AAjK5B,cA8FI,wBA2BI,MAgBI,QA6BI,EAAC;EACG,WAAA;EACA,gBAAA;EACA,qBAAA;;AAEA,cA7EhB,wBA2BI,MAgBI,QA6BI,EAAC,OAKI;EACG,mBAAA;EACA,YAAA;;AAGJ,cAlFhB,wBA2BI,MAgBI,QA6BI,EAAC,OAUI;EACG,kBAAA;EACA,WAAA;EACA,eAAA;;AAGJ,cAxFhB,wBA2BI,MAgBI,QA6BI,EAAC,OAgBI;EACG,kBAAA;EACA,WAAA;EACA,eAAA;;AAzLxB,cA8FI,wBA2BI,MAsEI;EACI,gBAAA;EACA,iEAAA;EACA,yBAAA;EACA,eAAA;;AAGJ,cAxGR,wBA2BI,MA6EK;EACG,aAAA;;AAGJ,cA5GR,wBA2BI,MAiFK,UACG;EACI,oBAAA;EACA,UAAA","file":"bunchmultiple.css"}
\ No newline at end of file
+{"version":3,"sources":["bunchmultiple.less"],"names":[],"mappings":"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","file":"bunchmultiple.css"}
\ No newline at end of file
index 558a52433ee27d157884ee2dae73a67b7bab937b..8c97c7a2654cd051a9ce493ba9714ce73496f93f 100644 (file)
                 return false;
             });
 
+            this.element.on('click', '.duplicate' + this.bmidselector, function () {
+                $this.duplicateItem($(this).closest('.item'));
+                return false;
+            });
+
             this.element.on('click', '.legend' + this.bmidselector, function () {
                 if ($(this).closest('.bunchmultiple_oneline').length > 0) {
                     return true;
         removeItem: function (item) {
             $(item).remove();
             if (this.element.hasClass('showEmpty') && this.element.find('.item' + this.bmidselector + ':not(.sample)').length === 0) {
-                console.log('init item after remove');
                 this.initItem();
             }
 
             this.updateAndChange();
         },
 
+        duplicateItem: function (item) {
+            let copy = $(item).clone();
+            console.log(copy);
+            $(copy).insertAfter(item);
+            this.updateAndChange();
+        },
+
         empty: function (update) {
             $(this.element).find('.item:not(.sample)').remove();
             if (update !== false) {
index 21ae118bbb16c03f4af0eeb04139bff3031fd269..106e314b559ee2e10d49c749dc7d80716da9d9c5 100644 (file)
                     }
 
                     &.edit {
+                        position: absolute;
+                        right: 80px;
+                        cursor: pointer;
+                    }
+
+                    &.duplicate {
                         position: absolute;
                         right: 50px;
                         cursor: pointer;
index 8bb9cac18bc2dd2c466dfe7c8826782efd223145..ecfdb308328a000a0d41b4bbf5b444416a2503a5 100644 (file)
@@ -1,56 +1,62 @@
 @php
-$empty = [];
-$value = old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? $empty;
-if ($value == '') {
-    $value = $empty;
-}
+    $empty = [];
+    $value = old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? $empty;
+    if ($value == '') {
+        $value = $empty;
+    }
 
-if (!is_string($value)) {
-    $value = json_encode($value);
-}
+    if (!is_string($value)) {
+        $value = json_encode($value);
+    }
 
 
 @endphp
-<div class="bunchmultiple{{ ($field['show_empty']?' showEmpty':'') }}" id="{!! $field['rand'] !!}" data-bunch-name="{{$field['name']}}" data-values="{{ $value }}">
-    <input type="hidden" class="hiddenfield" name="{{$field['name']}}" value="{{ $value }}" data-bmid="{!! $field['rand'] !!}"/>
+<div class="bunchmultiple{{ ($field['show_empty']?' showEmpty':'') }}" id="{!! $field['rand'] !!}"
+     data-bunch-name="{{$field['name']}}" data-values="{{ $value }}">
+    <input type="hidden" class="hiddenfield" name="{{$field['name']}}" value="{{ $value }}"
+           data-bmid="{!! $field['rand'] !!}"/>
     <div class="bunchmultiple__wrapper" data-bmid="{!! $field['rand'] !!}">
         @include('crud::fields.inc.wrapper_start')
-            <label>{!! $field['label'] !!}</label>
+        <label>{!! $field['label'] !!}</label>
         @include('crud::fields.inc.translatable_icon')
-            <div class="clearfix"></div>
+        <div class="clearfix"></div>
 
-            <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="la la-sort"
-                                                                                                     role="presentation"
-                                                                                                     aria-hidden="true"></i></a>
-                        <span class="legendsize" data-legend="{{$field['edit_label']}}" data-bmid="{!! $field['rand'] !!}"></span>
-                        <a href="#" class="action edit" data-bmid="{!! $field['rand'] !!}"><i class="la la-pencil"
-                                                                                              role="presentation"
-                                                                                              aria-hidden="true"></i></a>
-                        <a href="#" class="action remove" data-bmid="{!! $field['rand'] !!}"><i class="la la-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="la la-sort" role="presentation" aria-hidden="true"></i>
+                    </a>
+                    <span class="legendsize" data-legend="{{$field['edit_label']}}"
+                          data-bmid="{!! $field['rand'] !!}"></span>
+                    <a href="#" class="action edit" data-bmid="{!! $field['rand'] !!}">
+                        <i class="la la-pencil" role="presentation" aria-hidden="true"></i>
+                    </a>
+                    <a href="#" class="action duplicate" data-bmid="{!! $field['rand'] !!}">
+                        <i class="las la-copy"></i>
+                    </a>
+                    <a href="#" class="action remove" data-bmid="{!! $field['rand'] !!}">
+                        <i class="la la-trash" role="presentation" aria-hidden="true"></i>
+                    </a>
 
-                    </div>
-                    <div class="subform" data-bmid="{!! $field['rand'] !!}">
-                        @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields'],'bmid'=>$field['rand']))
-                    </div>
+                </div>
+                <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" data-bmid="{!! $field['rand'] !!}" type="button"><i
-                        class="la la-plus"></i> {{$field['add_label']}}</button>
-            </div>
+        <div class="btn-group m-t-10">
+            <button class="btn btn-sm btn-default additem" data-bmid="{!! $field['rand'] !!}" type="button"><i
+                    class="la la-plus"></i> {{$field['add_label']}}</button>
+        </div>
 
-            <div class="clearfix"></div>
+        <div class="clearfix"></div>
 
-            {{-- HINT --}}
-            @if (isset($field['hint']))
-                <p class="help-block">{!! $field['hint'] !!}</p>
-            @endif
+        {{-- HINT --}}
+        @if (isset($field['hint']))
+            <p class="help-block">{!! $field['hint'] !!}</p>
+        @endif
         @include('crud::fields.inc.wrapper_end')
     </div>
 </div>
index 1f265c135bfa1f631335befb117922605190f45b..679cd3d0bd142e678c964aaf48b6691476c3ed3f 100644 (file)
         <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="la la-sort"
-                                                                                                 role="presentation"
-                                                                                                 aria-hidden="true"></i></a>
+                    <a href="#" class="action sort-handle" data-bmid="{!! $field['rand'] !!}">
+                        <i class="la la-sort" role="presentation" aria-hidden="true"></i>
+                    </a>
                     <div class="legendsize">
                         @include('cubist_back::inc.show_bunch_fields', array('bunchfields'=>$field['bunchfields'],'bmid'=>$field['rand'],'oneline'=>true))
                     </div>
-                    <a href="#" class="action remove" data-bmid="{!! $field['rand'] !!}"><i class="la la-trash"
-                                                                                            role="presentation"
-                                                                                            aria-hidden="true"></i></a>
-
+                    <a href="#" class="action remove" data-bmid="{!! $field['rand'] !!}">
+                        <i class="la la-trash" role="presentation" aria-hidden="true"></i>
+                    </a>
                 </div>
 
             </div>