annotate src/Generator/View/stubs/index.stub @ 40:2cf26b593f4a ls_dev_2025_09 tip

better support for different column types
author Luka Sitas <sitas.luka.97@gmail.com>
date Thu, 16 Oct 2025 10:54:04 -0400
parents 45f384a24553
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
1 <x-app-layout>
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
2 <x-slot name="header">
31
8dd668020310 started converting too bootstrap, also better support for casts
Luka Sitas <sitas.luka.97@gmail.com>
parents: 26
diff changeset
3 <h2 class="fw-semibold fs-4 text-dark">
25
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
4 All {{ Str::plural(ucfirst('{{ modelVariable }}')) }}
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
5 </h2>
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
6 </x-slot>
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
7
31
8dd668020310 started converting too bootstrap, also better support for casts
Luka Sitas <sitas.luka.97@gmail.com>
parents: 26
diff changeset
8 <div class="py-5">
8dd668020310 started converting too bootstrap, also better support for casts
Luka Sitas <sitas.luka.97@gmail.com>
parents: 26
diff changeset
9 <div class="container">
8dd668020310 started converting too bootstrap, also better support for casts
Luka Sitas <sitas.luka.97@gmail.com>
parents: 26
diff changeset
10 <div class="bg-white shadow-sm rounded p-4">
32
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
11 <div class="d-flex align-items-center justify-content-between mb-3">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
12 <a href="{{ route('{{ tableName }}.create') }}" class="btn btn-primary">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
13 + New {{ ucfirst('{{ modelVariable }}') }}
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
14 </a>
31
8dd668020310 started converting too bootstrap, also better support for casts
Luka Sitas <sitas.luka.97@gmail.com>
parents: 26
diff changeset
15 </div>
32
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
16 <div id="my-table"></div>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
17 </div>
25
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
18 </div>
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
19 </div>
32
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
20
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
21 @include('includes.ServerTable')
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
22 @pushOnce('scripts')
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
23 <meta name="csrf-token" content="{{ csrf_token() }}">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
24 @endpushOnce
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
25 <script>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
26 document.addEventListener('DOMContentLoaded', function() {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
27 const el = document.getElementById('my-table');
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
28 if (el) {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
29 new ServerTable(el, {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
30 endpoint: '/{{ tableName }}/get_data',
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
31 columns: [
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
32 {{ columnInsertPoint }}
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
33 {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
34 name: 'actions',
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
35 label: ' ',
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
36 render: function(row, col, i) {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
37 let actions = `
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
38 <div class="d-flex gap-2">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
39 <a href="{{ route('{{ tableName }}.show', 'PLACEHOLDER') }}" class="text-primary">View</a>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
40 <a href="{{ route('{{ tableName }}.edit', 'PLACEHOLDER') }}" class="text-warning">Edit</a>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
41 <form action="{{ route('{{ tableName }}.destroy', 'PLACEHOLDER') }}" method="POST"
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
42 class="d-inline">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
43 @csrf
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
44 @method('DELETE')
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
45 <button type="submit" class="btn btn-link text-danger p-0"
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
46 onclick="return confirm('Delete?')">Delete</button>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
47 </form>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
48 </div>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
49 `;
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
50 actions = actions.split('PLACEHOLDER').join(row.id);
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
51 return actions;
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
52 }
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
53 }
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
54 ],
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
55 pageSize: 10,
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
56 initialSort: [{
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
57 col: 'created_at',
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
58 dir: 'desc'
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
59 }],
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
60 headers: {
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
61 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute(
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
62 'content')
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
63 },
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
64 skeleton: `
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
65 <div class="st-table-container">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
66 <table class="table table-hover">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
67 <thead>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
68 </thead>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
69 <tbody>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
70 <!-- Data rows will go here -->
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
71 </tbody>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
72 </table>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
73 <div class="st-controls">
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
74 <span class="st-pagination"></span>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
75 <span class="st-status"></span>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
76 </div>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
77 </div>
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
78 `
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
79 });
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
80 }
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
81 });
45f384a24553 Support for server side tables
Luka Sitas <sitas.luka.97@gmail.com>
parents: 31
diff changeset
82 </script>
25
1a717c7b211f added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
diff changeset
83 </x-app-layout>