github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/views/vdatabase/Detail.html.go (about) 1 // Code generated by qtc from "Detail.html". DO NOT EDIT. 2 // See https://github.com/valyala/quicktemplate for details. 3 4 // <!-- Content managed by Project Forge, see [projectforge.md] for details. --> 5 6 //line views/vdatabase/Detail.html:2 7 package vdatabase 8 9 //line views/vdatabase/Detail.html:2 10 import ( 11 "github.com/kyleu/dbaudit/app" 12 "github.com/kyleu/dbaudit/app/controller/cutil" 13 "github.com/kyleu/dbaudit/app/lib/database" 14 "github.com/kyleu/dbaudit/app/util" 15 "github.com/kyleu/dbaudit/views/components" 16 "github.com/kyleu/dbaudit/views/layout" 17 ) 18 19 //line views/vdatabase/Detail.html:11 20 import ( 21 qtio422016 "io" 22 23 qt422016 "github.com/valyala/quicktemplate" 24 ) 25 26 //line views/vdatabase/Detail.html:11 27 var ( 28 _ = qtio422016.Copy 29 _ = qt422016.AcquireByteBuffer 30 ) 31 32 //line views/vdatabase/Detail.html:11 33 type Detail struct { 34 layout.Basic 35 Mode string 36 Svc *database.Service 37 Recent database.DebugStatements 38 Sizes database.TableSizes 39 SQL string 40 Columns []string 41 Results [][]any 42 Timing int 43 Commit bool 44 } 45 46 //line views/vdatabase/Detail.html:24 47 func (p *Detail) StreamBody(qw422016 *qt422016.Writer, as *app.State, ps *cutil.PageState) { 48 //line views/vdatabase/Detail.html:24 49 qw422016.N().S(` 50 <div class="card"> 51 <h3>`) 52 //line views/vdatabase/Detail.html:26 53 components.StreamSVGRefIcon(qw422016, `database`, ps) 54 //line views/vdatabase/Detail.html:26 55 qw422016.E().S(p.Svc.Key) 56 //line views/vdatabase/Detail.html:26 57 qw422016.N().S(`</h3> 58 <div class="mt"> 59 `) 60 //line views/vdatabase/Detail.html:28 61 if p.Svc.Tracing() == "" { 62 //line views/vdatabase/Detail.html:28 63 qw422016.N().S(` <em>tracing is disabled</em> 64 `) 65 //line views/vdatabase/Detail.html:30 66 } else { 67 //line views/vdatabase/Detail.html:30 68 qw422016.N().S(` <em>tracing is enabled in [`) 69 //line views/vdatabase/Detail.html:31 70 qw422016.E().S(p.Svc.Tracing()) 71 //line views/vdatabase/Detail.html:31 72 qw422016.N().S(`] mode</em> 73 `) 74 //line views/vdatabase/Detail.html:32 75 } 76 //line views/vdatabase/Detail.html:32 77 qw422016.N().S(` </div> 78 <div class="mt"> 79 <a href="#modal-settings"><button>Tracing Settings</button></a> 80 `) 81 //line views/vdatabase/Detail.html:36 82 streamsettingsModal(qw422016, p.Svc) 83 //line views/vdatabase/Detail.html:36 84 qw422016.N().S(` 85 `) 86 //line views/vdatabase/Detail.html:37 87 if p.Svc.Tracing() != "" { 88 //line views/vdatabase/Detail.html:37 89 qw422016.N().S(` <a href="/admin/database/`) 90 //line views/vdatabase/Detail.html:38 91 qw422016.E().S(p.Svc.Key) 92 //line views/vdatabase/Detail.html:38 93 qw422016.N().S(`/recent"><button>Recent Activity</button></a> 94 `) 95 //line views/vdatabase/Detail.html:39 96 } 97 //line views/vdatabase/Detail.html:39 98 qw422016.N().S(` <a href="/admin/database/`) 99 //line views/vdatabase/Detail.html:40 100 qw422016.E().S(p.Svc.Key) 101 //line views/vdatabase/Detail.html:40 102 qw422016.N().S(`/tables"><button>Tables</button></a> 103 <a href="/admin/database/`) 104 //line views/vdatabase/Detail.html:41 105 qw422016.E().S(p.Svc.Key) 106 //line views/vdatabase/Detail.html:41 107 qw422016.N().S(`/analyze"><button>Analyze</button></a> 108 <a href="/admin/database/`) 109 //line views/vdatabase/Detail.html:42 110 qw422016.E().S(p.Svc.Key) 111 //line views/vdatabase/Detail.html:42 112 qw422016.N().S(`/sql"><button>SQL</button></a> 113 </div> 114 </div> 115 `) 116 //line views/vdatabase/Detail.html:45 117 switch p.Mode { 118 //line views/vdatabase/Detail.html:46 119 case "recent": 120 //line views/vdatabase/Detail.html:46 121 qw422016.N().S(` `) 122 //line views/vdatabase/Detail.html:47 123 streamrecentStatements(qw422016, p.Recent, p.Svc, as, ps) 124 //line views/vdatabase/Detail.html:47 125 qw422016.N().S(` 126 `) 127 //line views/vdatabase/Detail.html:48 128 case "tables": 129 //line views/vdatabase/Detail.html:48 130 qw422016.N().S(` `) 131 //line views/vdatabase/Detail.html:49 132 streamtableSizes(qw422016, p.Svc.Key, p.Sizes, as, ps) 133 //line views/vdatabase/Detail.html:49 134 qw422016.N().S(` 135 `) 136 //line views/vdatabase/Detail.html:50 137 case "sql": 138 //line views/vdatabase/Detail.html:50 139 qw422016.N().S(` `) 140 //line views/vdatabase/Detail.html:51 141 streamsqlEditor(qw422016, p.SQL, p.Svc, p.Commit, p.Columns, p.Results, p.Timing, as, ps) 142 //line views/vdatabase/Detail.html:51 143 qw422016.N().S(` 144 `) 145 //line views/vdatabase/Detail.html:52 146 } 147 //line views/vdatabase/Detail.html:53 148 } 149 150 //line views/vdatabase/Detail.html:53 151 func (p *Detail) WriteBody(qq422016 qtio422016.Writer, as *app.State, ps *cutil.PageState) { 152 //line views/vdatabase/Detail.html:53 153 qw422016 := qt422016.AcquireWriter(qq422016) 154 //line views/vdatabase/Detail.html:53 155 p.StreamBody(qw422016, as, ps) 156 //line views/vdatabase/Detail.html:53 157 qt422016.ReleaseWriter(qw422016) 158 //line views/vdatabase/Detail.html:53 159 } 160 161 //line views/vdatabase/Detail.html:53 162 func (p *Detail) Body(as *app.State, ps *cutil.PageState) string { 163 //line views/vdatabase/Detail.html:53 164 qb422016 := qt422016.AcquireByteBuffer() 165 //line views/vdatabase/Detail.html:53 166 p.WriteBody(qb422016, as, ps) 167 //line views/vdatabase/Detail.html:53 168 qs422016 := string(qb422016.B) 169 //line views/vdatabase/Detail.html:53 170 qt422016.ReleaseByteBuffer(qb422016) 171 //line views/vdatabase/Detail.html:53 172 return qs422016 173 //line views/vdatabase/Detail.html:53 174 } 175 176 //line views/vdatabase/Detail.html:55 177 func streamrecentStatements(qw422016 *qt422016.Writer, recent database.DebugStatements, svc *database.Service, as *app.State, ps *cutil.PageState) { 178 //line views/vdatabase/Detail.html:55 179 qw422016.N().S(` 180 <div class="card"> 181 <h3>Recent Activity</h3> 182 `) 183 //line views/vdatabase/Detail.html:58 184 if len(recent) == 0 { 185 //line views/vdatabase/Detail.html:59 186 if svc.Tracing() == "" { 187 //line views/vdatabase/Detail.html:59 188 qw422016.N().S(` <em>Tracing is not enabled for this database</em> 189 `) 190 //line views/vdatabase/Detail.html:61 191 } else { 192 //line views/vdatabase/Detail.html:61 193 qw422016.N().S(` <em>No recent statements</em> 194 `) 195 //line views/vdatabase/Detail.html:63 196 } 197 //line views/vdatabase/Detail.html:64 198 } else { 199 //line views/vdatabase/Detail.html:64 200 qw422016.N().S(` <div class="overflow full-width"> 201 <table> 202 <thead> 203 <tr> 204 <th>SQL</th> 205 <th>Values</th> 206 <th>Count</th> 207 <th>Status</th> 208 <th>Message</th> 209 <th>Duration</th> 210 </tr> 211 </thead> 212 <tbody> 213 `) 214 //line views/vdatabase/Detail.html:78 215 for _, s := range recent { 216 //line views/vdatabase/Detail.html:78 217 qw422016.N().S(` <tr> 218 <td> 219 <a href="?idx=`) 220 //line views/vdatabase/Detail.html:81 221 qw422016.N().D(s.Index) 222 //line views/vdatabase/Detail.html:81 223 qw422016.N().S(`">`) 224 //line views/vdatabase/Detail.html:81 225 qw422016.E().S(s.SQLTrimmed(100)) 226 //line views/vdatabase/Detail.html:81 227 qw422016.N().S(`</a> 228 </td> 229 <td>`) 230 //line views/vdatabase/Detail.html:83 231 qw422016.N().D(len(s.Values)) 232 //line views/vdatabase/Detail.html:83 233 qw422016.N().S(`</td> 234 <td>`) 235 //line views/vdatabase/Detail.html:84 236 qw422016.N().D(s.Count) 237 //line views/vdatabase/Detail.html:84 238 qw422016.N().S(`</td> 239 <td> 240 `) 241 //line views/vdatabase/Detail.html:86 242 if s.Error == "" { 243 //line views/vdatabase/Detail.html:86 244 qw422016.N().S(` OK 245 `) 246 //line views/vdatabase/Detail.html:88 247 } else { 248 //line views/vdatabase/Detail.html:88 249 qw422016.N().S(` <span class="error">[error]: `) 250 //line views/vdatabase/Detail.html:89 251 qw422016.E().S(s.ErrorTrimmed(100)) 252 //line views/vdatabase/Detail.html:89 253 qw422016.N().S(`</span> 254 `) 255 //line views/vdatabase/Detail.html:90 256 } 257 //line views/vdatabase/Detail.html:90 258 qw422016.N().S(` </td> 259 <td>`) 260 //line views/vdatabase/Detail.html:92 261 qw422016.E().S(s.Message) 262 //line views/vdatabase/Detail.html:92 263 qw422016.N().S(`</td> 264 <td>`) 265 //line views/vdatabase/Detail.html:93 266 qw422016.E().S(util.MicrosToMillis(s.Timing)) 267 //line views/vdatabase/Detail.html:93 268 qw422016.N().S(`</td> 269 </tr> 270 `) 271 //line views/vdatabase/Detail.html:95 272 } 273 //line views/vdatabase/Detail.html:95 274 qw422016.N().S(` </tbody> 275 </table> 276 </div> 277 `) 278 //line views/vdatabase/Detail.html:99 279 } 280 //line views/vdatabase/Detail.html:99 281 qw422016.N().S(` </div> 282 `) 283 //line views/vdatabase/Detail.html:101 284 } 285 286 //line views/vdatabase/Detail.html:101 287 func writerecentStatements(qq422016 qtio422016.Writer, recent database.DebugStatements, svc *database.Service, as *app.State, ps *cutil.PageState) { 288 //line views/vdatabase/Detail.html:101 289 qw422016 := qt422016.AcquireWriter(qq422016) 290 //line views/vdatabase/Detail.html:101 291 streamrecentStatements(qw422016, recent, svc, as, ps) 292 //line views/vdatabase/Detail.html:101 293 qt422016.ReleaseWriter(qw422016) 294 //line views/vdatabase/Detail.html:101 295 } 296 297 //line views/vdatabase/Detail.html:101 298 func recentStatements(recent database.DebugStatements, svc *database.Service, as *app.State, ps *cutil.PageState) string { 299 //line views/vdatabase/Detail.html:101 300 qb422016 := qt422016.AcquireByteBuffer() 301 //line views/vdatabase/Detail.html:101 302 writerecentStatements(qb422016, recent, svc, as, ps) 303 //line views/vdatabase/Detail.html:101 304 qs422016 := string(qb422016.B) 305 //line views/vdatabase/Detail.html:101 306 qt422016.ReleaseByteBuffer(qb422016) 307 //line views/vdatabase/Detail.html:101 308 return qs422016 309 //line views/vdatabase/Detail.html:101 310 } 311 312 //line views/vdatabase/Detail.html:103 313 func streamtableSizes(qw422016 *qt422016.Writer, key string, sizes database.TableSizes, as *app.State, ps *cutil.PageState) { 314 //line views/vdatabase/Detail.html:103 315 qw422016.N().S(` 316 <div class="card"> 317 <h3>Table Sizes</h3> 318 <div class="overflow full-width"> 319 <table> 320 <thead> 321 <tr> 322 <th>Name</th> 323 <th title="(estimated)">Rows*</th> 324 </tr> 325 </thead> 326 <tbody> 327 `) 328 //line views/vdatabase/Detail.html:115 329 for _, size := range sizes { 330 //line views/vdatabase/Detail.html:115 331 qw422016.N().S(` <tr> 332 <td><a href="/admin/database/`) 333 //line views/vdatabase/Detail.html:117 334 qw422016.E().S(key) 335 //line views/vdatabase/Detail.html:117 336 qw422016.N().S(`/tables/`) 337 //line views/vdatabase/Detail.html:117 338 qw422016.E().S(size.Schema) 339 //line views/vdatabase/Detail.html:117 340 qw422016.N().S(`/`) 341 //line views/vdatabase/Detail.html:117 342 qw422016.E().S(size.Name) 343 //line views/vdatabase/Detail.html:117 344 qw422016.N().S(`">`) 345 //line views/vdatabase/Detail.html:117 346 qw422016.E().S(size.Name) 347 //line views/vdatabase/Detail.html:117 348 qw422016.N().S(`</a></td> 349 <td>`) 350 //line views/vdatabase/Detail.html:118 351 qw422016.E().S(size.Rows) 352 //line views/vdatabase/Detail.html:118 353 qw422016.N().S(`</td> 354 </tr> 355 `) 356 //line views/vdatabase/Detail.html:120 357 } 358 //line views/vdatabase/Detail.html:120 359 qw422016.N().S(` </tbody> 360 </table> 361 </div> 362 </div> 363 `) 364 //line views/vdatabase/Detail.html:125 365 } 366 367 //line views/vdatabase/Detail.html:125 368 func writetableSizes(qq422016 qtio422016.Writer, key string, sizes database.TableSizes, as *app.State, ps *cutil.PageState) { 369 //line views/vdatabase/Detail.html:125 370 qw422016 := qt422016.AcquireWriter(qq422016) 371 //line views/vdatabase/Detail.html:125 372 streamtableSizes(qw422016, key, sizes, as, ps) 373 //line views/vdatabase/Detail.html:125 374 qt422016.ReleaseWriter(qw422016) 375 //line views/vdatabase/Detail.html:125 376 } 377 378 //line views/vdatabase/Detail.html:125 379 func tableSizes(key string, sizes database.TableSizes, as *app.State, ps *cutil.PageState) string { 380 //line views/vdatabase/Detail.html:125 381 qb422016 := qt422016.AcquireByteBuffer() 382 //line views/vdatabase/Detail.html:125 383 writetableSizes(qb422016, key, sizes, as, ps) 384 //line views/vdatabase/Detail.html:125 385 qs422016 := string(qb422016.B) 386 //line views/vdatabase/Detail.html:125 387 qt422016.ReleaseByteBuffer(qb422016) 388 //line views/vdatabase/Detail.html:125 389 return qs422016 390 //line views/vdatabase/Detail.html:125 391 } 392 393 //line views/vdatabase/Detail.html:127 394 func streamsqlEditor(qw422016 *qt422016.Writer, sql string, svc *database.Service, commit bool, columns []string, results [][]any, timing int, as *app.State, ps *cutil.PageState) { 395 //line views/vdatabase/Detail.html:127 396 qw422016.N().S(` 397 <div class="card"> 398 <h3>SQL Editor</h3> 399 <form method="post" action="/admin/database/`) 400 //line views/vdatabase/Detail.html:130 401 qw422016.E().S(svc.Key) 402 //line views/vdatabase/Detail.html:130 403 qw422016.N().S(`/sql"> 404 <div class="mt expanded"> 405 <textarea name="sql" rows="12" placeholder="SQL statement">`) 406 //line views/vdatabase/Detail.html:132 407 qw422016.E().S(sql) 408 //line views/vdatabase/Detail.html:132 409 qw422016.N().S(`</textarea> 410 </div> 411 `) 412 //line views/vdatabase/Detail.html:134 413 if svc.ReadOnly { 414 //line views/vdatabase/Detail.html:134 415 qw422016.N().S(` <input type="hidden" name="commit" value="false" /> 416 `) 417 //line views/vdatabase/Detail.html:136 418 } else { 419 //line views/vdatabase/Detail.html:136 420 qw422016.N().S(` <div class="mt"> 421 <label><input type="checkbox" name="commit" value="true" `) 422 //line views/vdatabase/Detail.html:138 423 if commit { 424 //line views/vdatabase/Detail.html:138 425 qw422016.N().S(`checked="checked"`) 426 //line views/vdatabase/Detail.html:138 427 } 428 //line views/vdatabase/Detail.html:138 429 qw422016.N().S(`/> Commit Changes</label> 430 </div> 431 `) 432 //line views/vdatabase/Detail.html:140 433 } 434 //line views/vdatabase/Detail.html:140 435 qw422016.N().S(` <div class="mt"> 436 <button type="submit" name="action" value="run">Run</button> 437 <button type="submit" name="action" value="analyze">Analyze</button> 438 </div> 439 </form> 440 </div> 441 `) 442 //line views/vdatabase/Detail.html:147 443 if results != nil { 444 //line views/vdatabase/Detail.html:147 445 qw422016.N().S(` <div class="card"> 446 <div class="right">`) 447 //line views/vdatabase/Detail.html:149 448 qw422016.E().S(util.MicrosToMillis(timing)) 449 //line views/vdatabase/Detail.html:149 450 qw422016.N().S(`</div> 451 <h3>Results</h3> 452 `) 453 //line views/vdatabase/Detail.html:151 454 if len(results) == 0 { 455 //line views/vdatabase/Detail.html:151 456 qw422016.N().S(` <em>No rows returned</em> 457 `) 458 //line views/vdatabase/Detail.html:153 459 } else { 460 //line views/vdatabase/Detail.html:153 461 qw422016.N().S(` <div class="overflow full-width"> 462 <table class="mt expanded"> 463 <thead> 464 <tr> 465 `) 466 //line views/vdatabase/Detail.html:158 467 for _, c := range columns { 468 //line views/vdatabase/Detail.html:158 469 qw422016.N().S(` <th>`) 470 //line views/vdatabase/Detail.html:159 471 qw422016.E().S(c) 472 //line views/vdatabase/Detail.html:159 473 qw422016.N().S(`</th> 474 `) 475 //line views/vdatabase/Detail.html:160 476 } 477 //line views/vdatabase/Detail.html:160 478 qw422016.N().S(` </tr> 479 </thead> 480 <tbody> 481 `) 482 //line views/vdatabase/Detail.html:164 483 for _, row := range results { 484 //line views/vdatabase/Detail.html:164 485 qw422016.N().S(` <tr> 486 `) 487 //line views/vdatabase/Detail.html:166 488 for _, x := range row { 489 //line views/vdatabase/Detail.html:166 490 qw422016.N().S(` <td>`) 491 //line views/vdatabase/Detail.html:167 492 qw422016.E().V(x) 493 //line views/vdatabase/Detail.html:167 494 qw422016.N().S(`</td> 495 `) 496 //line views/vdatabase/Detail.html:168 497 } 498 //line views/vdatabase/Detail.html:168 499 qw422016.N().S(` </tr> 500 `) 501 //line views/vdatabase/Detail.html:170 502 } 503 //line views/vdatabase/Detail.html:170 504 qw422016.N().S(` </tbody> 505 </table> 506 </div> 507 `) 508 //line views/vdatabase/Detail.html:174 509 } 510 //line views/vdatabase/Detail.html:174 511 qw422016.N().S(` </div> 512 `) 513 //line views/vdatabase/Detail.html:176 514 } 515 //line views/vdatabase/Detail.html:177 516 } 517 518 //line views/vdatabase/Detail.html:177 519 func writesqlEditor(qq422016 qtio422016.Writer, sql string, svc *database.Service, commit bool, columns []string, results [][]any, timing int, as *app.State, ps *cutil.PageState) { 520 //line views/vdatabase/Detail.html:177 521 qw422016 := qt422016.AcquireWriter(qq422016) 522 //line views/vdatabase/Detail.html:177 523 streamsqlEditor(qw422016, sql, svc, commit, columns, results, timing, as, ps) 524 //line views/vdatabase/Detail.html:177 525 qt422016.ReleaseWriter(qw422016) 526 //line views/vdatabase/Detail.html:177 527 } 528 529 //line views/vdatabase/Detail.html:177 530 func sqlEditor(sql string, svc *database.Service, commit bool, columns []string, results [][]any, timing int, as *app.State, ps *cutil.PageState) string { 531 //line views/vdatabase/Detail.html:177 532 qb422016 := qt422016.AcquireByteBuffer() 533 //line views/vdatabase/Detail.html:177 534 writesqlEditor(qb422016, sql, svc, commit, columns, results, timing, as, ps) 535 //line views/vdatabase/Detail.html:177 536 qs422016 := string(qb422016.B) 537 //line views/vdatabase/Detail.html:177 538 qt422016.ReleaseByteBuffer(qb422016) 539 //line views/vdatabase/Detail.html:177 540 return qs422016 541 //line views/vdatabase/Detail.html:177 542 } 543 544 //line views/vdatabase/Detail.html:179 545 func streamsettingsModal(qw422016 *qt422016.Writer, svc *database.Service) { 546 //line views/vdatabase/Detail.html:179 547 qw422016.N().S(` 548 <div id="modal-settings" class="modal" style="display: none;"> 549 <a class="backdrop" href="#"></a> 550 <div class="modal-content"> 551 <div class="modal-header"> 552 <a href="#" class="modal-close">×</a> 553 <h2>Tracing Settings</h2> 554 </div> 555 <div class="modal-body"> 556 <form action="/admin/database/`) 557 //line views/vdatabase/Detail.html:188 558 qw422016.E().S(svc.Key) 559 //line views/vdatabase/Detail.html:188 560 qw422016.N().S(`/enable"> 561 <div class="overflow full-width"> 562 <table> 563 <tbody> 564 `) 565 //line views/vdatabase/Detail.html:192 566 trc := svc.Tracing() 567 568 //line views/vdatabase/Detail.html:192 569 qw422016.N().S(` 570 <tr> 571 <td><label><input type="radio" name="tracing" value=""`) 572 //line views/vdatabase/Detail.html:194 573 if trc == `` { 574 //line views/vdatabase/Detail.html:194 575 qw422016.N().S(` checked="checked"`) 576 //line views/vdatabase/Detail.html:194 577 } 578 //line views/vdatabase/Detail.html:194 579 qw422016.N().S(`> No Tracing</label></td> 580 <td><em>Fastest configuration, no tracing overhead</em></td> 581 </tr> 582 <tr> 583 <td><label><input type="radio" name="tracing" value="statement"`) 584 //line views/vdatabase/Detail.html:198 585 if trc == `statement` { 586 //line views/vdatabase/Detail.html:198 587 qw422016.N().S(` checked="checked"`) 588 //line views/vdatabase/Detail.html:198 589 } 590 //line views/vdatabase/Detail.html:198 591 qw422016.N().S(`> Save Queries</label></td> 592 <td><em>Save most recent 100 SQL statements with timing information</em></td> 593 </tr> 594 <tr> 595 <td><label><input type="radio" name="tracing" value="values"`) 596 //line views/vdatabase/Detail.html:202 597 if trc == `values` { 598 //line views/vdatabase/Detail.html:202 599 qw422016.N().S(` checked="checked"`) 600 //line views/vdatabase/Detail.html:202 601 } 602 //line views/vdatabase/Detail.html:202 603 qw422016.N().S(`> Save Results</label></td> 604 <td><em>Saves SQL, timing, and the results of the query</em></td> 605 </tr> 606 <tr> 607 <td><label><input type="radio" name="tracing" value="analyze"`) 608 //line views/vdatabase/Detail.html:206 609 if trc == `analyze` { 610 //line views/vdatabase/Detail.html:206 611 qw422016.N().S(` checked="checked"`) 612 //line views/vdatabase/Detail.html:206 613 } 614 //line views/vdatabase/Detail.html:206 615 qw422016.N().S(`> Analyze Queries</label></td> 616 <td><em>In addition to the above, runs an explain plan on each query</em></td> 617 </tr> 618 <tr> 619 <td colspan="2"><button>Submit</button></td> 620 </tr> 621 </tbody> 622 </table> 623 </div> 624 </form> 625 </div> 626 </div> 627 </div> 628 `) 629 //line views/vdatabase/Detail.html:219 630 } 631 632 //line views/vdatabase/Detail.html:219 633 func writesettingsModal(qq422016 qtio422016.Writer, svc *database.Service) { 634 //line views/vdatabase/Detail.html:219 635 qw422016 := qt422016.AcquireWriter(qq422016) 636 //line views/vdatabase/Detail.html:219 637 streamsettingsModal(qw422016, svc) 638 //line views/vdatabase/Detail.html:219 639 qt422016.ReleaseWriter(qw422016) 640 //line views/vdatabase/Detail.html:219 641 } 642 643 //line views/vdatabase/Detail.html:219 644 func settingsModal(svc *database.Service) string { 645 //line views/vdatabase/Detail.html:219 646 qb422016 := qt422016.AcquireByteBuffer() 647 //line views/vdatabase/Detail.html:219 648 writesettingsModal(qb422016, svc) 649 //line views/vdatabase/Detail.html:219 650 qs422016 := string(qb422016.B) 651 //line views/vdatabase/Detail.html:219 652 qt422016.ReleaseByteBuffer(qb422016) 653 //line views/vdatabase/Detail.html:219 654 return qs422016 655 //line views/vdatabase/Detail.html:219 656 }