]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6571 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 26 Jan 2024 10:24:05 +0000 (11:24 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 26 Jan 2024 10:24:05 +0000 (11:24 +0100)
app/Http/Controllers/Admin/FluidbookPublicationCrudController.php
app/Http/Controllers/Admin/Operations/InvoiceOperation.php [new file with mode: 0644]
app/Models/FluidbookPublication.php
resources/views/columns/fluidbook_status.blade.php
resources/views/invoice/dialog.blade.php [new file with mode: 0644]

index bd16474d81b5ca0d5a6b5e8f2dbc8d7ce47050b7..c33f41cf5023246868ee73b7ae2dc0a7ca353d3d 100644 (file)
@@ -18,6 +18,7 @@ class FluidbookPublicationCrudController extends \Cubist\Backpack\Magic\Controll
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\EditOperation;
        use \App\Http\Controllers\Admin\Operations\ChangeownerOperation;
        use \App\Http\Controllers\Admin\Operations\ChangestatusOperation;
+       use \App\Http\Controllers\Admin\Operations\InvoiceOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\SocialImageOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\ExportPdfOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\GetPageFromWebsiteOperation;
diff --git a/app/Http/Controllers/Admin/Operations/InvoiceOperation.php b/app/Http/Controllers/Admin/Operations/InvoiceOperation.php
new file mode 100644 (file)
index 0000000..f07a120
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+
+namespace App\Http\Controllers\Admin\Operations;
+
+use App\Models\FluidbookPublication;
+use Illuminate\Support\Facades\Route;
+
+trait InvoiceOperation
+{
+    protected function setupInvoiceRoutes($segment, $routeName, $controller)
+    {
+        Route::match(['get'], $segment . '/{id}/invoice/dialog', $controller . '@dialog');
+    }
+
+    public function dialog($id)
+    {
+        $entry = FluidbookPublication::find($id);
+        return view('invoice.dialog', ['entry' => $entry]);
+    }
+}
index c8f4507ba92946878717aa3693a67d0989faf869..e6e1e726d1cad0c206ac9c7961cf2da9ce18033c 100644 (file)
@@ -103,6 +103,7 @@ class FluidbookPublication extends ToolboxStatusModel
         EditOperation::class,
         ChangeownerOperation::class,
         ChangestatusOperation::class,
+        InvoiceOperation::class,
         // Services
         SocialImageOperation::class,
         ExportPdfOperation::class,
index f0733e1c09f28697b9b61d47cbe674d728d18386..b2253dfc8f8ddc6ac45162ffae18bd984a35d76b 100644 (file)
@@ -5,8 +5,7 @@
 @endphp
 
 @can('fluidbook-publication:admin')
-    @if($entry->allowsEdit())
-        <span data-{{$entry->getOption('name')}}-{{$column['name']}}="{{$values}}">
+    <span data-{{$entry->getOption('name')}}-{{$column['name']}}="{{$values}}">
         <a href="#"
            data-toggle="tooltip"
            data-context-disabled-action="{{$values}}"
            data-context-callback="statusCallback"
            title="{{__('Changer le status')}}"
         >{{$v}}</a>
-    @else
-                {{$v}}
-            @endif
 </span>
-    @endcan
+@endcan
 
-    @cannot('fluidbook-publication:admin')
-        {{$v}}
-    @endcannot
+@cannot('fluidbook-publication:admin')
+    {{$v}}
+@endcannot
 
+@if(!isset($crud->seenStatusChange))
+    @php        $crud->seenStatusChange=true;    @endphp
+    <style>
 
+    </style>
+    <script>
+        function statusCallback(element, value) {
+            if (value < 3) {
+                return true;
+            }
 
-    @if(!isset($crud->seenStatusChange))
-        @php
-            $crud->seenStatusChange=true;
+            let id = $(element).data('context-id');
 
-        @endphp
-        <style>
 
-        </style>
-        <script>
-            function statusCallback(element, value) {
-                if (value < 3) {
-                    return true;
-                }
+            $.ajax({
+                url: '{{$crud->route}}/' + id + '/invoice/dialog',
+            }).done(function (data) {
+                Swal.fire({
+                    title: '{{__('Facturer la publication')}}',
+                    html: '<div id="invoice_fluidbook">' + data + '</div>',
+                    confirmButtonColor: '#467fcf',
+                    confirmButtonText: '{{__('Valider')}}',
+                    showCancelButton: true,
+                    cancelButtonText: '{{__('Annuler')}}',
+                    cancelButtonColor: '#f1ecec',
+                    cancelButtonTextColor: '#000000',
+                    focusConfirm: false,
+                    didOpen: function () {
+                        let select = $(Swal.getHtmlContainer()).find('select');
+                        $(select).select2({
+                            theme: 'bootstrap',
+                            ajax: {
+                                url: '{{backpack_url('select2')}}' + '/' + $(select).data('ajax'),
+                                dataType: 'json'
+                            },
+                            escapeMarkup: function (m) {
+                                return m;
+                            }
+                        });
+                    },
+                    didDestroy: function () {
 
+                    },
+                }).then((result) => {
+                    if (result.isConfirmed) {
+                        let select = $(Swal.getHtmlContainer()).find('select');
+                        //window.location = '{{backpack_url($entry->getOption('name'))}}/' + $(a).data('entry-id') + '/changeowner/' + select.val();
+                    }
+                });
+            });
 
-            }
-        </script>
-    @endif
+
+        }
+    </script>
+@endif
diff --git a/resources/views/invoice/dialog.blade.php b/resources/views/invoice/dialog.blade.php
new file mode 100644 (file)
index 0000000..7ab4832
--- /dev/null
@@ -0,0 +1 @@
+{{$entry->id}}