@@ -45,6 +45,10 @@ class="form-control"
4545 @if ($field [' on_the_fly' ][' edit' ] ?? true )
4646 @include (' webfactor::fields.inc.button-edit' )
4747 @endif
48+
49+ @if ($field [' on_the_fly' ][' delete' ] ?? true )
50+ @include (' webfactor::fields.inc.button-delete' )
51+ @endif
4852 </div >
4953
5054 {{-- HINT --}}
@@ -93,20 +97,42 @@ class="form-control"
9397 // load create modal content
9498 $ (" #{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _create_modal" ).on (' show.bs.modal' , function (e ) {
9599 var loadurl = $ (e .relatedTarget ).data (' load-url' );
100+
96101 $ (this ).find (' .modal-content' ).load (loadurl);
97102 });
98103
99- // load edit modal content
100- $ (" #{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _edit_modal" ).on (' show.bs.modal' , function (e ) {
101- var loadurl = $ (e .relatedTarget ).data (' load-url' );
102- var id = $ (e .relatedTarget ).data (' id' );
103- $ (this ).find (' .modal-content' ).load (loadurl + ' &id=' + id);
104+ // load edit/delete modal content
105+ $ (
106+ " #{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _edit_modal," +
107+ " #{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _delete_modal"
108+ ).on (' show.bs.modal' , function (e ) {
109+ var button = e .relatedTarget ;
110+
111+ if ($ (button).hasClass (' disabled' )) {
112+ e .preventDefault ();
113+ e .stopImmediatePropagation ();
114+ } else {
115+ var loadurl = $ (button).data (' load-url' );
116+ var id = $ (button).data (' id' );
117+
118+ $ (this ).find (' .modal-content' ).load (loadurl + ' &id=' + id);
119+ }
104120 });
105121
106- // update id for edit modal url
122+ // update id for edit/delete modal url
107123 $ (" #select2_ajax_{{ $field [' name' ] } }" ).change (function (e ) {
108- $ (" [data-target='#{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _edit_modal']" )
109- .data (" id" , $ (" #select2_ajax_{{ $field [' name' ] } }" ).select2 (' data' )[0 ].id );
124+ var entry = $ (" #select2_ajax_{{ $field [' name' ] } }" ).select2 (' data' )[0 ];
125+ var editButton = $ (" [data-target='#{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _edit_modal']" );
126+ var deleteButton = $ (" [data-target='#{{ $field [' on_the_fly' ][' entity' ] ?? ' ajax_entity' } } _delete_modal']" );
127+
128+ if (entry) {
129+ editButton .data (" id" , entry .id ).removeClass (' disabled' );
130+ deleteButton .data (" id" , entry .id ).removeClass (' disabled' );
131+ } else {
132+ editButton .data (" id" , " " ).addClass (' disabled' );
133+ deleteButton .data (" id" , " " ).addClass (' disabled' );
134+ }
135+
110136 })
111137
112138 // trigger select2 for each untriggered select2 box
@@ -170,11 +196,11 @@ class="form-control"
170196 });
171197
172198 @if (isset ($field [' dependencies' ]) )
173- @foreach (array_wrap ($field [' dependencies' ]) as $dependency )
174- $ (' input[name={{ $dependency } } ], select[name={{ $dependency } } ], checkbox[name={{ $dependency } } ], radio[name={{ $dependency } } ], textarea[name={{ $dependency } } ]' ).change (function () {
175- $ (" #select2_ajax_{{ $field [' name' ] } }" ).val (null ).trigger (" change" );
176- });
177- @endforeach
199+ @foreach (array_wrap ($field [' dependencies' ]) as $dependency )
200+ $ (' input[name={{ $dependency } } ], select[name={{ $dependency } } ], checkbox[name={{ $dependency } } ], radio[name={{ $dependency } } ], textarea[name={{ $dependency } } ]' ).change (function () {
201+ $ (" #select2_ajax_{{ $field [' name' ] } }" ).val (null ).trigger (" change" );
202+ });
203+ @endforeach
178204 @endif
179205 });
180206 </script >
0 commit comments