= пре 4 година
родитељ
комит
c1afbfd5fe
30 измењених фајлова са 852 додато и 4 уклоњено
  1. 30 0
      app/Http/Controllers/pro_teams_Controller.php
  2. 53 0
      app/Http/Controllers/pro_teams_SINGLE_Controller.php
  3. 30 0
      app/Http/Controllers/pro_text_shortcuts_Controller.php
  4. 43 0
      app/Http/Controllers/pro_text_shortcuts_SINGLE_Controller.php
  5. 8 0
      resources/views/admin/companies/index.blade.php
  6. 8 0
      resources/views/admin/company_pros/index.blade.php
  7. 3 0
      resources/views/admin/pro_teams/actions.blade.php
  8. 74 0
      resources/views/admin/pro_teams/add_new.blade.php
  9. 68 0
      resources/views/admin/pro_teams/index.blade.php
  10. 3 0
      resources/views/admin/pro_teams/info.blade.php
  11. 1 0
      resources/views/admin/pro_teams/subs.blade.php
  12. 20 0
      resources/views/admin/pro_teams/view.blade.php
  13. 41 0
      resources/views/admin/pro_teams_SINGLE/ACTION_deactivate.blade.php
  14. 41 0
      resources/views/admin/pro_teams_SINGLE/ACTION_reactivate.blade.php
  15. 45 0
      resources/views/admin/pro_teams_SINGLE/ACTION_updateBasic.blade.php
  16. 41 0
      resources/views/admin/pro_teams_SINGLE/SUB_dashboard.blade.php
  17. 2 0
      resources/views/admin/pro_text_shortcuts/actions.blade.php
  18. 54 0
      resources/views/admin/pro_text_shortcuts/add_new.blade.php
  19. 50 0
      resources/views/admin/pro_text_shortcuts/index.blade.php
  20. 3 0
      resources/views/admin/pro_text_shortcuts/info.blade.php
  21. 1 0
      resources/views/admin/pro_text_shortcuts/subs.blade.php
  22. 20 0
      resources/views/admin/pro_text_shortcuts/view.blade.php
  23. 38 0
      resources/views/admin/pro_text_shortcuts_SINGLE/ACTION_remove.blade.php
  24. 45 0
      resources/views/admin/pro_text_shortcuts_SINGLE/ACTION_update.blade.php
  25. 41 0
      resources/views/admin/pro_text_shortcuts_SINGLE/SUB_dashboard.blade.php
  26. 14 0
      resources/views/layouts/generated-links.blade.php
  27. 14 0
      resources/views/pro/care_months_SINGLE/SUB_bills.blade.php
  28. 14 0
      resources/views/pro/clients_SINGLE/SUB_bills.blade.php
  29. 14 0
      resources/views/pro/notes_SINGLE/SUB_bills.blade.php
  30. 33 4
      routes/generated.php

+ 30 - 0
app/Http/Controllers/pro_teams_Controller.php

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

+ 53 - 0
app/Http/Controllers/pro_teams_SINGLE_Controller.php

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

+ 30 - 0
app/Http/Controllers/pro_text_shortcuts_Controller.php

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

+ 43 - 0
app/Http/Controllers/pro_text_shortcuts_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 pro_text_shortcuts_SINGLE_Controller extends Controller
+{
+    public $selfName = 'pro_text_shortcuts_SINGLE_Controller';
+    public $dashboardName = 'dashboard';
+
+	// GET /pro_text_shortcuts/view/{uid}/ACTION_update
+	public function ACTION_update(Request $request, $uid) {
+		$record = DB::table('pro_text_shortcut')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('pro_text_shortcut')->where('id', $uid)->first();
+			if($record) return redirect('/pro_text_shortcuts/view/' . $record->uid . '/ACTION_update');
+		}
+		return response()->view('admin/pro_text_shortcuts_SINGLE/ACTION_update', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /pro_text_shortcuts/view/{uid}/ACTION_remove
+	public function ACTION_remove(Request $request, $uid) {
+		$record = DB::table('pro_text_shortcut')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('pro_text_shortcut')->where('id', $uid)->first();
+			if($record) return redirect('/pro_text_shortcuts/view/' . $record->uid . '/ACTION_remove');
+		}
+		return response()->view('admin/pro_text_shortcuts_SINGLE/ACTION_remove', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+
+	// GET /pro_text_shortcuts/view/{uid}/SUB_dashboard
+	public function SUB_dashboard(Request $request, $uid) {
+		$record = DB::table('pro_text_shortcut')->where('uid', $uid)->first();
+		if(!$record) {
+			$record = DB::table('pro_text_shortcut')->where('id', $uid)->first();
+			if($record) return redirect('/pro_text_shortcuts/view/' . $record->uid . '/SUB_dashboard');
+		}
+		return response()->view('admin/pro_text_shortcuts_SINGLE/SUB_dashboard', compact('record'), session('message') ? 500 : 200)->header('Content-Type', 'text/html');
+	}
+}

+ 8 - 0
resources/views/admin/companies/index.blade.php

@@ -28,6 +28,10 @@
 <th>Reactivated By Session Id</th>
 <th>Reactivation Memo</th>
 <th>Detail Json</th>
+<th>Status</th>
+<th>Status Memo</th>
+<th>Status Updated At</th>
+<th>Status Updated By Session Id</th>
             </tr>
             </thead>
             <tbody>
@@ -49,6 +53,10 @@
 <td><?= $record->reactivated_by_session_id ?></td>
 <td><?= $record->reactivation_memo ?></td>
 <td><?= $record->detail_json ?></td>
+<td><?= $record->status ?></td>
+<td><?= $record->status_memo ?></td>
+<td><?= friendly_date_time($record->status_updated_at) ?></td>
+<td><?= $record->status_updated_by_session_id ?></td>
                 </tr>
             @endforeach
             </tbody>

+ 8 - 0
resources/views/admin/company_pros/index.blade.php

@@ -26,6 +26,10 @@
 <th>Reactivated By Session Id</th>
 <th>Reactivation Memo</th>
 <th>Detail Json</th>
+<th>Status</th>
+<th>Status Memo</th>
+<th>Status Updated At</th>
+<th>Status Updated By Session Id</th>
             </tr>
             </thead>
             <tbody>
@@ -45,6 +49,10 @@
 <td><?= $record->reactivated_by_session_id ?></td>
 <td><?= $record->reactivation_memo ?></td>
 <td><?= $record->detail_json ?></td>
+<td><?= $record->status ?></td>
+<td><?= $record->status_memo ?></td>
+<td><?= friendly_date_time($record->status_updated_at) ?></td>
+<td><?= $record->status_updated_by_session_id ?></td>
                 </tr>
             @endforeach
             </tbody>

+ 3 - 0
resources/views/admin/pro_teams/actions.blade.php

@@ -0,0 +1,3 @@
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pro_teams/view/<?= $record->uid ?>/ACTION_updateBasic?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Update Basic</a>
+<a up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pro_teams/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='/pro_teams/view/<?= $record->uid ?>/ACTION_reactivate?optimised=1' class='d-block btn btn-sm btn-default mb-3'>Reactivate</a>

+ 74 - 0
resources/views/admin/pro_teams/add_new.blade.php

@@ -0,0 +1,74 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Pro Teams: Add New</div>
+        <div class="ml-auto">
+            <a class="text-secondary" href="{{route('pro_teams-index')}}" 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="_api" value="/api/proTeam/create">
+        <input type="hidden" name="_success" value="{{route('pro_teams-index')}}">
+        <input type="hidden" name="_return" value="{{route('pro_teams-add_new')}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Mcp Pro *</label>
+<select class='form-control' name='mcpProUid' value='{{ old('mcpProUid') ? old('mcpProUid') : '' }}' required>
+<option value=''>-- Select --</option>
+<?php $dbOptions = \Illuminate\Support\Facades\DB::table('pro')->get(); ?>
+<?php foreach($dbOptions as $o): ?>
+<option <?= $o->uid === (old('mcpProUid') ? old('mcpProUid') : '') ? 'selected' : '' ?> value='<?= $o->uid ?>'><?= $o->name_display ?> (<?= $o->uid ?>)</option>
+<?php endforeach; ?>
+</select>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Assistant Pro *</label>
+<select class='form-control' name='assistantProUid' value='{{ old('assistantProUid') ? old('assistantProUid') : '' }}' required>
+<option value=''>-- Select --</option>
+<?php $dbOptions = \Illuminate\Support\Facades\DB::table('pro')->get(); ?>
+<?php foreach($dbOptions as $o): ?>
+<option <?= $o->uid === (old('assistantProUid') ? old('assistantProUid') : '') ? 'selected' : '' ?> value='<?= $o->uid ?>'><?= $o->name_display ?> (<?= $o->uid ?>)</option>
+<?php endforeach; ?>
+</select>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Rd Pro </label>
+<select class='form-control' name='rdProUid' value='{{ old('rdProUid') ? old('rdProUid') : '' }}' >
+<option value=''>-- Select --</option>
+<?php $dbOptions = \Illuminate\Support\Facades\DB::table('pro')->get(); ?>
+<?php foreach($dbOptions as $o): ?>
+<option <?= $o->uid === (old('rdProUid') ? old('rdProUid') : '') ? 'selected' : '' ?> value='<?= $o->uid ?>'><?= $o->name_display ?> (<?= $o->uid ?>)</option>
+<?php endforeach; ?>
+</select>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Internal Name *</label>
+<input class='form-control' type='text' name='internalName' value='{{ old('internalName') ? old('internalName') : '' }}' required>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Slug *</label>
+<input class='form-control' type='text' name='slug' value='{{ old('slug') ? old('slug') : '' }}' required>
+</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('pro_teams-index')}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 68 - 0
resources/views/admin/pro_teams/index.blade.php

@@ -0,0 +1,68 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <h3 class="d-flex my-3 px-3 stag-heading stag-heading-index">
+        <div>Pro Teams: List</div>
+        <div class="ml-auto">
+            <a class='btn btn-primary btn-sm ml-2' up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pro_teams/add_new?optimised=1'><i class='fa fa-plus-circle' aria-hidden='true'></i> Add New</a>
+        </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>Mcp Pro Id</th>
+<th>Assistant Pro Id</th>
+<th>Rd Pro Id</th>
+<th>Internal Name</th>
+<th>Slug</th>
+<th>Status</th>
+<th>Status Memo</th>
+<th>Status Updated At</th>
+<th>Status Updated By Session Id</th>
+<th>Is Active</th>
+<th>Deactivated At</th>
+<th>Deactivated By Session Id</th>
+<th>Deactivation Memo</th>
+<th>Reactivated At</th>
+<th>Reactivated By Session Id</th>
+<th>Reactivation Memo</th>
+<th>Created At</th>
+<th>Created By Session Id</th>
+<th>Type</th>
+<th>Detail Json</th>
+            </tr>
+            </thead>
+            <tbody>
+            @foreach($records as $record)
+                <tr>
+<td><a href="/pro_teams/view/<?= $record->uid ?>"><i class="fas fa-share-square"></i></a></td>
+<td><?= $record->mcp_pro_id ?></td>
+<td><?= $record->assistant_pro_id ?></td>
+<td><?= $record->rd_pro_id ?></td>
+<td><?= $record->internal_name ?></td>
+<td><?= $record->slug ?></td>
+<td><?= $record->status ?></td>
+<td><?= $record->status_memo ?></td>
+<td><?= friendly_date_time($record->status_updated_at) ?></td>
+<td><?= $record->status_updated_by_session_id ?></td>
+<td><?= $record->is_active ?></td>
+<td><?= friendly_date_time($record->deactivated_at) ?></td>
+<td><?= $record->deactivated_by_session_id ?></td>
+<td><?= $record->deactivation_memo ?></td>
+<td><?= friendly_date_time($record->reactivated_at) ?></td>
+<td><?= $record->reactivated_by_session_id ?></td>
+<td><?= $record->reactivation_memo ?></td>
+<td><?= friendly_date_time($record->created_at) ?></td>
+<td><?= $record->created_by_session_id ?></td>
+<td><?= $record->type ?></td>
+<td><?= $record->detail_json ?></td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+
+@endsection

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

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

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

@@ -0,0 +1 @@
+<a href='/pro_teams/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/pro_teams/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/pro_teams/info')</div>
+        <div class="d-flex align-items-stretch">
+            <div class="inner-side-nav">
+                <div class="border-right h-100">
+                    @include('admin/pro_teams/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/pro_teams_SINGLE/ACTION_deactivate.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.pro_teams.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/proTeam/deactivate">
+        <input type="hidden" name="_success" value="{{route('pro_teams-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('pro_teams_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('pro_teams-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/pro_teams_SINGLE/ACTION_reactivate.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.pro_teams.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/proTeam/reactivate">
+        <input type="hidden" name="_success" value="{{route('pro_teams-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('pro_teams_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('pro_teams-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 45 - 0
resources/views/admin/pro_teams_SINGLE/ACTION_updateBasic.blade.php

@@ -0,0 +1,45 @@
+@extends('admin.pro_teams.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>Update Basic</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/proTeam/updateBasic">
+        <input type="hidden" name="_success" value="{{route('pro_teams-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('pro_teams_SINGLE-ACTION_updateBasic', ['uid' => $record->uid])}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Internal Name *</label>
+<input class='form-control' type='text' name='internalName' value='{{ old('internalName') ? old('internalName') : $record->internal_name }}' required>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Slug *</label>
+<input class='form-control' type='text' name='slug' value='{{ old('slug') ? old('slug') : $record->slug }}' required>
+</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('pro_teams-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/pro_teams_SINGLE/SUB_dashboard.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.pro_teams.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/pro_teams/actions')
+        </div>
+    </div>
+</div>
+
+
+@endsection

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

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

+ 54 - 0
resources/views/admin/pro_text_shortcuts/add_new.blade.php

@@ -0,0 +1,54 @@
+@extends('layouts.pro-logged-in')
+@section('content')
+
+    <div class="form-contents"><div class="failed-form-contents">
+
+    <h4 class="d-flex m-0 p-3 stag-heading stag-heading-modal">
+        <div>Pro Text Shortcuts: Add New</div>
+        <div class="ml-auto">
+            <a class="text-secondary" href="{{route('pro_text_shortcuts-index')}}" 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="_api" value="/api/proTextShortcut/create">
+        <input type="hidden" name="_success" value="{{route('pro_text_shortcuts-index')}}">
+        <input type="hidden" name="_return" value="{{route('pro_text_shortcuts-add_new')}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Shortcut *</label>
+<input class='form-control' type='text' name='shortcut' value='{{ old('shortcut') ? old('shortcut') : '' }}' required>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Text *</label>
+<textarea class='form-control' name='text' value='{{ old('text') ? old('text') : '' }}' required>{{ old('text') ? old('text') : '' }}</textarea>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Pro </label>
+<select class='form-control' name='proUid' value='{{ old('proUid') ? old('proUid') : '' }}' >
+<option value=''>-- Select --</option>
+<?php $dbOptions = \Illuminate\Support\Facades\DB::table('pro')->get(); ?>
+<?php foreach($dbOptions as $o): ?>
+<option <?= $o->uid === (old('proUid') ? old('proUid') : '') ? 'selected' : '' ?> value='<?= $o->uid ?>'><?= $o->name_display ?> (<?= $o->uid ?>)</option>
+<?php endforeach; ?>
+</select>
+</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('pro_text_shortcuts-index')}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 50 - 0
resources/views/admin/pro_text_shortcuts/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>Pro Text Shortcuts: List</div>
+        <div class="ml-auto">
+            <a class='btn btn-primary btn-sm ml-2' up-modal=".form-contents" up-preload up-delay="25" up-width="800" up-history="false" href='/pro_text_shortcuts/add_new?optimised=1'><i class='fa fa-plus-circle' aria-hidden='true'></i> Add New</a>
+        </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>Shortcut</th>
+<th>Text</th>
+<th>Created By Session Id</th>
+<th>Removed By Session Id</th>
+<th>Pro Id</th>
+<th>Detail Json</th>
+            </tr>
+            </thead>
+            <tbody>
+            @foreach($records as $record)
+                <tr>
+<td><a href="/pro_text_shortcuts/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->shortcut ?></td>
+<td><?= $record->text ?></td>
+<td><?= $record->created_by_session_id ?></td>
+<td><?= $record->removed_by_session_id ?></td>
+<td><?= $record->pro_id ?></td>
+<td><?= $record->detail_json ?></td>
+                </tr>
+            @endforeach
+            </tbody>
+        </table>
+    </div>
+
+@endsection

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

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

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

@@ -0,0 +1 @@
+<a href='/pro_text_shortcuts/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/pro_text_shortcuts/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/pro_text_shortcuts/info')</div>
+        <div class="d-flex align-items-stretch">
+            <div class="inner-side-nav">
+                <div class="border-right h-100">
+                    @include('admin/pro_text_shortcuts/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/pro_text_shortcuts_SINGLE/ACTION_remove.blade.php

@@ -0,0 +1,38 @@
+@extends('admin.pro_text_shortcuts.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>Remove</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/proTextShortcut/remove">
+        <input type="hidden" name="_success" value="{{route('pro_text_shortcuts-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('pro_text_shortcuts_SINGLE-ACTION_remove', ['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('pro_text_shortcuts-view', ['uid' => $record->uid])}}" class="btn btn-sm btn-default px-5" up-close>Cancel</a>
+        </div>
+    </form>
+
+    </div></div>
+
+@endsection

+ 45 - 0
resources/views/admin/pro_text_shortcuts_SINGLE/ACTION_update.blade.php

@@ -0,0 +1,45 @@
+@extends('admin.pro_text_shortcuts.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>Update</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/proTextShortcut/update">
+        <input type="hidden" name="_success" value="{{route('pro_text_shortcuts-view', ['uid' => $record->uid])}}">
+        <input type="hidden" name="_return" value="{{route('pro_text_shortcuts_SINGLE-ACTION_update', ['uid' => $record->uid])}}">
+        <div class='form-group mb-3'>
+<label class='control-label'>Shortcut *</label>
+<input class='form-control' type='text' name='shortcut' value='{{ old('shortcut') ? old('shortcut') : $record->shortcut }}' required>
+</div>
+<div class='form-group mb-3'>
+<label class='control-label'>Text *</label>
+<textarea class='form-control' name='text' value='{{ old('text') ? old('text') : $record->text }}' required>{{ old('text') ? old('text') : $record->text }}</textarea>
+</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('pro_text_shortcuts-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/pro_text_shortcuts_SINGLE/SUB_dashboard.blade.php

@@ -0,0 +1,41 @@
+@extends('admin.pro_text_shortcuts.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/pro_text_shortcuts/actions')
+        </div>
+    </div>
+</div>
+
+
+@endsection

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

@@ -284,3 +284,17 @@
 		<p>Company Pros</p>
 	</a>
 </li>
+
+<li class='nav-item'>
+	<a href='/pro_teams' class='nav-link {{ (isset(request()->route()->getController()->selfName) && strpos(request()->route()->getController()->selfName, 'pro_teams') === 0 ? 'active' : '') }} '>
+		<i class='nav-icon fa fa-check'></i>
+		<p>Pro Teams</p>
+	</a>
+</li>
+
+<li class='nav-item'>
+	<a href='/pro_text_shortcuts' class='nav-link {{ (isset(request()->route()->getController()->selfName) && strpos(request()->route()->getController()->selfName, 'pro_text_shortcuts') === 0 ? 'active' : '') }} '>
+		<i class='nav-icon fa fa-check'></i>
+		<p>Pro Text Shortcuts</p>
+	</a>
+</li>

+ 14 - 0
resources/views/pro/care_months_SINGLE/SUB_bills.blade.php

@@ -111,6 +111,13 @@
 <th>Claim Closed By Session Id</th>
 <th>Claim Closed By Pro Id</th>
 <th>Detail Json</th>
+<th>Is Signed By Na</th>
+<th>Signed By Na At</th>
+<th>Signed By Na Session Id</th>
+<th>Is Billing Marked Done</th>
+<th>Billing Marked Done By Session Id</th>
+<th>Billing Marked Done By Pro Id</th>
+<th>Billing Marked Done At</th>
                 </tr>
                 </thead>
                 <tbody>
@@ -213,6 +220,13 @@
 <td><?= $subRecord->claim_closed_by_session_id ?></td>
 <td><?= $subRecord->claim_closed_by_pro_id ?></td>
 <td><?= $subRecord->detail_json ?></td>
+<td><?= $subRecord->is_signed_by_na ?></td>
+<td><?= friendly_date_time($subRecord->signed_by_na_at) ?></td>
+<td><?= $subRecord->signed_by_na_session_id ?></td>
+<td><?= $subRecord->is_billing_marked_done ?></td>
+<td><?= $subRecord->billing_marked_done_by_session_id ?></td>
+<td><?= $subRecord->billing_marked_done_by_pro_id ?></td>
+<td><?= friendly_date_time($subRecord->billing_marked_done_at) ?></td>
                     </tr>
                 @endforeach
                 </tbody>

+ 14 - 0
resources/views/pro/clients_SINGLE/SUB_bills.blade.php

@@ -111,6 +111,13 @@
 <th>Claim Closed By Session Id</th>
 <th>Claim Closed By Pro Id</th>
 <th>Detail Json</th>
+<th>Is Signed By Na</th>
+<th>Signed By Na At</th>
+<th>Signed By Na Session Id</th>
+<th>Is Billing Marked Done</th>
+<th>Billing Marked Done By Session Id</th>
+<th>Billing Marked Done By Pro Id</th>
+<th>Billing Marked Done At</th>
                 </tr>
                 </thead>
                 <tbody>
@@ -213,6 +220,13 @@
 <td><?= $subRecord->claim_closed_by_session_id ?></td>
 <td><?= $subRecord->claim_closed_by_pro_id ?></td>
 <td><?= $subRecord->detail_json ?></td>
+<td><?= $subRecord->is_signed_by_na ?></td>
+<td><?= friendly_date_time($subRecord->signed_by_na_at) ?></td>
+<td><?= $subRecord->signed_by_na_session_id ?></td>
+<td><?= $subRecord->is_billing_marked_done ?></td>
+<td><?= $subRecord->billing_marked_done_by_session_id ?></td>
+<td><?= $subRecord->billing_marked_done_by_pro_id ?></td>
+<td><?= friendly_date_time($subRecord->billing_marked_done_at) ?></td>
                     </tr>
                 @endforeach
                 </tbody>

+ 14 - 0
resources/views/pro/notes_SINGLE/SUB_bills.blade.php

@@ -111,6 +111,13 @@
 <th>Claim Closed By Session Id</th>
 <th>Claim Closed By Pro Id</th>
 <th>Detail Json</th>
+<th>Is Signed By Na</th>
+<th>Signed By Na At</th>
+<th>Signed By Na Session Id</th>
+<th>Is Billing Marked Done</th>
+<th>Billing Marked Done By Session Id</th>
+<th>Billing Marked Done By Pro Id</th>
+<th>Billing Marked Done At</th>
                 </tr>
                 </thead>
                 <tbody>
@@ -213,6 +220,13 @@
 <td><?= $subRecord->claim_closed_by_session_id ?></td>
 <td><?= $subRecord->claim_closed_by_pro_id ?></td>
 <td><?= $subRecord->detail_json ?></td>
+<td><?= $subRecord->is_signed_by_na ?></td>
+<td><?= friendly_date_time($subRecord->signed_by_na_at) ?></td>
+<td><?= $subRecord->signed_by_na_session_id ?></td>
+<td><?= $subRecord->is_billing_marked_done ?></td>
+<td><?= $subRecord->billing_marked_done_by_session_id ?></td>
+<td><?= $subRecord->billing_marked_done_by_pro_id ?></td>
+<td><?= friendly_date_time($subRecord->billing_marked_done_at) ?></td>
                     </tr>
                 @endforeach
                 </tbody>

+ 33 - 4
routes/generated.php

@@ -730,6 +730,12 @@ Route::prefix('/products/view/{uid}')->group(function () {
 	Route::get('SUB_versions', 'products_SINGLE_Controller@SUB_versions')->name('products_SINGLE-SUB_versions');
 });
 
+// --- admin: company_pros --- //
+Route::prefix('/company_pros')->group(function () {
+	Route::get('', 'company_pros_Controller@index')->name('company_pros-index');
+	Route::get('view/{uid}', 'company_pros_Controller@view')->name('company_pros-view');
+});
+
 // --- admin: company_pros_SINGLE --- //
 Route::prefix('/company_pros/view/{uid}')->group(function () {
 	Route::get('ACTION_deactivate', 'company_pros_SINGLE_Controller@ACTION_deactivate')->name('company_pros_SINGLE-ACTION_deactivate');
@@ -739,8 +745,31 @@ Route::prefix('/company_pros/view/{uid}')->group(function () {
 	Route::get('SUB_dashboard', 'company_pros_SINGLE_Controller@SUB_dashboard')->name('company_pros_SINGLE-SUB_dashboard');
 });
 
-// --- admin: company_pros --- //
-Route::prefix('/company_pros')->group(function () {
-	Route::get('', 'company_pros_Controller@index')->name('company_pros-index');
-	Route::get('view/{uid}', 'company_pros_Controller@view')->name('company_pros-view');
+// --- admin: pro_teams --- //
+Route::prefix('/pro_teams')->group(function () {
+	Route::get('', 'pro_teams_Controller@index')->name('pro_teams-index');
+	Route::get('add_new', 'pro_teams_Controller@add_new')->name('pro_teams-add_new');
+	Route::get('view/{uid}', 'pro_teams_Controller@view')->name('pro_teams-view');
+});
+
+// --- admin: pro_teams_SINGLE --- //
+Route::prefix('/pro_teams/view/{uid}')->group(function () {
+	Route::get('ACTION_updateBasic', 'pro_teams_SINGLE_Controller@ACTION_updateBasic')->name('pro_teams_SINGLE-ACTION_updateBasic');
+	Route::get('ACTION_deactivate', 'pro_teams_SINGLE_Controller@ACTION_deactivate')->name('pro_teams_SINGLE-ACTION_deactivate');
+	Route::get('ACTION_reactivate', 'pro_teams_SINGLE_Controller@ACTION_reactivate')->name('pro_teams_SINGLE-ACTION_reactivate');
+	Route::get('SUB_dashboard', 'pro_teams_SINGLE_Controller@SUB_dashboard')->name('pro_teams_SINGLE-SUB_dashboard');
+});
+
+// --- admin: pro_text_shortcuts_SINGLE --- //
+Route::prefix('/pro_text_shortcuts/view/{uid}')->group(function () {
+	Route::get('ACTION_update', 'pro_text_shortcuts_SINGLE_Controller@ACTION_update')->name('pro_text_shortcuts_SINGLE-ACTION_update');
+	Route::get('ACTION_remove', 'pro_text_shortcuts_SINGLE_Controller@ACTION_remove')->name('pro_text_shortcuts_SINGLE-ACTION_remove');
+	Route::get('SUB_dashboard', 'pro_text_shortcuts_SINGLE_Controller@SUB_dashboard')->name('pro_text_shortcuts_SINGLE-SUB_dashboard');
+});
+
+// --- admin: pro_text_shortcuts --- //
+Route::prefix('/pro_text_shortcuts')->group(function () {
+	Route::get('', 'pro_text_shortcuts_Controller@index')->name('pro_text_shortcuts-index');
+	Route::get('add_new', 'pro_text_shortcuts_Controller@add_new')->name('pro_text_shortcuts-add_new');
+	Route::get('view/{uid}', 'pro_text_shortcuts_Controller@view')->name('pro_text_shortcuts-view');
 });