x
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html><html> <head> <title>Demo</title> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="LJ9I83qHJuxh1Sa99SQeP2ZHU64oC4Qu-PI0sseXj2yJwRC4KYmi4ohjLqAad0-DZBvsX8cJzc-2GJD5V1LQFQ" /> <!-- ATTENTION: The following line is required for Turbo dialog works see: https://github.com/hotwired/turbo/issues/1191#issuecomment-1952959217 --> <meta name="turbo-prefetch" content="false"> <link rel="stylesheet" href="/assets/monaco-editor-d026e4e8.css" /> <link rel="stylesheet" href="/assets/tailwind-e1c99e10.css" data-turbo-track="reload" /> <link rel="stylesheet" href="/assets/elevate-b9e6a9e3.css" /> <link rel="stylesheet" href="/assets/elevate_back_office-df0b8a50.css" data-turbo-track="reload" /> <script type="importmap" data-turbo-track="reload"> { "imports": { "application": "/assets/application-e52719f5.js", "monaco_environment": "/assets/monaco_environment-7d1d7ad9.js", "@hotwired/turbo-rails": "/assets/turbo.min-9fd88cd5.js", "@hotwired/stimulus": "/assets/stimulus.min-4b1e420e.js", "elevate": "/assets/elevate-77c908f2.js", "@rails/request.js": "/assets/@rails--request.js-22cecb25.js", "date-fns": "/assets/date-fns-20af076e.js", "date-fns-tz": "/assets/date-fns-tz-52b54186.js", "flatpickr": "/assets/flatpickr-bc43d5e1.js", "flatpickr/dist/plugins/confirmDate/confirmDate": "/assets/flatpickr--confirmDate-5274819e.js", "intl-tel-input": "/assets/intl-tel-input-8efbd706.js", "nanostores": "/assets/nanostores-84ef9e44.js", "sortablejs": "/assets/sortablejs-764cc38c.js", "tom-select": "/assets/tom-select-d8b91703.js", "@37signals/lexxy": "/assets/@37signals--lexxy-ee545715.js", "monaco-editor": "https://esm.sh/monaco-editor@0.56.0" } } </script> <link rel="modulepreload" href="/assets/application-e52719f5.js"> <link rel="modulepreload" href="/assets/monaco_environment-7d1d7ad9.js"> <link rel="modulepreload" href="/assets/turbo.min-9fd88cd5.js"> <link rel="modulepreload" href="/assets/stimulus.min-4b1e420e.js"> <link rel="modulepreload" href="/assets/elevate-77c908f2.js"> <link rel="modulepreload" href="/assets/@rails--request.js-22cecb25.js"> <link rel="modulepreload" href="/assets/date-fns-20af076e.js"> <link rel="modulepreload" href="/assets/date-fns-tz-52b54186.js"> <link rel="modulepreload" href="/assets/flatpickr-bc43d5e1.js"> <link rel="modulepreload" href="/assets/flatpickr--confirmDate-5274819e.js"> <link rel="modulepreload" href="/assets/intl-tel-input-8efbd706.js"> <link rel="modulepreload" href="/assets/nanostores-84ef9e44.js"> <link rel="modulepreload" href="/assets/sortablejs-764cc38c.js"> <link rel="modulepreload" href="/assets/tom-select-d8b91703.js"> <script type="module"> import "application" </script> </head> <body class="overflow-hidden h-screen"> <div data-controller="elevate-table-busy" class="elevate-table elevate-table--sticky-header"> <div class="contents"> <table class="elevate-table--table"> <thead class="elevate-table--head"> <tr> <th scope="col" class="elevate-table--th elevate-table--th-clip"> <span class="elevate-table--th-inner"> <span class="elevate-table--th-type elevate-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7 0l2-2a5 5 0 0 0-7-7l-1 1M14 11a5 5 0 0 0-7 0l-2 2a5 5 0 0 0 7 7l1-1"></path></svg> </span> Project </span></th> <th scope="col" class="elevate-table--th elevate-table--th-count"> <span class="elevate-table--th-inner"> <span class="elevate-table--th-type elevate-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" focusable="false" aria-hidden="true"><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01"></path></svg> </span> Stories </span></th> </tr> </thead> <tbody class="elevate-table--body"> <tr class="elevate-table--row"> <th scope="row" title="Elevate" class="elevate-table--cell elevate-table--cell-primary elevate-table--cell-clip"> <div class="component-link ticket-project-link"> <a href="#">Elevate</a> </div> </th> <td class="elevate-table--cell elevate-table--cell-count"> <div class="component-count ticket-stories-count"> 11 </div> </td> </tr> <tr class="elevate-table--row"> <th scope="row" title="Sentinel" class="elevate-table--cell elevate-table--cell-primary elevate-table--cell-clip"> <div class="component-link ticket-project-link"> <a href="#">Sentinel</a> </div> </th> <td class="elevate-table--cell elevate-table--cell-count"> <div class="component-count ticket-stories-count"> 4 </div> </td> </tr> <tr class="elevate-table--row"> <th scope="row" title="Forge" class="elevate-table--cell elevate-table--cell-primary elevate-table--cell-clip"> <div class="component-link ticket-project-link"> <a href="#">Forge</a> </div> </th> <td class="elevate-table--cell elevate-table--cell-count"> <div class="component-count ticket-stories-count"> 0 </div> </td> </tr> </tbody> </table> </div> </div> </body></html>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<%= elevate_table(Elevate::BackOfficePreview::TICKETS) do |table| %> <% table.with_column(key: :project, type: :belongs_to) do |col| %> Project <% col.with_row do |ticket| %> <div class="component-link ticket-project-link"> <% if ticket.project %> <a href="#"><%= ticket.project %></a> <% end %> </div> <% end %> <% end %> <% table.with_column(key: :stories, type: :has_many) do |col| %> Stories <% col.with_row do |ticket| %> <div class="component-count ticket-stories-count"> <%= ticket.stories_count %></div> <% end %> <% end %><% end %>A belongs_to column wrapped in component-link, a has_many column wrapped in
component-count — the shape Forge's generated index and relation partials render.
No params configured.
No assets to display.
No assets to display.