1<form method="post" action="{{ url('/import') }}" class="ajax lock-page" id="sqlqueryform" name="sqlform"
2  {{- is_upload ? ' enctype="multipart/form-data"' }}>
3  {{ get_hidden_inputs(db, table) }}
4  <input type="hidden" name="is_js_confirmed" value="0">
5  <input type="hidden" name="pos" value="0">
6  <input type="hidden" name="goto" value="{{ goto }}">
7  <input type="hidden" name="message_to_show" value="{% trans 'Your SQL query has been executed successfully.' %}">
8  <input type="hidden" name="prev_sql_query" value="{{ query }}">
9
10  {% if display_tab == 'full' or display_tab == 'sql' %}
11    <a id="querybox"></a>
12
13    <div class="card mb-3">
14      <div class="card-header">{{ legend|raw }}</div>
15      <div class="card-body">
16        <div id="queryfieldscontainer">
17          <div class="row">
18            <div class="col">
19              <div class="form-group">
20                <textarea class="form-control" tabindex="100" name="sql_query" id="sqlquery" cols="{{ textarea_cols }}" rows="{{ textarea_rows }}"
21                  {{- textarea_auto_select ? ' onclick="Functions.selectContent(this, sqlBoxLocked, true);"' }} aria-label="{% trans 'SQL query' %}">
22                  {{- query -}}
23                </textarea>
24              </div>
25              <div id="querymessage"></div>
26
27              <div class="btn-toolbar" role="toolbar">
28                {% if columns_list is not empty %}
29                  <div class="btn-group mr-2" role="group">
30                    <input type="button" value="SELECT *" id="selectall" class="btn btn-secondary button sqlbutton">
31                    <input type="button" value="SELECT" id="select" class="btn btn-secondary button sqlbutton">
32                    <input type="button" value="INSERT" id="insert" class="btn btn-secondary button sqlbutton">
33                    <input type="button" value="UPDATE" id="update" class="btn btn-secondary button sqlbutton">
34                    <input type="button" value="DELETE" id="delete" class="btn btn-secondary button sqlbutton">
35                  </div>
36                {% endif %}
37
38                <div class="btn-group mr-2" role="group">
39                  <input type="button" value="{% trans 'Clear' %}" id="clear" class="btn btn-secondary button sqlbutton">
40                  {% if codemirror_enable %}
41                    <input type="button" value="{% trans 'Format' %}" id="format" class="btn btn-secondary button sqlbutton">
42                  {% endif %}
43                </div>
44
45                <input type="button" value="{% trans 'Get auto-saved query' %}" id="saved" class="btn btn-secondary button sqlbutton">
46              </div>
47
48              <div class="form-group mt-3">
49                <div class="form-check">
50                  <input class="form-check-input" type="checkbox" name="parameterized" id="parameterized">
51                  <label class="form-check-label" for="parameterized">
52                    {% trans %}Bind parameters{% notes %}Bind parameters in the SQL query using :parameterName format{% endtrans %}
53                    {{ show_docu('faq', 'faq6-40') }}
54                  </label>
55                </div>
56              </div>
57              <div class="form-group" id="parametersDiv"></div>
58            </div>
59
60            {% if columns_list is not empty %}
61              <div class="col-xl-2 col-lg-3">
62                <div class="form-group">
63                  <label class="sr-only" for="fieldsSelect">{% trans 'Columns' %}</label>
64                  <select class="form-control resize-vertical" id="fieldsSelect" name="dummy" size="{{ textarea_rows }}" ondblclick="Functions.insertValueQuery()" multiple>
65                    {% for field in columns_list %}
66                      <option value="{{ backquote(field['Field']) }}"
67                        {{- field['Field'] is not null and field['Comment'] is not null and field['Field']|length > 0 ? ' title="' ~ field['Comment'] ~ '"' }}>
68                        {{ field['Field'] }}
69                      </option>
70                    {% endfor %}
71                  </select>
72                </div>
73
74                <input type="button" class="btn btn-secondary button" id="insertBtn" name="insert" value="
75                    {%- if show_icons('ActionLinksMode') %}{{ '<<' }}" title="{% endif -%}
76                    {%- trans 'Insert' %}">
77              </div>
78            {% endif %}
79          </div>
80        </div>
81
82        {% if has_bookmark %}
83          <div class="form-inline">
84            <div class="form-group">
85              <label for="bkm_label">{% trans 'Bookmark this SQL query:' %}</label>
86              <input class="form-control" type="text" name="bkm_label" id="bkm_label" tabindex="110" value="">
87            </div>
88
89            <div class="form-check form-check-inline">
90              <input class="form-check-input" type="checkbox" name="bkm_all_users" tabindex="111" id="id_bkm_all_users" value="true">
91              <label class="form-check-label" for="id_bkm_all_users">{% trans 'Let every user access this bookmark' %}</label>
92            </div>
93
94            <div class="form-check form-check-inline">
95              <input class="form-check-input" type="checkbox" name="bkm_replace" tabindex="112" id="id_bkm_replace" value="true">
96              <label class="form-check-label" for="id_bkm_replace">{% trans 'Replace existing bookmark of same name' %}</label>
97            </div>
98          </div>
99        {% endif %}
100      </div>
101      <div class="card-footer">
102        <div class="row">
103          <div class="form-inline col">
104            <div class="input-group mr-2">
105              <div class="input-group-prepend">
106                <span class="input-group-text">{% trans 'Delimiter' %}</span>
107              </div>
108              <label class="sr-only" for="id_sql_delimiter">{% trans 'Delimiter' %}</label>
109              <input class="form-control" type="text" name="sql_delimiter" tabindex="131" size="3" value="{{ delimiter }}" id="id_sql_delimiter">
110            </div>
111
112            <div class="form-check form-check-inline">
113              <input class="form-check-input" type="checkbox" name="show_query" value="1" id="checkbox_show_query" tabindex="132">
114              <label class="form-check-label" for="checkbox_show_query">{% trans 'Show this query here again' %}</label>
115            </div>
116
117            <div class="form-check form-check-inline">
118              <input class="form-check-input" type="checkbox" name="retain_query_box" value="1" id="retain_query_box" tabindex="133"
119                {{- retain_query_box ? ' checked' }}>
120              <label class="form-check-label" for="retain_query_box">{% trans 'Retain query box' %}</label>
121            </div>
122
123            <div class="form-check form-check-inline">
124              <input class="form-check-input" type="checkbox" name="rollback_query" value="1" id="rollback_query" tabindex="134">
125              <label class="form-check-label" for="rollback_query">{% trans 'Rollback when finished' %}</label>
126            </div>
127
128            <div class="form-check">
129              <input type="hidden" name="fk_checks" value="0">
130              <input class="form-check-input" type="checkbox" name="fk_checks" id="fk_checks" value="1"{{ is_foreign_key_check ? ' checked' }}>
131              <label class="form-check-label" for="fk_checks">{% trans 'Enable foreign key checks' %}</label>
132            </div>
133          </div>
134
135          <div class="form-inline col-auto">
136            <input class="btn btn-primary ml-1" type="submit" id="button_submit_query" name="SQL" tabindex="200" value="{% trans 'Go' %}">
137          </div>
138        </div>
139      </div>
140    </div>
141  {% endif %}
142
143  {% if display_tab == 'full' and bookmarks is not empty %}
144    <div class="card mb-3">
145      <div class="card-header">{% trans 'Bookmarked SQL query' %}</div>
146      <div class="card-body">
147        <div class="form-inline">
148          <div class="form-group">
149            <label for="id_bookmark">{% trans 'Bookmark:' %}</label>
150            <select class="form-control" name="id_bookmark" id="id_bookmark">
151              <option value="">&nbsp;</option>
152              {% for bookmark in bookmarks %}
153                <option value="{{ bookmark.id }}" data-varcount="{{ bookmark.variable_count }}">
154                  {{ bookmark.label }}
155                  {% if bookmark.is_shared %}
156                    ({% trans 'shared' %})
157                  {% endif %}
158                </option>
159              {% endfor %}
160            </select>
161          </div>
162
163          <div class="form-check form-check-inline">
164            <input class="form-check-input" type="radio" name="action_bookmark" value="0" id="radio_bookmark_exe" checked>
165            <label class="form-check-label" for="radio_bookmark_exe">{% trans 'Submit' %}</label>
166          </div>
167          <div class="form-check form-check-inline">
168            <input class="form-check-input" type="radio" name="action_bookmark" value="1" id="radio_bookmark_view">
169            <label class="form-check-label" for="radio_bookmark_view">{% trans 'View only' %}</label>
170          </div>
171          <div class="form-check form-check-inline">
172            <input class="form-check-input" type="radio" name="action_bookmark" value="2" id="radio_bookmark_del">
173            <label class="form-check-label" for="radio_bookmark_del">{% trans 'Delete' %}</label>
174          </div>
175        </div>
176
177        <div class="hide">
178          {% trans 'Variables' %}
179          {{ show_docu('faq', 'faqbookmark') }}
180          <div class="form-inline" id="bookmarkVariables"></div>
181        </div>
182      </div>
183
184      <div class="card-footer text-right">
185        <input class="btn btn-secondary" type="submit" name="SQL" id="button_submit_bookmark" value="{% trans 'Go' %}">
186      </div>
187    </div>
188  {% endif %}
189
190  {% if can_convert_kanji %}
191    <div class="card mb-3">
192      <div class="card-body">
193        {% include 'encoding/kanji_encoding_form.twig' %}
194      </div>
195    </div>
196  {% endif %}
197</form>
198
199<div id="sqlqueryresultsouter"></div>
200