main.twig 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104
  1. {# Invisible characters will make javascript crash #}
  2. {% apply spaceless %}
  3. <script type="text/javascript">
  4. var designerConfig = {{ designer_config|raw }};
  5. </script>
  6. {% endapply %}
  7. {# side menu #}
  8. {% if not has_query %}
  9. <div id="name-panel">
  10. <span id="page_name">
  11. {{ selected_page == null ? 'Untitled'|trans : selected_page }}
  12. </span>
  13. <span id="saved_state">
  14. {{ selected_page == null ? '*' : '' }}
  15. </span>
  16. </div>
  17. {% endif %}
  18. <div class="designer_header side-menu" id="side_menu">
  19. <a class="M_butt" id="key_Show_left_menu" href="#">
  20. <img title="{% trans 'Show/Hide tables list' %}"
  21. alt="v"
  22. src="{{ theme.getImgPath('designer/downarrow2_m.png') }}"
  23. data-down="{{ theme.getImgPath('designer/downarrow2_m.png') }}"
  24. data-up="{{ theme.getImgPath('designer/uparrow2_m.png') }}">
  25. <span class="hide hidable">
  26. {% trans 'Show/Hide tables list' %}
  27. </span>
  28. </a>
  29. <a href="#" id="toggleFullscreen" class="M_butt">
  30. <img title="{% trans 'View in fullscreen' %}"
  31. src="{{ theme.getImgPath('designer/viewInFullscreen.png') }}"
  32. data-enter="{{ theme.getImgPath('designer/viewInFullscreen.png') }}"
  33. data-exit="{{ theme.getImgPath('designer/exitFullscreen.png') }}">
  34. <span class="hide hidable"
  35. data-exit="{% trans 'Exit fullscreen' %}"
  36. data-enter="{% trans 'View in fullscreen' %}">
  37. {% trans 'View in fullscreen' %}
  38. </span>
  39. </a>
  40. <a href="#" id="addOtherDbTables" class="M_butt">
  41. <img title="{% trans 'Add tables from other databases' %}"
  42. src="{{ theme.getImgPath('designer/other_table.png') }}">
  43. <span class="hide hidable">
  44. {% trans 'Add tables from other databases' %}
  45. </span>
  46. </a>
  47. {% if not has_query %}
  48. <a id="newPage" href="#" class="M_butt">
  49. <img title="{% trans 'New page' %}"
  50. alt=""
  51. src="{{ theme.getImgPath('designer/page_add.png') }}">
  52. <span class="hide hidable">
  53. {% trans 'New page' %}
  54. </span>
  55. </a>
  56. <a href="#" id="editPage" class="M_butt ajax">
  57. <img title="{% trans 'Open page' %}"
  58. src="{{ theme.getImgPath('designer/page_edit.png') }}">
  59. <span class="hide hidable">
  60. {% trans 'Open page' %}
  61. </span>
  62. </a>
  63. <a href="#" id="savePos" class="M_butt">
  64. <img title="{% trans 'Save page' %}"
  65. src="{{ theme.getImgPath('designer/save.png') }}">
  66. <span class="hide hidable">
  67. {% trans 'Save page' %}
  68. </span>
  69. </a>
  70. <a href="#" id="SaveAs" class="M_butt ajax">
  71. <img title="{% trans 'Save page as' %}"
  72. src="{{ theme.getImgPath('designer/save_as.png') }}">
  73. <span class="hide hidable">
  74. {% trans 'Save page as' %}
  75. </span>
  76. </a>
  77. <a href="#" id="delPages" class="M_butt ajax">
  78. <img title="{% trans 'Delete pages' %}"
  79. src="{{ theme.getImgPath('designer/page_delete.png') }}">
  80. <span class="hide hidable">
  81. {% trans 'Delete pages' %}
  82. </span>
  83. </a>
  84. <a href="#" id="StartTableNew" class="M_butt">
  85. <img title="{% trans 'Create table' %}"
  86. src="{{ theme.getImgPath('designer/table.png') }}">
  87. <span class="hide hidable">
  88. {% trans 'Create table' %}
  89. </span>
  90. </a>
  91. <a href="#" class="M_butt" id="rel_button">
  92. <img title="{% trans 'Create relationship' %}"
  93. src="{{ theme.getImgPath('designer/relation.png') }}">
  94. <span class="hide hidable">
  95. {% trans 'Create relationship' %}
  96. </span>
  97. </a>
  98. <a href="#" class="M_butt" id="display_field_button">
  99. <img title="{% trans 'Choose column to display' %}"
  100. src="{{ theme.getImgPath('designer/display_field.png') }}">
  101. <span class="hide hidable">
  102. {% trans 'Choose column to display' %}
  103. </span>
  104. </a>
  105. <a href="#" id="reloadPage" class="M_butt">
  106. <img title="{% trans 'Reload' %}"
  107. src="{{ theme.getImgPath('designer/reload.png') }}">
  108. <span class="hide hidable">
  109. {% trans 'Reload' %}
  110. </span>
  111. </a>
  112. <a href="{{ get_docu_link('faq', 'faq6-31') }}"
  113. target="documentation"
  114. class="M_butt">
  115. <img title="{% trans 'Help' %}"
  116. src="{{ theme.getImgPath('designer/help.png') }}">
  117. <span class="hide hidable">
  118. {% trans 'Help' %}
  119. </span>
  120. </a>
  121. {% endif %}
  122. <a href="#" class="{{ params_array['angular_direct'] }}" id="angular_direct_button">
  123. <img title="{% trans 'Angular links' %} / {% trans 'Direct links' %}"
  124. src="{{ theme.getImgPath('designer/ang_direct.png') }}">
  125. <span class="hide hidable">
  126. {% trans 'Angular links' %} / {% trans 'Direct links' %}
  127. </span>
  128. </a>
  129. <a href="#" class="{{ params_array['snap_to_grid'] }}" id="grid_button">
  130. <img title="{% trans 'Snap to grid' %}" src="{{ theme.getImgPath('designer/grid.png') }}">
  131. <span class="hide hidable">
  132. {% trans 'Snap to grid' %}
  133. </span>
  134. </a>
  135. <a href="#" class="{{ params_array['small_big_all'] }}" id="key_SB_all">
  136. <img title="{% trans 'Small/Big All' %}"
  137. alt="v"
  138. src="{{ theme.getImgPath('designer/downarrow1.png') }}"
  139. data-down="{{ theme.getImgPath('designer/downarrow1.png') }}"
  140. data-right="{{ theme.getImgPath('designer/rightarrow1.png') }}">
  141. <span class="hide hidable">
  142. {% trans 'Small/Big All' %}
  143. </span>
  144. </a>
  145. <a href="#" id="SmallTabInvert" class="M_butt">
  146. <img title="{% trans 'Toggle small/big' %}"
  147. src="{{ theme.getImgPath('designer/bottom.png') }}">
  148. <span class="hide hidable">
  149. {% trans 'Toggle small/big' %}
  150. </span>
  151. </a>
  152. <a href="#" id="relLineInvert" class="{{ params_array['relation_lines'] }}" >
  153. <img title="{% trans 'Toggle relationship lines' %}"
  154. src="{{ theme.getImgPath('designer/toggle_lines.png') }}">
  155. <span class="hide hidable">
  156. {% trans 'Toggle relationship lines' %}
  157. </span>
  158. </a>
  159. {% if not visual_builder %}
  160. <a href="#" id="exportPages" class="M_butt" >
  161. <img title="{% trans 'Export schema' %}"
  162. src="{{ theme.getImgPath('designer/export.png') }}">
  163. <span class="hide hidable">
  164. {% trans 'Export schema' %}
  165. </span>
  166. </a>
  167. {% else %}
  168. <a id="build_query_button"
  169. class="M_butt"
  170. href="#"
  171. class="M_butt">
  172. <img title="{% trans 'Build Query' %}"
  173. src="{{ theme.getImgPath('designer/query_builder.png') }}">
  174. <span class="hide hidable">
  175. {% trans 'Build Query' %}
  176. </span>
  177. </a>
  178. {% endif %}
  179. <a href="#" class="{{ params_array['side_menu'] }}" id="key_Left_Right">
  180. <img title="{% trans 'Move Menu' %}" alt=">"
  181. data-right="{{ theme.getImgPath('designer/2leftarrow_m.png') }}"
  182. src="{{ theme.getImgPath('designer/2rightarrow_m.png') }}">
  183. <span class="hide hidable">
  184. {% trans 'Move Menu' %}
  185. </span>
  186. </a>
  187. <a href="#" class="{{ params_array['pin_text'] }}" id="pin_Text">
  188. <img title="{% trans 'Pin text' %}"
  189. alt=">"
  190. data-right="{{ theme.getImgPath('designer/anchor.png') }}"
  191. src="{{ theme.getImgPath('designer/anchor.png') }}">
  192. <span class="hide hidable">
  193. {% trans 'Pin text' %}
  194. </span>
  195. </a>
  196. </div>
  197. <div id="canvas_outer">
  198. <form action="" id="container-form" method="post" name="form1">
  199. <div id="osn_tab">
  200. <canvas class="designer" id="canvas" width="100" height="100"></canvas>
  201. </div>
  202. <div id="layer_menu" class="hide">
  203. <div class="center">
  204. <a href="#" class="M_butt" target="_self" >
  205. <img title="{% trans 'Hide/Show all' %}"
  206. alt="v"
  207. id="key_HS_all"
  208. src="{{ theme.getImgPath('designer/downarrow1.png') }}"
  209. data-down="{{ theme.getImgPath('designer/downarrow1.png') }}"
  210. data-right="{{ theme.getImgPath('designer/rightarrow1.png') }}">
  211. </a>
  212. <a href="#" class="M_butt" target="_self" >
  213. <img alt="v"
  214. id="key_HS"
  215. title="{% trans 'Hide/Show tables with no relationship' %}"
  216. src="{{ theme.getImgPath('designer/downarrow2.png') }}"
  217. data-down="{{ theme.getImgPath('designer/downarrow2.png') }}"
  218. data-right="{{ theme.getImgPath('designer/rightarrow2.png') }}">
  219. </a>
  220. </div>
  221. <div id="id_scroll_tab" class="scroll_tab">
  222. <table width="100%" style="padding-left: 3px;"></table>
  223. </div>
  224. {# end id_scroll_tab #}
  225. <div class="center">
  226. {% trans 'Number of tables:' %} <span id="tables_counter">0</span>
  227. </div>
  228. <div id="layer_menu_sizer">
  229. <img class="icon floatleft"
  230. id="layer_menu_sizer_btn"
  231. data-right="{{ theme.getImgPath('designer/resizeright.png') }}"
  232. src="{{ theme.getImgPath('designer/resize.png') }}">
  233. </div>
  234. </div>
  235. {# end layer_menu #}
  236. {% include 'database/designer/database_tables.twig' with {
  237. 'db': db,
  238. 'get_db': get_db,
  239. 'has_query': has_query,
  240. 'tab_pos': tab_pos,
  241. 'display_page': display_page,
  242. 'tab_column': tab_column,
  243. 'tables_all_keys': tables_all_keys,
  244. 'tables_pk_or_unique_keys': tables_pk_or_unique_keys,
  245. 'columns_type': columns_type,
  246. 'tables': designerTables,
  247. 'theme': theme,
  248. } only %}
  249. </form>
  250. </div>
  251. <div id="designer_hint"></div>
  252. {# create relation pane #}
  253. <table id="layer_new_relation" class="hide" width="5%" cellpadding="0" cellspacing="0">
  254. <tbody>
  255. <tr>
  256. <td class="frams1" width="10px">
  257. </td>
  258. <td class="frams5" width="99%" >
  259. </td>
  260. <td class="frams2" width="10px">
  261. <div class="bor">
  262. </div>
  263. </td>
  264. </tr>
  265. <tr>
  266. <td class="frams8">
  267. </td>
  268. <td class="input_tab">
  269. <table width="168" class="center" cellpadding="2" cellspacing="0">
  270. <thead>
  271. <tr>
  272. <td colspan="2" class="center nowrap">
  273. <strong>
  274. {% trans 'Create relationship' %}
  275. </strong>
  276. </td>
  277. </tr>
  278. </thead>
  279. <tbody id="foreign_relation">
  280. <tr>
  281. <td colspan="2" class="center nowrap">
  282. <strong>
  283. FOREIGN KEY
  284. </strong>
  285. </td>
  286. </tr>
  287. <tr>
  288. <td width="58" class="nowrap">
  289. on delete
  290. </td>
  291. <td width="102">
  292. <select name="on_delete" id="on_delete">
  293. <option value="nix" selected="selected">
  294. --
  295. </option>
  296. <option value="CASCADE">
  297. CASCADE
  298. </option>
  299. <option value="SET NULL">
  300. SET NULL
  301. </option>
  302. <option value="NO ACTION">
  303. NO ACTION
  304. </option>
  305. <option value="RESTRICT">
  306. RESTRICT
  307. </option>
  308. </select>
  309. </td>
  310. </tr>
  311. <tr>
  312. <td class="nowrap">
  313. on update
  314. </td>
  315. <td>
  316. <select name="on_update" id="on_update">
  317. <option value="nix" selected="selected">
  318. --
  319. </option>
  320. <option value="CASCADE">
  321. CASCADE
  322. </option>
  323. <option value="SET NULL">
  324. SET NULL
  325. </option>
  326. <option value="NO ACTION">
  327. NO ACTION
  328. </option>
  329. <option value="RESTRICT">
  330. RESTRICT
  331. </option>
  332. </select>
  333. </td>
  334. </tr>
  335. </tbody>
  336. <tbody>
  337. <tr>
  338. <td colspan="2" class="center nowrap">
  339. <input type="button" id="ok_new_rel_panel" class="btn btn-secondary butt"
  340. name="Button" value="{% trans 'OK' %}">
  341. <input type="button" id="cancel_new_rel_panel"
  342. class="btn btn-secondary butt" name="Button" value="{% trans 'Cancel' %}">
  343. </td>
  344. </tr>
  345. </tbody>
  346. </table>
  347. </td>
  348. <td class="frams6">
  349. </td>
  350. </tr>
  351. <tr>
  352. <td class="frams4">
  353. <div class="bor">
  354. </div>
  355. </td>
  356. <td class="frams7">
  357. </td>
  358. <td class="frams3">
  359. </td>
  360. </tr>
  361. </tbody>
  362. </table>
  363. {# delete relation pane #}
  364. <table id="layer_upd_relation" class="hide" width="5%" cellpadding="0" cellspacing="0">
  365. <tbody>
  366. <tr>
  367. <td class="frams1" width="10px">
  368. </td>
  369. <td class="frams5" width="99%">
  370. </td>
  371. <td class="frams2" width="10px">
  372. <div class="bor">
  373. </div>
  374. </td>
  375. </tr>
  376. <tr>
  377. <td class="frams8">
  378. </td>
  379. <td class="input_tab">
  380. <table width="100%" class="center" cellpadding="2" cellspacing="0">
  381. <tr>
  382. <td colspan="3" class="center nowrap">
  383. <strong>
  384. {% trans 'Delete relationship' %}
  385. </strong>
  386. </td>
  387. </tr>
  388. <tr>
  389. <td colspan="3" class="center nowrap">
  390. <input id="del_button" name="Button" type="button"
  391. class="btn btn-secondary butt" value="{% trans 'Delete' %}">
  392. <input id="cancel_button" type="button" class="btn btn-secondary butt"
  393. name="Button" value="{% trans 'Cancel' %}">
  394. </td>
  395. </tr>
  396. </table>
  397. </td>
  398. <td class="frams6">
  399. </td>
  400. </tr>
  401. <tr>
  402. <td class="frams4">
  403. <div class="bor">
  404. </div>
  405. </td>
  406. <td class="frams7">
  407. </td>
  408. <td class="frams3">
  409. </td>
  410. </tr>
  411. </tbody>
  412. </table>
  413. {% if has_query %}
  414. {# options pane #}
  415. <table id="designer_optionse" class="hide" width="5%" cellpadding="0" cellspacing="0">
  416. <tbody>
  417. <tr>
  418. <td class="frams1" width="10px">
  419. </td>
  420. <td class="frams5" width="99%" >
  421. </td>
  422. <td class="frams2" width="10px">
  423. <div class="bor">
  424. </div>
  425. </td>
  426. </tr>
  427. <tr>
  428. <td class="frams8">
  429. </td>
  430. <td class="input_tab">
  431. <table width="168" class="center" cellpadding="2" cellspacing="0">
  432. <thead>
  433. <tr>
  434. <td colspan="2" rowspan="2" id="option_col_name" class="center nowrap">
  435. </td>
  436. </tr>
  437. </thead>
  438. <tbody id="where">
  439. <tr>
  440. <td class="center nowrap">
  441. <b>
  442. WHERE
  443. </b>
  444. </td>
  445. </tr>
  446. <tr>
  447. <td width="58" class="nowrap">
  448. {% trans 'Relationship operator' %}
  449. </td>
  450. <td width="102">
  451. <select name="rel_opt" id="rel_opt">
  452. <option value="--" selected="selected">
  453. --
  454. </option>
  455. <option value="=">
  456. =
  457. </option>
  458. <option value="&gt;">
  459. &gt;
  460. </option>
  461. <option value="&lt;">
  462. &lt;
  463. </option>
  464. <option value="&gt;=">
  465. &gt;=
  466. </option>
  467. <option value="&lt;=">
  468. &lt;=
  469. </option>
  470. <option value="NOT">
  471. NOT
  472. </option>
  473. <option value="IN">
  474. IN
  475. </option>
  476. <option value="EXCEPT">
  477. {% trans 'Except' %}
  478. </option>
  479. <option value="NOT IN">
  480. NOT IN
  481. </option>
  482. </select>
  483. </td>
  484. </tr>
  485. <tr>
  486. <td class="nowrap">
  487. {% trans 'Value' %}
  488. <br>
  489. {% trans 'subquery' %}
  490. </td>
  491. <td>
  492. <textarea id="Query" cols="18"></textarea>
  493. </td>
  494. </tr>
  495. <tr>
  496. <td class="center nowrap">
  497. <b>
  498. {% trans 'Rename to' %}
  499. </b>
  500. </td>
  501. </tr>
  502. <tr>
  503. <td width="58" class="nowrap">
  504. {% trans 'New name' %}
  505. </td>
  506. <td width="102">
  507. <input type="text" id="new_name">
  508. </td>
  509. </tr>
  510. <tr>
  511. <td class="center nowrap">
  512. <b>
  513. {% trans 'Aggregate' %}
  514. </b>
  515. </td>
  516. </tr>
  517. <tr>
  518. <td width="58" class="nowrap">
  519. {% trans 'Operator' %}
  520. </td>
  521. <td width="102">
  522. <select name="operator" id="operator">
  523. <option value="---" selected="selected">
  524. ---
  525. </option>
  526. <option value="sum" >
  527. SUM
  528. </option>
  529. <option value="min">
  530. MIN
  531. </option>
  532. <option value="max">
  533. MAX
  534. </option>
  535. <option value="avg">
  536. AVG
  537. </option>
  538. <option value="count">
  539. COUNT
  540. </option>
  541. </select>
  542. </td>
  543. </tr>
  544. <tr>
  545. <td width="58" class="center nowrap">
  546. <b>
  547. GROUP BY
  548. </b>
  549. </td>
  550. <td>
  551. <input type="checkbox" value="groupby" id="groupby">
  552. </td>
  553. </tr>
  554. <tr>
  555. <td width="58" class="center nowrap">
  556. <b>
  557. ORDER BY
  558. </b>
  559. </td>
  560. <td>
  561. <select name="orderby" id="orderby">
  562. <option value="---" selected="selected">
  563. ---
  564. </option>
  565. <option value="ASC" >
  566. ASC
  567. </option>
  568. <option value="DESC">
  569. DESC
  570. </option>
  571. </select>
  572. </td>
  573. </tr>
  574. <tr>
  575. <td class="center nowrap">
  576. <b>
  577. HAVING
  578. </b>
  579. </td>
  580. </tr>
  581. <tr>
  582. <td width="58" class="nowrap">
  583. {% trans 'Operator' %}
  584. </td>
  585. <td width="102">
  586. <select name="h_operator" id="h_operator">
  587. <option value="---" selected="selected">
  588. ---
  589. </option>
  590. <option value="None" >
  591. {% trans 'None' %}
  592. </option>
  593. <option value="sum" >
  594. SUM
  595. </option>
  596. <option value="min">
  597. MIN
  598. </option>
  599. <option value="max">
  600. MAX
  601. </option>
  602. <option value="avg">
  603. AVG
  604. </option>
  605. <option value="count">
  606. COUNT
  607. </option>
  608. </select>
  609. </td>
  610. </tr>
  611. <tr>
  612. <td width="58" class="nowrap">
  613. {% trans 'Relationship operator' %}
  614. </td>
  615. <td width="102">
  616. <select name="h_rel_opt" id="h_rel_opt">
  617. <option value="--" selected="selected">
  618. --
  619. </option>
  620. <option value="=">
  621. =
  622. </option>
  623. <option value="&gt;">
  624. &gt;
  625. </option>
  626. <option value="&lt;">
  627. &lt;
  628. </option>
  629. <option value="&gt;=">
  630. &gt;=
  631. </option>
  632. <option value="&lt;=">
  633. &lt;=
  634. </option>
  635. <option value="NOT">
  636. NOT
  637. </option>
  638. <option value="IN">
  639. IN
  640. </option>
  641. <option value="EXCEPT">
  642. {% trans 'Except' %}
  643. </option>
  644. <option value="NOT IN">
  645. NOT IN
  646. </option>
  647. </select>
  648. </td>
  649. </tr>
  650. <tr>
  651. <td width="58" class="nowrap">
  652. {% trans 'Value' %}
  653. <br>
  654. {% trans 'subquery' %}
  655. </td>
  656. <td width="102">
  657. <textarea id="having" cols="18"></textarea>
  658. </td>
  659. </tr>
  660. </tbody>
  661. <tbody>
  662. <tr>
  663. <td colspan="2" class="center nowrap">
  664. <input type="hidden" id="ok_add_object_db_and_table_name_url" />
  665. <input type="hidden" id="ok_add_object_db_name" />
  666. <input type="hidden" id="ok_add_object_table_name" />
  667. <input type="hidden" id="ok_add_object_col_name" />
  668. <input type="button" id="ok_add_object" class="btn btn-secondary butt"
  669. name="Button" value="{% trans 'OK' %}">
  670. <input type="button" id="cancel_close_option" class="btn btn-secondary butt"
  671. name="Button" value="{% trans 'Cancel' %}">
  672. </td>
  673. </tr>
  674. </tbody>
  675. </table>
  676. </td>
  677. <td class="frams6">
  678. </td>
  679. </tr>
  680. <tr>
  681. <td class="frams4">
  682. <div class="bor">
  683. </div>
  684. </td>
  685. <td class="frams7">
  686. </td>
  687. <td class="frams3">
  688. </td>
  689. </tr>
  690. </tbody>
  691. </table>
  692. {# rename to pane #}
  693. <table id="query_rename_to" class="hide" width="5%" cellpadding="0" cellspacing="0">
  694. <tbody>
  695. <tr>
  696. <td class="frams1" width="10px">
  697. </td>
  698. <td class="frams5" width="99%" >
  699. </td>
  700. <td class="frams2" width="10px">
  701. <div class="bor">
  702. </div>
  703. </td>
  704. </tr>
  705. <tr>
  706. <td class="frams8">
  707. </td>
  708. <td class="input_tab">
  709. <table width="168" class="center" cellpadding="2" cellspacing="0">
  710. <thead>
  711. <tr>
  712. <td colspan="2" class="center nowrap">
  713. <strong>
  714. {% trans 'Rename to' %}
  715. </strong>
  716. </td>
  717. </tr>
  718. </thead>
  719. <tbody id="rename_to">
  720. <tr>
  721. <td width="58" class="nowrap">
  722. {% trans 'New name' %}
  723. </td>
  724. <td width="102">
  725. <input type="text" id="e_rename">
  726. </td>
  727. </tr>
  728. </tbody>
  729. <tbody>
  730. <tr>
  731. <td colspan="2" class="center nowrap">
  732. <input type="button" id="ok_edit_rename" class="btn btn-secondary butt"
  733. name="Button" value="{% trans 'OK' %}">
  734. <input id="query_rename_to_button" type="button"
  735. class="btn btn-secondary butt"
  736. name="Button"
  737. value="{% trans 'Cancel' %}">
  738. </td>
  739. </tr>
  740. </tbody>
  741. </table>
  742. </td>
  743. <td class="frams6">
  744. </td>
  745. </tr>
  746. <tr>
  747. <td class="frams4">
  748. <div class="bor">
  749. </div>
  750. </td>
  751. <td class="frams7">
  752. </td>
  753. <td class="frams3">
  754. </td>
  755. </tr>
  756. </tbody>
  757. </table>
  758. {# having query panel #}
  759. <table id="query_having" class="hide" width="5%" cellpadding="0" cellspacing="0">
  760. <tbody>
  761. <tr>
  762. <td class="frams1" width="10px">
  763. </td>
  764. <td class="frams5" width="99%" >
  765. </td>
  766. <td class="frams2" width="10px">
  767. <div class="bor">
  768. </div>
  769. </td>
  770. </tr>
  771. <tr>
  772. <td class="frams8">
  773. </td>
  774. <td class="input_tab">
  775. <table width="168" class="center" cellpadding="2" cellspacing="0">
  776. <thead>
  777. <tr>
  778. <td colspan="2" class="center nowrap">
  779. <strong>
  780. HAVING
  781. </strong>
  782. </td>
  783. </tr>
  784. </thead>
  785. <tbody id="rename_to">
  786. <tr>
  787. <td width="58" class="nowrap">
  788. {% trans 'Operator' %}
  789. </td>
  790. <td width="102">
  791. <select name="hoperator" id="hoperator">
  792. <option value="---" selected="selected">
  793. ---
  794. </option>
  795. <option value="None" >
  796. None
  797. </option>
  798. <option value="sum" >
  799. SUM
  800. </option>
  801. <option value="min">
  802. MIN
  803. </option>
  804. <option value="max">
  805. MAX
  806. </option>
  807. <option value="avg">
  808. AVG
  809. </option>
  810. <option value="count">
  811. COUNT
  812. </option>
  813. </select>
  814. </td>
  815. </tr>
  816. <tr>
  817. <tr>
  818. <td width="58" class="nowrap">
  819. {% trans 'Operator' %}
  820. </td>
  821. <td width="102">
  822. <select name="hrel_opt" id="hrel_opt">
  823. <option value="--" selected="selected">
  824. --
  825. </option>
  826. <option value="=">
  827. =
  828. </option>
  829. <option value="&gt;">
  830. &gt;
  831. </option>
  832. <option value="&lt;">
  833. &lt;
  834. </option>
  835. <option value="&gt;=">
  836. &gt;=
  837. </option>
  838. <option value="&lt;=">
  839. &lt;=
  840. </option>
  841. <option value="NOT">
  842. NOT
  843. </option>
  844. <option value="IN">
  845. IN
  846. </option>
  847. <option value="EXCEPT">
  848. {% trans 'Except' %}
  849. </option>
  850. <option value="NOT IN">
  851. NOT IN
  852. </option>
  853. </select>
  854. </td>
  855. </tr>
  856. <tr>
  857. <td class="nowrap">
  858. {% trans 'Value' %}
  859. <br>
  860. {% trans 'subquery' %}
  861. </td>
  862. <td>
  863. <textarea id="hQuery" cols="18">
  864. </textarea>
  865. </td>
  866. </tr>
  867. </tbody>
  868. <tbody>
  869. <tr>
  870. <td colspan="2" class="center nowrap">
  871. <input type="button" id="ok_edit_having" class="btn btn-secondary butt"
  872. name="Button" value="{% trans 'OK' %}">
  873. <input id="query_having_button" type="button"
  874. class="btn btn-secondary butt"
  875. name="Button"
  876. value="{% trans 'Cancel' %}">
  877. </td>
  878. </tr>
  879. </tbody>
  880. </table>
  881. </td>
  882. <td class="frams6">
  883. </td>
  884. </tr>
  885. <tr>
  886. <td class="frams4">
  887. <div class="bor">
  888. </div>
  889. </td>
  890. <td class="frams7">
  891. </td>
  892. <td class="frams3">
  893. </td>
  894. </tr>
  895. </tbody>
  896. </table>
  897. {# aggregate query pane #}
  898. <table id="query_Aggregate" class="hide" width="5%" cellpadding="0" cellspacing="0">
  899. <tbody>
  900. <tr>
  901. <td class="frams1" width="10px">
  902. </td>
  903. <td class="frams5" width="99%" >
  904. </td>
  905. <td class="frams2" width="10px">
  906. <div class="bor">
  907. </div>
  908. </td>
  909. </tr>
  910. <tr>
  911. <td class="frams8">
  912. </td>
  913. <td class="input_tab">
  914. <table width="168" class="center" cellpadding="2" cellspacing="0">
  915. <thead>
  916. <tr>
  917. <td colspan="2" class="center nowrap">
  918. <strong>
  919. {% trans 'Aggregate' %}
  920. </strong>
  921. </td>
  922. </tr>
  923. </thead>
  924. <tbody>
  925. <tr>
  926. <td width="58" class="nowrap">
  927. {% trans 'Operator' %}
  928. </td>
  929. <td width="102">
  930. <select name="operator" id="e_operator">
  931. <option value="---" selected="selected">
  932. ---
  933. </option>
  934. <option value="sum" >
  935. SUM
  936. </option>
  937. <option value="min">
  938. MIN
  939. </option>
  940. <option value="max">
  941. MAX
  942. </option>
  943. <option value="avg">
  944. AVG
  945. </option>
  946. <option value="count">
  947. COUNT
  948. </option>
  949. </select>
  950. </td>
  951. </tr>
  952. </tbody>
  953. <tbody>
  954. <tr>
  955. <td colspan="2" class="center nowrap">
  956. <input type="button" id="ok_edit_Aggr" class="btn btn-secondary butt"
  957. name="Button" value="{% trans 'OK' %}">
  958. <input id="query_Aggregate_Button" type="button"
  959. class="btn btn-secondary butt"
  960. name="Button"
  961. value="{% trans 'Cancel' %}">
  962. </td>
  963. </tr>
  964. </tbody>
  965. </table>
  966. </td>
  967. <td class="frams6">
  968. </td>
  969. </tr>
  970. <tr>
  971. <td class="frams4">
  972. <div class="bor">
  973. </div>
  974. </td>
  975. <td class="frams7">
  976. </td>
  977. <td class="frams3">
  978. </td>
  979. </tr>
  980. </tbody>
  981. </table>
  982. {# where query pane #}
  983. <table id="query_where" class="hide" width="5%" cellpadding="0" cellspacing="0">
  984. <tbody>
  985. <tr>
  986. <td class="frams1" width="10px">
  987. </td>
  988. <td class="frams5" width="99%" >
  989. </td>
  990. <td class="frams2" width="10px">
  991. <div class="bor">
  992. </div>
  993. </td>
  994. </tr>
  995. <tr>
  996. <td class="frams8">
  997. </td>
  998. <td class="input_tab">
  999. <table width="168" class="center" cellpadding="2" cellspacing="0">
  1000. <thead>
  1001. <tr>
  1002. <td colspan="2" class="center nowrap">
  1003. <strong>
  1004. WHERE
  1005. </strong>
  1006. </td>
  1007. </tr>
  1008. </thead>
  1009. <tbody id="rename_to">
  1010. <tr>
  1011. <td width="58" class="nowrap">
  1012. {% trans 'Operator' %}
  1013. </td>
  1014. <td width="102">
  1015. <select name="erel_opt" id="erel_opt">
  1016. <option value="--" selected="selected">
  1017. --
  1018. </option>
  1019. <option value="=" >
  1020. =
  1021. </option>
  1022. <option value="&gt;">
  1023. &gt;
  1024. </option>
  1025. <option value="&lt;">
  1026. &lt;
  1027. </option>
  1028. <option value="&gt;=">
  1029. &gt;=
  1030. </option>
  1031. <option value="&lt;=">
  1032. &lt;=
  1033. </option>
  1034. <option value="NOT">
  1035. NOT
  1036. </option>
  1037. <option value="IN">
  1038. IN
  1039. </option>
  1040. <option value="EXCEPT">
  1041. {% trans 'Except' %}
  1042. </option>
  1043. <option value="NOT IN">
  1044. NOT IN
  1045. </option>
  1046. </select>
  1047. </td>
  1048. </tr>
  1049. <tr>
  1050. <td class="nowrap">
  1051. {% trans 'Value' %}
  1052. <br>
  1053. {% trans 'subquery' %}
  1054. </td>
  1055. <td>
  1056. <textarea id="eQuery" cols="18">
  1057. </textarea>
  1058. </td>
  1059. </tr>
  1060. </tbody>
  1061. <tbody>
  1062. <tr>
  1063. <td colspan="2" class="center nowrap">
  1064. <input type="button" id="ok_edit_where" class="btn btn-secondary butt"
  1065. name="Button" value="{% trans 'OK' %}">
  1066. <input id="query_where_button" type="button" class="btn btn-secondary butt" name="Button"
  1067. value="{% trans 'Cancel' %}">
  1068. </td>
  1069. </tr>
  1070. </tbody>
  1071. </table>
  1072. </td>
  1073. <td class="frams6">
  1074. </td>
  1075. </tr>
  1076. <tr>
  1077. <td class="frams4">
  1078. <div class="bor">
  1079. </div>
  1080. </td>
  1081. <td class="frams7">
  1082. </td>
  1083. <td class="frams3">
  1084. </td>
  1085. </tr>
  1086. </tbody>
  1087. </table>
  1088. {# query details #}
  1089. <div class="panel">
  1090. <div class="clearfloat"></div>
  1091. <div id="ab"></div>
  1092. <div class="clearfloat"></div>
  1093. </div>
  1094. <a class="trigger" href="#">{% trans 'Active options' %}</a>
  1095. <div id="box">
  1096. <form method="post" action="db_qbe.php" id="vqb_form">
  1097. <textarea cols="80" name="sql_query" id="textSqlquery" rows="15"></textarea>
  1098. <input type="hidden" name="submit_sql" value="true">
  1099. {{ get_hidden_inputs(get_db) }}
  1100. </form>
  1101. </div>
  1102. {% endif %}
  1103. <div id="PMA_disable_floating_menubar"></div>