Sfoglia il codice sorgente

Use unpoly modals for all actions (incl. add-new)

Vijayakrishnan Krishnan 5 anni fa
parent
commit
06f862e72c

+ 11 - 5
app/Console/Commands/GenerateTreeCommand.php

@@ -369,8 +369,10 @@ class GenController {
                         // $code[] = "\t\t\$subRecords = DB::table('$foreignTable')->where('$foreignField', \$record->$localField)->get();";
                         $input[] = "'subRecords'";
                     }
-                    $code[] = "\t\treturn view('{$this->root}/{$this->name}/{$method->name}', " .
-                        "compact(" . implode(", ", $input) . "));";
+                    // return response()->view('pro/my_teams/add_new', compact('records'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+                    $code[] = "\t\treturn response()->view('{$this->root}/{$this->name}/{$method->name}', " .
+                        "compact(" . implode(", ", $input) . "), " .
+                        "session('message') ? 500 : 200)->header('Content-Type', 'text/html');";
                 }
                 else {
                     $loadingLine = [];
@@ -380,8 +382,9 @@ class GenController {
                     }
                     $loadingLine[] = "->get();";
                     $code[] = implode("", $loadingLine);
-                    $code[] = "\t\treturn view('{$this->root}/{$this->name}/{$method->name}', " .
-                        "compact('records'));";
+                    $code[] = "\t\treturn response()->view('{$this->root}/{$this->name}/{$method->name}', " .
+                        "compact('records'), " .
+                        "session('message') ? 500 : 200)->header('Content-Type', 'text/html');";
                 }
             }
 
@@ -435,6 +438,7 @@ class GenController {
             foreach ($controller->methods as $m) {
                 if($m->type === 'add') {
                     $addLinks[] = "<a class='btn btn-primary btn-sm ml-2' " .
+                        'up-modal=".form-contents" up-width="800" up-history="false" ' .
                         "href='/{$controller->name}/{$m->name}'>" .
                         "<i class='fa fa-plus-circle' aria-hidden='true'></i> " .
                         "{$this->snakeToTitleCase($m->name)}</a>";
@@ -518,6 +522,7 @@ class GenController {
             $display = $this->camelToTitleCase(substr($meth->name, 7));
             $actionLinks[] = ($meth->show ? "@if(\$record->{$meth->show}) " : "") .
                 "<a " .
+                'up-modal=".form-contents" up-width="800" up-history="false" ' .
                 "href='/{$controller->parentControllerName}/view/<?= \$record->uid ?>/{$meth->name}' " .
                 "class='d-block btn btn-sm btn-default mb-3'>$display</a>" .
                 ($meth->show ? " @endif" : "");
@@ -571,6 +576,7 @@ class GenController {
 
         if(count($method->data) > 1 && strpos($method->data[1], 'add_new') === 0) {
             $addLink = '<a class="btn btn-primary btn-sm" ' .
+                    'up-modal=".form-contents" up-width="800" up-history="false" ' .
                     'href="{{route(\'' . $method->childAddRoute . '\', [\'uid\' => $record->uid])}}">' .
                 "<i class='fa fa-plus-circle' aria-hidden='true'></i> Add New</a>";
             $text = str_replace("<!-- _ADD_NEW_LINK_ -->", $addLink, $text);
@@ -755,7 +761,7 @@ class GenController {
             case "bool":
                 $code[] = "<div class='form-group mb-3'>";
                 $code[] = "<label class='control-label'>{$this->camelToTitleCase($this->snakeToTitleCase($display))} ";
-                $code[] = "<input class='form-control' type='checkbox' name='$name'>";
+                $code[] = "<input class='ml-2' type='checkbox' name='$name'>";
                 $code[] = "</label>";
                 break;
             default:

+ 2 - 0
app/Http/Controllers/AppSessionController.php

@@ -50,6 +50,8 @@ class AppSessionController extends Controller
 
     public function postToAPI(Request $request) {
 
+        session()->remove('message');
+
         // call java api
 
         $data = [];

+ 12 - 8
generatecv/tree-templates/add_new.template.blade.php

@@ -1,19 +1,21 @@
 @extends('layouts.pro-logged-in')
 @section('content')
 
-    <h3 class="d-flex mb-3">
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3">
         <div>_NAME_: _ADD_TITLE_</div>
         <div class="ml-auto">
-            <a class="btn btn-primary btn-sm" href="{{route('_BACK_ROUTE_')}}">
-                <i class="fa fa-chevron-left" aria-hidden="true"></i>
-                Back
+            <a class="text-secondary" href="{{route('_BACK_ROUTE_')}}" up-close>
+                <i class="fa fa-times"></i>
             </a>
         </div>
-    </h3>
+    </h4>
 
     <form action="/post-to-api"
+          up-target="#main-content" up-history="false" up-fail-target=".failed-form-contents" up-reveal="true"
           method="post" enctype="multipart/form-data"
-          class="bg-light rounded border px-3 pt-3 mb-3">
+          class="border-top px-3 pt-3 pb-1 custom-submit">
         @csrf
 
         @if (session('message'))
@@ -24,10 +26,12 @@
         <input type="hidden" name="_success" value="{{route('_BACK_ROUTE_')}}">
         <input type="hidden" name="_return" value="{{route('_RETURN_ROUTE_')}}">
         <!-- _SCAFFOLD_FIELDS_ -->
-        <div class="form-group mb-3">
+        <div class="form-group mb-3 d-flex justify-content-center">
             <button class="btn btn-sm btn-primary mr-3 px-5">Submit</button>
-            <a href="{{route('_BACK_ROUTE_')}}" class="btn btn-sm btn-default px-5">Cancel</a>
+            <a href="{{route('_BACK_ROUTE_')}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
         </div>
     </form>
 
+    </div></div>
+
 @endsection

+ 14 - 4
generatecv/tree-templates/sub-action.template.blade.php

@@ -1,13 +1,21 @@
 @extends('_LAYOUT_')
 @section('content-inner')
 
-    <h4 class='my-3'>
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3">
         <div>_NAME_</div>
+        <div class="ml-auto">
+            <a class="text-secondary" href="#" up-close>
+                <i class="fa fa-times"></i>
+            </a>
+        </div>
     </h4>
 
     <form action="/post-to-api"
+          up-target="#main-content" up-history="false" up-fail-target=".failed-form-contents" up-reveal="true"
           method="post" enctype="multipart/form-data"
-          class="bg-light rounded border px-3 pt-3 mr-3 mb-3">
+          class="border-top px-3 pt-3 pb-1 custom-submit">
         @csrf
 
         @if (session('message'))
@@ -19,10 +27,12 @@
         <input type="hidden" name="_success" value="{{route('_BACK_ROUTE_', ['uid' => $record->uid])}}">
         <input type="hidden" name="_return" value="{{route('_RETURN_ROUTE_', ['uid' => $record->uid])}}">
         <!-- _SCAFFOLD_FIELDS_ -->
-        <div class="form-group mb-3">
+        <div class="form-group mb-3 d-flex justify-content-center">
             <button class="btn btn-sm btn-primary mr-3 px-5">Submit</button>
-            <a href="{{route('_BACK_ROUTE_', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5">Cancel</a>
+            <a href="{{route('_BACK_ROUTE_', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
         </div>
     </form>
 
+    </div></div>
+
 @endsection

+ 15 - 4
resources/views/layouts/pro-logged-in.blade.php

@@ -129,8 +129,19 @@
 <script src="/unpoly-0.62.0/es6-promise.auto.min.js"></script>
 <script src="/unpoly-0.62.0/unpoly.min.js"></script>
 <link rel="stylesheet" href="/unpoly-0.62.0/unpoly.min.css">
-<script src="unpoly-0.62.0/unpoly-bootstrap3.min.js"></script>
-<link rel="stylesheet" href="unpoly-0.62.0/unpoly-bootstrap3.min.css">
+
+<style>
+    .up-modal-content {
+        padding: 0;
+    }
+    .up-modal-close {
+        display: none;
+    }
+    .up-modal-dialog {
+        border-radius: 8px;
+        overflow: hidden;
+    }
+</style>
 
 <script>
     if(window === window.top) {
@@ -156,7 +167,7 @@
                 $('#reload-icon').removeClass('loading-rotate');
             });
         }
-        $(document).on('click', 'a:not([href="#"])', function() {
+        $(document).on('click', 'a:not([href="#"]):not([up-modal]):not([up-close])', function() {
             $('#reload-icon').addClass('loading-rotate');
             var target = this.href;
             if(target.indexOf('//') !== -1) {
@@ -168,7 +179,7 @@
             gotoTarget(target, true);
             return false;
         });
-        $(document).on('submit', 'form[action="/post-to-api"]', function() {
+        $(document).on('submit', 'form[action="/post-to-api"]:not(.custom-submit)', function() {
             $('#reload-icon').addClass('loading-rotate');
             $.post(this.action, $(this).serialize(), function(_data) {
                 $('#main-content').replaceWith($(_data).find('#main-content'));