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  }