瀏覽代碼

added account/account client pages

= 4 年之前
父節點
當前提交
0a0651b458
共有 26 個文件被更改,包括 696 次插入6 次删除
  1. 24 0
      app/Http/Controllers/account_clients_Controller.php
  2. 43 0
      app/Http/Controllers/account_clients_SINGLE_Controller.php
  3. 24 0
      app/Http/Controllers/accounts_Controller.php
  4. 54 0
      app/Http/Controllers/accounts_SINGLE_Controller.php
  5. 18 0
      generatecv/tree.txt
  6. 2 0
      resources/views/admin/account_clients/actions.blade.php
  7. 50 0
      resources/views/admin/account_clients/index.blade.php
  8. 3 0
      resources/views/admin/account_clients/info.blade.php
  9. 1 0
      resources/views/admin/account_clients/subs.blade.php
  10. 20 0
      resources/views/admin/account_clients/view.blade.php
  11. 38 0
      resources/views/admin/account_clients_SINGLE/ACTION_proAllowAccess.blade.php
  12. 38 0
      resources/views/admin/account_clients_SINGLE/ACTION_proDenyAccess.blade.php
  13. 41 0
      resources/views/admin/account_clients_SINGLE/SUB_dashboard.blade.php
  14. 2 0
      resources/views/admin/accounts/actions.blade.php
  15. 72 0
      resources/views/admin/accounts/index.blade.php
  16. 3 0
      resources/views/admin/accounts/info.blade.php
  17. 2 0
      resources/views/admin/accounts/subs.blade.php
  18. 20 0
      resources/views/admin/accounts/view.blade.php
  19. 41 0
      resources/views/admin/accounts_SINGLE/ACTION_deactivate.blade.php
  20. 41 0
      resources/views/admin/accounts_SINGLE/ACTION_reactivate.blade.php
  21. 54 0
      resources/views/admin/accounts_SINGLE/SUB_clients.blade.php
  22. 41 0
      resources/views/admin/accounts_SINGLE/SUB_dashboard.blade.php
  23. 2 1
      resources/views/admin/pros/actions.blade.php
  24. 15 0
      resources/views/admin/pros_SINGLE/SUB_dashboard.blade.php
  25. 14 0
      resources/views/layouts/generated-links.blade.php
  26. 33 5
      routes/generated.php

+ 24 - 0
app/Http/Controllers/account_clients_Controller.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
+
+class account_clients_Controller extends Controller
+{
+    public $selfName = 'account_clients_Controller';
+    public $dashboardName = 'dashboard';
+
+	// GET /account_clients
+	public function index(Request $request) {
+		$records = DB::table('account_client')->get();
+		return response()->view('admin/account_clients/index', compact('records'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /account_clients/view/{uid}
+	public function view(Request $request, $uid) {
+		return redirect("/account_clients/view/$uid/SUB_dashboard");
+	}
+}

+ 43 - 0
app/Http/Controllers/account_clients_SINGLE_Controller.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
+
+class account_clients_SINGLE_Controller extends Controller
+{
+    public $selfName = 'account_clients_SINGLE_Controller';
+    public $dashboardName = 'dashboard';
+
+	// GET /account_clients/view/{uid}/ACTION_proAllowAccess
+	public function ACTION_proAllowAccess(Request $request, $uid) {
+		$record = DB::table('account_client')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account_client')->where('id', $uid)->first();
+			if($record) return redirect('/account_clients/view/' . $record->uid . '/ACTION_proAllowAccess');
+		}
+		return response()->view('admin/account_clients_SINGLE/ACTION_proAllowAccess', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /account_clients/view/{uid}/ACTION_proDenyAccess
+	public function ACTION_proDenyAccess(Request $request, $uid) {
+		$record = DB::table('account_client')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account_client')->where('id', $uid)->first();
+			if($record) return redirect('/account_clients/view/' . $record->uid . '/ACTION_proDenyAccess');
+		}
+		return response()->view('admin/account_clients_SINGLE/ACTION_proDenyAccess', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /account_clients/view/{uid}/SUB_dashboard
+	public function SUB_dashboard(Request $request, $uid) {
+		$record = DB::table('account_client')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account_client')->where('id', $uid)->first();
+			if($record) return redirect('/account_clients/view/' . $record->uid . '/SUB_dashboard');
+		}
+		return response()->view('admin/account_clients_SINGLE/SUB_dashboard', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+}

+ 24 - 0
app/Http/Controllers/accounts_Controller.php

@@ -0,0 +1,24 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
+
+class accounts_Controller extends Controller
+{
+    public $selfName = 'accounts_Controller';
+    public $dashboardName = 'dashboard';
+
+	// GET /accounts
+	public function index(Request $request) {
+		$records = DB::table('account')->get();
+		return response()->view('admin/accounts/index', compact('records'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /accounts/view/{uid}
+	public function view(Request $request, $uid) {
+		return redirect("/accounts/view/$uid/SUB_dashboard");
+	}
+}

+ 54 - 0
app/Http/Controllers/accounts_SINGLE_Controller.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Auth;
+
+class accounts_SINGLE_Controller extends Controller
+{
+    public $selfName = 'accounts_SINGLE_Controller';
+    public $dashboardName = 'dashboard';
+
+	// GET /accounts/view/{uid}/ACTION_deactivate
+	public function ACTION_deactivate(Request $request, $uid) {
+		$record = DB::table('account')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account')->where('id', $uid)->first();
+			if($record) return redirect('/accounts/view/' . $record->uid . '/ACTION_deactivate');
+		}
+		return response()->view('admin/accounts_SINGLE/ACTION_deactivate', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /accounts/view/{uid}/ACTION_reactivate
+	public function ACTION_reactivate(Request $request, $uid) {
+		$record = DB::table('account')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account')->where('id', $uid)->first();
+			if($record) return redirect('/accounts/view/' . $record->uid . '/ACTION_reactivate');
+		}
+		return response()->view('admin/accounts_SINGLE/ACTION_reactivate', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /accounts/view/{uid}/SUB_dashboard
+	public function SUB_dashboard(Request $request, $uid) {
+		$record = DB::table('account')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account')->where('id', $uid)->first();
+			if($record) return redirect('/accounts/view/' . $record->uid . '/SUB_dashboard');
+		}
+		return response()->view('admin/accounts_SINGLE/SUB_dashboard', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /accounts/view/{uid}/SUB_clients
+	public function SUB_clients(Request $request, $uid) {
+		$record = DB::table('account')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('account')->where('id', $uid)->first();
+			if($record) return redirect('/accounts/view/' . $record->uid . '/SUB_clients');
+		}
+		$subRecords = DB::table('account_client')->where('account_id', $record->id)->get();
+		return response()->view('admin/accounts_SINGLE/SUB_clients', compact('record', 'subRecords'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+}

+ 18 - 0
generatecv/tree.txt

@@ -1456,3 +1456,21 @@ ADMIN
                 detail=detail
         SUB
             dashboard
+    accounts|account|view|icon:tablet-alt
+    accounts/view/{uid}
+        ACTIONS
+            deactivate
+                memo
+            reactivate
+                memo
+        SUB
+            dashboard
+            clients
+                id=account_client.account_id=>/account_clients/view/UID
+    account_clients|account_client|view|icon:tablet-alt
+    account_clients/view/{uid}
+        ACTIONS
+            proAllowAccess
+            proDenyAccess
+        SUB
+            dashboard

+ 2 - 0
resources/views/admin/account_clients/actions.blade.php

@@ -0,0 +1,2 @@
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/account_clients/view/<?= $record->uid ?>/ACTION_proAllowAccess?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Pro Allow Access</a>
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/account_clients/view/<?= $record->uid ?>/ACTION_proDenyAccess?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Pro Deny Access</a>

+ 50 - 0
resources/views/admin/account_clients/index.blade.php

@@ -0,0 +1,50 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <h3 class="d-flex my-3 px-3 stag-heading stag-heading-index">
+        <div>Account Clients: List</div>
+        <div class="ml-auto">
+            <!-- _ADD_NEW_LINK_ -->
+        </div>
+    </h3>
+
+    <div class="table-responsive p-0 bg-white border stag-table stag-table-index">
+        <table class="table table-hover text-nowrap table-striped">
+            <thead>
+            <tr>
+<th>&nbsp;</th>
+<th>Created At</th>
+<th>Type</th>
+<th>Is Removed</th>
+<th>Removal Memo</th>
+<th>Removed At</th>
+<th>Access Code</th>
+<th>Is Access Allowed</th>
+<th>Created By Session Id</th>
+<th>Removed By Session Id</th>
+<th>Account Id</th>
+<th>Client Id</th>
+            </tr>
+            </thead>
+            <tbody>
+            @foreach($records as $record)
+                <tr>
+<td><a href="/account_clients/view/<?= $record->uid ?>"><i class="fas fa-share-square"></i></a></td>
+<td><?= friendly_date_time($record->created_at) ?></td>
+<td><?= $record->type ?></td>
+<td><?= $record->is_removed ?></td>
+<td><?= $record->removal_memo ?></td>
+<td><?= friendly_date_time($record->removed_at) ?></td>
+<td><?= $record->access_code ?></td>
+<td><?= $record->is_access_allowed ?></td>
+<td><?= $record->created_by_session_id ?></td>
+<td><?= $record->removed_by_session_id ?></td>
+<td><?= $record->account_id ?></td>
+<td><?= $record->client_id ?></td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+
+@endsection

+ 3 - 0
resources/views/admin/account_clients/info.blade.php

@@ -0,0 +1,3 @@
+<h4 class="d-flex my-3 px-3 stag-heading stag-heading-info">
+    <div>Account Clients: Single [<?= $record->uid ?>]</div>
+</h4>

+ 1 - 0
resources/views/admin/account_clients/subs.blade.php

@@ -0,0 +1 @@
+<a href='/account_clients/view/<?= $record->uid ?>/SUB_dashboard' class='d-block px-3 py-2 border-bottom stag-sublink {{ request()->route()->getActionMethod() === 'SUB_dashboard' ? 'bg-secondary text-white font-weight-bold' : '' }}{{ strpos(request()->route()->getActionMethod(), 'ACTION_') === 0 ? 'bg-secondary text-white font-weight-bold' : '' }}'>Dashboard</a>

+ 20 - 0
resources/views/admin/account_clients/view.blade.php

@@ -0,0 +1,20 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <div class="card rounded-0">
+        <div class="border-bottom bg-light">@include('admin/account_clients/info')</div>
+        <div class="d-flex align-items-stretch">
+            <div class="inner-side-nav">
+                <div class="border-right h-100">
+                    @include('admin/account_clients/subs')
+                </div>
+            </div>
+            <div class="flex-grow-1 px-3 pb-3 mb-3 inner-content">
+                <div>
+                    @yield('content-inner')
+                </div>
+            </div>
+        </div>
+    </div>
+
+@endsection

+ 38 - 0
resources/views/admin/account_clients_SINGLE/ACTION_proAllowAccess.blade.php

@@ -0,0 +1,38 @@
+@extends('admin.account_clients.view')
+@section('content-inner')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Pro Allow Access</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="false"
+          method="post" enctype="multipart/form-data"
+          class="border-top px-3 pt-3 pb-1 custom-submit">
+        @csrf
+
+        @if (session('message'))
+            <div class="alert alert-danger">{{ session('message') }}</div>
+        @endif
+
+        <input type="hidden" name="_uid" value="{{ $record->uid }}">
+        <input type="hidden" name="_api" value="/api/accountClient/proAllowAccess">
+        <input type="hidden" name="_success" value="{{route('account_clients-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('account_clients_SINGLE-ACTION_proAllowAccess', ['uid' => $record->uid])}}">
+        
+        <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('account_clients-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 38 - 0
resources/views/admin/account_clients_SINGLE/ACTION_proDenyAccess.blade.php

@@ -0,0 +1,38 @@
+@extends('admin.account_clients.view')
+@section('content-inner')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Pro Deny Access</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="false"
+          method="post" enctype="multipart/form-data"
+          class="border-top px-3 pt-3 pb-1 custom-submit">
+        @csrf
+
+        @if (session('message'))
+            <div class="alert alert-danger">{{ session('message') }}</div>
+        @endif
+
+        <input type="hidden" name="_uid" value="{{ $record->uid }}">
+        <input type="hidden" name="_api" value="/api/accountClient/proDenyAccess">
+        <input type="hidden" name="_success" value="{{route('account_clients-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('account_clients_SINGLE-ACTION_proDenyAccess', ['uid' => $record->uid])}}">
+        
+        <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('account_clients-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 41 - 0
resources/views/admin/account_clients_SINGLE/SUB_dashboard.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.account_clients.view')
+@section('content-inner')
+
+    <div class="row mt-3">
+    <div class="col-8">
+
+        <div class="table-responsive p-0 bg-white table-sm stag-table border-top">
+            <table class="table table-hover text-nowrap table-striped border-left border-right border-bottom">
+                <thead>
+                <tr>
+                    <th colspan="2" class="px-2">Record Details</th>
+                </tr>
+                </thead>
+                <tbody>
+                <?php foreach($record as $k => $v): ?>
+                    <?php
+                    if($k === 'id' || $k === 'uid') continue;
+                    $displayValue = $record->$k;
+                    if(substr($k, -3) === '_at') {
+                        $displayValue = friendly_date_time($record->$k);
+                    }
+                    ?>
+                    <tr>
+                        <td class="px-2 text-secondary border-right w-50">{{ ucwords(str_replace("_", " ", $k)) }}</td>
+                        <td class="px-2 font-weight-bold w-50">{{ $displayValue }}</td>
+                    </tr>
+                <?php endforeach; ?>
+                </tbody>
+            </table>
+        </div>
+
+    </div>
+    <div class="col-4">
+        <div class="border-left h-100 pl-3">
+            @include('admin/account_clients/actions')
+        </div>
+    </div>
+</div>
+
+
+@endsection

+ 2 - 0
resources/views/admin/accounts/actions.blade.php

@@ -0,0 +1,2 @@
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/accounts/view/<?= $record->uid ?>/ACTION_deactivate?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Deactivate</a>
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/accounts/view/<?= $record->uid ?>/ACTION_reactivate?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Reactivate</a>

+ 72 - 0
resources/views/admin/accounts/index.blade.php

@@ -0,0 +1,72 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <h3 class="d-flex my-3 px-3 stag-heading stag-heading-index">
+        <div>Accounts: List</div>
+        <div class="ml-auto">
+            <!-- _ADD_NEW_LINK_ -->
+        </div>
+    </h3>
+
+    <div class="table-responsive p-0 bg-white border stag-table stag-table-index">
+        <table class="table table-hover text-nowrap table-striped">
+            <thead>
+            <tr>
+<th>&nbsp;</th>
+<th>Created At</th>
+<th>Type</th>
+<th>Deactivated At</th>
+<th>Deactivation Memo</th>
+<th>Is Active</th>
+<th>Reactivated At</th>
+<th>Reactivation Memo</th>
+<th>Dob</th>
+<th>Email</th>
+<th>Gender</th>
+<th>Name First</th>
+<th>Name Last</th>
+<th>Password</th>
+<th>Password Reset Requested At</th>
+<th>Password Reset Token</th>
+<th>Phone Number</th>
+<th>Created By Session Id</th>
+<th>Deactivated By Session Id</th>
+<th>Reactivated By Session Id</th>
+<th>Email Confirmation Token</th>
+<th>Was Email Confirmed</th>
+<th>Email Confirmed At</th>
+            </tr>
+            </thead>
+            <tbody>
+            @foreach($records as $record)
+                <tr>
+<td><a href="/accounts/view/<?= $record->uid ?>"><i class="fas fa-share-square"></i></a></td>
+<td><?= friendly_date_time($record->created_at) ?></td>
+<td><?= $record->type ?></td>
+<td><?= friendly_date_time($record->deactivated_at) ?></td>
+<td><?= $record->deactivation_memo ?></td>
+<td><?= $record->is_active ?></td>
+<td><?= friendly_date_time($record->reactivated_at) ?></td>
+<td><?= $record->reactivation_memo ?></td>
+<td><?= $record->dob ?></td>
+<td><?= $record->email ?></td>
+<td><?= $record->gender ?></td>
+<td><?= $record->name_first ?></td>
+<td><?= $record->name_last ?></td>
+<td><?= $record->password ?></td>
+<td><?= friendly_date_time($record->password_reset_requested_at) ?></td>
+<td><?= $record->password_reset_token ?></td>
+<td><?= $record->phone_number ?></td>
+<td><?= $record->created_by_session_id ?></td>
+<td><?= $record->deactivated_by_session_id ?></td>
+<td><?= $record->reactivated_by_session_id ?></td>
+<td><?= $record->email_confirmation_token ?></td>
+<td><?= $record->was_email_confirmed ?></td>
+<td><?= friendly_date_time($record->email_confirmed_at) ?></td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+
+@endsection

+ 3 - 0
resources/views/admin/accounts/info.blade.php

@@ -0,0 +1,3 @@
+<h4 class="d-flex my-3 px-3 stag-heading stag-heading-info">
+    <div>Accounts: Single [<?= $record->uid ?>]</div>
+</h4>

+ 2 - 0
resources/views/admin/accounts/subs.blade.php

@@ -0,0 +1,2 @@
+<a href='/accounts/view/<?= $record->uid ?>/SUB_dashboard' class='d-block px-3 py-2 border-bottom stag-sublink {{ request()->route()->getActionMethod() === 'SUB_dashboard' ? 'bg-secondary text-white font-weight-bold' : '' }}{{ strpos(request()->route()->getActionMethod(), 'ACTION_') === 0 ? 'bg-secondary text-white font-weight-bold' : '' }}'>Dashboard</a>
+<a href='/accounts/view/<?= $record->uid ?>/SUB_clients' class='d-block px-3 py-2 border-bottom stag-sublink {{ request()->route()->getActionMethod() === 'SUB_clients' ? 'bg-secondary text-white font-weight-bold' : '' }}'>Clients</a>

+ 20 - 0
resources/views/admin/accounts/view.blade.php

@@ -0,0 +1,20 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <div class="card rounded-0">
+        <div class="border-bottom bg-light">@include('admin/accounts/info')</div>
+        <div class="d-flex align-items-stretch">
+            <div class="inner-side-nav">
+                <div class="border-right h-100">
+                    @include('admin/accounts/subs')
+                </div>
+            </div>
+            <div class="flex-grow-1 px-3 pb-3 mb-3 inner-content">
+                <div>
+                    @yield('content-inner')
+                </div>
+            </div>
+        </div>
+    </div>
+
+@endsection

+ 41 - 0
resources/views/admin/accounts_SINGLE/ACTION_deactivate.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.accounts.view')
+@section('content-inner')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Deactivate</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="false"
+          method="post" enctype="multipart/form-data"
+          class="border-top px-3 pt-3 pb-1 custom-submit">
+        @csrf
+
+        @if (session('message'))
+            <div class="alert alert-danger">{{ session('message') }}</div>
+        @endif
+
+        <input type="hidden" name="_uid" value="{{ $record->uid }}">
+        <input type="hidden" name="_api" value="/api/account/deactivate">
+        <input type="hidden" name="_success" value="{{route('accounts-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('accounts_SINGLE-ACTION_deactivate', ['uid' => $record->uid])}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Memo </label>
+<input class='form-control' type='text' name='memo' value='{{ old('memo') ? old('memo') : '' }}' >
+</div>
+        <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('accounts-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 41 - 0
resources/views/admin/accounts_SINGLE/ACTION_reactivate.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.accounts.view')
+@section('content-inner')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Reactivate</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="false"
+          method="post" enctype="multipart/form-data"
+          class="border-top px-3 pt-3 pb-1 custom-submit">
+        @csrf
+
+        @if (session('message'))
+            <div class="alert alert-danger">{{ session('message') }}</div>
+        @endif
+
+        <input type="hidden" name="_uid" value="{{ $record->uid }}">
+        <input type="hidden" name="_api" value="/api/account/reactivate">
+        <input type="hidden" name="_success" value="{{route('accounts-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('accounts_SINGLE-ACTION_reactivate', ['uid' => $record->uid])}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Memo </label>
+<input class='form-control' type='text' name='memo' value='{{ old('memo') ? old('memo') : '' }}' >
+</div>
+        <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('accounts-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 54 - 0
resources/views/admin/accounts_SINGLE/SUB_clients.blade.php

@@ -0,0 +1,54 @@
+@extends('admin.accounts.view')
+@section('content-inner')
+
+    <div class="pb-3">
+
+        <h5 class='my-3 d-flex stag-heading stag-heading-sub'>
+            <div>Clients</div>
+            <div class="ml-auto">
+                <!-- _ADD_NEW_LINK_ -->
+            </div>
+        </h5>
+
+        <div class="table-responsive p-0 bg-white border stag-table stag-table-sub">
+            <table class="table table-hover text-nowrap">
+                <thead>
+                <tr>
+                    <th>&nbsp;</th>
+<th>Created At</th>
+<th>Type</th>
+<th>Is Removed</th>
+<th>Removal Memo</th>
+<th>Removed At</th>
+<th>Access Code</th>
+<th>Is Access Allowed</th>
+<th>Created By Session Id</th>
+<th>Removed By Session Id</th>
+<th>Account Id</th>
+<th>Client Id</th>
+                </tr>
+                </thead>
+                <tbody>
+                @foreach($subRecords as $subRecord)
+                    <tr>
+                        <td><a href="/account_clients/view/{{ $subRecord->uid }}"><i class="fas fa-share-square"></i></a></td>
+<td><?= friendly_date_time($subRecord->created_at) ?></td>
+<td><?= $subRecord->type ?></td>
+<td><?= $subRecord->is_removed ?></td>
+<td><?= $subRecord->removal_memo ?></td>
+<td><?= friendly_date_time($subRecord->removed_at) ?></td>
+<td><?= $subRecord->access_code ?></td>
+<td><?= $subRecord->is_access_allowed ?></td>
+<td><?= $subRecord->created_by_session_id ?></td>
+<td><?= $subRecord->removed_by_session_id ?></td>
+<td><?= $subRecord->account_id ?></td>
+<td><?= $subRecord->client_id ?></td>
+                    </tr>
+                @endforeach
+                </tbody>
+            </table>
+        </div>
+
+    </div>
+
+@endsection

+ 41 - 0
resources/views/admin/accounts_SINGLE/SUB_dashboard.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.accounts.view')
+@section('content-inner')
+
+    <div class="row mt-3">
+    <div class="col-8">
+
+        <div class="table-responsive p-0 bg-white table-sm stag-table border-top">
+            <table class="table table-hover text-nowrap table-striped border-left border-right border-bottom">
+                <thead>
+                <tr>
+                    <th colspan="2" class="px-2">Record Details</th>
+                </tr>
+                </thead>
+                <tbody>
+                <?php foreach($record as $k => $v): ?>
+                    <?php
+                    if($k === 'id' || $k === 'uid') continue;
+                    $displayValue = $record->$k;
+                    if(substr($k, -3) === '_at') {
+                        $displayValue = friendly_date_time($record->$k);
+                    }
+                    ?>
+                    <tr>
+                        <td class="px-2 text-secondary border-right w-50">{{ ucwords(str_replace("_", " ", $k)) }}</td>
+                        <td class="px-2 font-weight-bold w-50">{{ $displayValue }}</td>
+                    </tr>
+                <?php endforeach; ?>
+                </tbody>
+            </table>
+        </div>
+
+    </div>
+    <div class="col-4">
+        <div class="border-left h-100 pl-3">
+            @include('admin/accounts/actions')
+        </div>
+    </div>
+</div>
+
+
+@endsection

+ 2 - 1
resources/views/admin/pros/actions.blade.php

@@ -43,4 +43,5 @@
 <a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_putSlug?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Put Slug</a>
 <a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_updateProfileImage?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Update Profile Image</a>
 <a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_updateProfileData?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Update Profile Data</a>
-<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_putProMemo?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Put Pro Memo</a>
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_putProMemo?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Put Pro Memo</a>
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_putCompany?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Put Company</a>

+ 15 - 0
resources/views/admin/pros_SINGLE/SUB_dashboard.blade.php

@@ -19,6 +19,21 @@
     </table>
 </div>
 
+<div class="table-responsive p-0 bg-white table-sm mb-3">
+    <table class="table table-hover text-nowrap table-striped border-left border-right border-bottom">
+        <thead>
+        <tr>
+            <th colspan="2" class="px-2">Company
+                <span class="ml-auto"><a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pros/view/<?= $record->uid ?>/ACTION_putCompany' title='Change?optimised=1'class='mx-2 font-weight-normal text-primary text-xs'><i class='fa fa-circle'></i>&nbsp;<span>Change</span></a></span>
+            </th>
+        </tr>
+        </thead>
+        <tbody>
+            <tr><td class="w-25 px-2 text-secondary border-right">Company Id</td><td class="w-75 px-2 font-weight-bold"><?= $record->company_id ?></td></tr>
+        </tbody>
+    </table>
+</div>
+
 <div class="table-responsive p-0 bg-white table-sm mb-3">
     <table class="table table-hover text-nowrap table-striped border-left border-right border-bottom">
         <thead>

+ 14 - 0
resources/views/layouts/generated-links.blade.php

@@ -256,3 +256,17 @@
 		<p>Companies</p>
 	</a>
 </li>
+
+<li class='nav-item'>
+	<a href='/accounts' class='nav-link {{ (isset(request()->route()->getController()->selfName) && strpos(request()->route()->getController()->selfName, 'accounts') === 0 ? 'active' : '') }} '>
+		<i class='nav-icon fa fa-tablet-alt'></i>
+		<p>Accounts</p>
+	</a>
+</li>
+
+<li class='nav-item'>
+	<a href='/account_clients' class='nav-link {{ (isset(request()->route()->getController()->selfName) && strpos(request()->route()->getController()->selfName, 'account_clients') === 0 ? 'active' : '') }} '>
+		<i class='nav-icon fa fa-tablet-alt'></i>
+		<p>Account Clients</p>
+	</a>
+</li>

+ 33 - 5
routes/generated.php

@@ -398,6 +398,7 @@ Route::prefix('/pros/view/{uid}')->group(function () {
 	Route::get('ACTION_updateProfileImage', 'pros_SINGLE_Controller@ACTION_updateProfileImage')->name('pros_SINGLE-ACTION_updateProfileImage');
 	Route::get('ACTION_updateProfileData', 'pros_SINGLE_Controller@ACTION_updateProfileData')->name('pros_SINGLE-ACTION_updateProfileData');
 	Route::get('ACTION_putProMemo', 'pros_SINGLE_Controller@ACTION_putProMemo')->name('pros_SINGLE-ACTION_putProMemo');
+	Route::get('ACTION_putCompany', 'pros_SINGLE_Controller@ACTION_putCompany')->name('pros_SINGLE-ACTION_putCompany');
 	Route::get('SUB_dashboard', 'pros_SINGLE_Controller@SUB_dashboard')->name('pros_SINGLE-SUB_dashboard');
 	Route::get('SUB_pro_rates', 'pros_SINGLE_Controller@SUB_pro_rates')->name('pros_SINGLE-SUB_pro_rates');
 	Route::get('SUB_note_templates', 'pros_SINGLE_Controller@SUB_note_templates')->name('pros_SINGLE-SUB_note_templates');
@@ -654,6 +655,13 @@ Route::prefix('/mb_claim')->group(function () {
 	Route::get('view/{uid}', 'mb_claim_Controller@view')->name('mb_claim-view');
 });
 
+// --- admin: companies --- //
+Route::prefix('/companies')->group(function () {
+	Route::get('', 'companies_Controller@index')->name('companies-index');
+	Route::get('add_new', 'companies_Controller@add_new')->name('companies-add_new');
+	Route::get('view/{uid}', 'companies_Controller@view')->name('companies-view');
+});
+
 // --- admin: companies_SINGLE --- //
 Route::prefix('/companies/view/{uid}')->group(function () {
 	Route::get('ACTION_deactivate', 'companies_SINGLE_Controller@ACTION_deactivate')->name('companies_SINGLE-ACTION_deactivate');
@@ -662,9 +670,29 @@ Route::prefix('/companies/view/{uid}')->group(function () {
 	Route::get('SUB_dashboard', 'companies_SINGLE_Controller@SUB_dashboard')->name('companies_SINGLE-SUB_dashboard');
 });
 
-// --- admin: companies --- //
-Route::prefix('/companies')->group(function () {
-	Route::get('', 'companies_Controller@index')->name('companies-index');
-	Route::get('add_new', 'companies_Controller@add_new')->name('companies-add_new');
-	Route::get('view/{uid}', 'companies_Controller@view')->name('companies-view');
+// --- admin: accounts --- //
+Route::prefix('/accounts')->group(function () {
+	Route::get('', 'accounts_Controller@index')->name('accounts-index');
+	Route::get('view/{uid}', 'accounts_Controller@view')->name('accounts-view');
+});
+
+// --- admin: accounts_SINGLE --- //
+Route::prefix('/accounts/view/{uid}')->group(function () {
+	Route::get('ACTION_deactivate', 'accounts_SINGLE_Controller@ACTION_deactivate')->name('accounts_SINGLE-ACTION_deactivate');
+	Route::get('ACTION_reactivate', 'accounts_SINGLE_Controller@ACTION_reactivate')->name('accounts_SINGLE-ACTION_reactivate');
+	Route::get('SUB_dashboard', 'accounts_SINGLE_Controller@SUB_dashboard')->name('accounts_SINGLE-SUB_dashboard');
+	Route::get('SUB_clients', 'accounts_SINGLE_Controller@SUB_clients')->name('accounts_SINGLE-SUB_clients');
+});
+
+// --- admin: account_clients_SINGLE --- //
+Route::prefix('/account_clients/view/{uid}')->group(function () {
+	Route::get('ACTION_proAllowAccess', 'account_clients_SINGLE_Controller@ACTION_proAllowAccess')->name('account_clients_SINGLE-ACTION_proAllowAccess');
+	Route::get('ACTION_proDenyAccess', 'account_clients_SINGLE_Controller@ACTION_proDenyAccess')->name('account_clients_SINGLE-ACTION_proDenyAccess');
+	Route::get('SUB_dashboard', 'account_clients_SINGLE_Controller@SUB_dashboard')->name('account_clients_SINGLE-SUB_dashboard');
+});
+
+// --- admin: account_clients --- //
+Route::prefix('/account_clients')->group(function () {
+	Route::get('', 'account_clients_Controller@index')->name('account_clients-index');
+	Route::get('view/{uid}', 'account_clients_Controller@view')->name('account_clients-view');
 });