You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1126 lines
49 KiB
1126 lines
49 KiB
{# Invisible characters will make javascript crash #} |
|
<script type="text/javascript"> |
|
var designerConfig = {{ designer_config|raw }}; |
|
</script> |
|
|
|
{# side menu #} |
|
{% if not has_query %} |
|
<div id="name-panel"> |
|
<span id="page_name"> |
|
{{ selected_page == null ? 'Untitled'|trans : selected_page }} |
|
</span> |
|
<span id="saved_state"> |
|
{{ selected_page == null ? '*' : '' }} |
|
</span> |
|
</div> |
|
{% endif %} |
|
<div class="designer_header side-menu" id="side_menu"> |
|
<a class="M_butt" id="key_Show_left_menu" href="#"> |
|
<img title="{% trans 'Show/Hide tables list' %}" |
|
alt="v" |
|
src="{{ image('designer/downarrow2_m.png') }}" |
|
data-down="{{ image('designer/downarrow2_m.png') }}" |
|
data-up="{{ image('designer/uparrow2_m.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Show/Hide tables list' %} |
|
</span> |
|
</a> |
|
<a href="#" id="toggleFullscreen" class="M_butt"> |
|
<img title="{% trans 'View in fullscreen' %}" |
|
src="{{ image('designer/viewInFullscreen.png') }}" |
|
data-enter="{{ image('designer/viewInFullscreen.png') }}" |
|
data-exit="{{ image('designer/exitFullscreen.png') }}"> |
|
<span class="hide hidable" |
|
data-exit="{% trans 'Exit fullscreen' %}" |
|
data-enter="{% trans 'View in fullscreen' %}"> |
|
{% trans 'View in fullscreen' %} |
|
</span> |
|
</a> |
|
<a href="#" id="addOtherDbTables" class="M_butt"> |
|
<img title="{% trans 'Add tables from other databases' %}" |
|
src="{{ image('designer/other_table.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Add tables from other databases' %} |
|
</span> |
|
</a> |
|
{% if not has_query %} |
|
<a id="newPage" href="#" class="M_butt"> |
|
<img title="{% trans 'New page' %}" |
|
alt="" |
|
src="{{ image('designer/page_add.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'New page' %} |
|
</span> |
|
</a> |
|
<a href="#" id="editPage" class="M_butt ajax"> |
|
<img title="{% trans 'Open page' %}" |
|
src="{{ image('designer/page_edit.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Open page' %} |
|
</span> |
|
</a> |
|
<a href="#" id="savePos" class="M_butt"> |
|
<img title="{% trans 'Save page' %}" |
|
src="{{ image('designer/save.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Save page' %} |
|
</span> |
|
</a> |
|
<a href="#" id="SaveAs" class="M_butt ajax"> |
|
<img title="{% trans 'Save page as' %}" |
|
src="{{ image('designer/save_as.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Save page as' %} |
|
</span> |
|
</a> |
|
<a href="#" id="delPages" class="M_butt ajax"> |
|
<img title="{% trans 'Delete pages' %}" |
|
src="{{ image('designer/page_delete.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Delete pages' %} |
|
</span> |
|
</a> |
|
<a href="#" id="StartTableNew" class="M_butt"> |
|
<img title="{% trans 'Create table' %}" |
|
src="{{ image('designer/table.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Create table' %} |
|
</span> |
|
</a> |
|
<a href="#" class="M_butt" id="rel_button"> |
|
<img title="{% trans 'Create relationship' %}" |
|
src="{{ image('designer/relation.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Create relationship' %} |
|
</span> |
|
</a> |
|
<a href="#" class="M_butt" id="display_field_button"> |
|
<img title="{% trans 'Choose column to display' %}" |
|
src="{{ image('designer/display_field.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Choose column to display' %} |
|
</span> |
|
</a> |
|
<a href="#" id="reloadPage" class="M_butt"> |
|
<img title="{% trans 'Reload' %}" |
|
src="{{ image('designer/reload.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Reload' %} |
|
</span> |
|
</a> |
|
<a href="{{ get_docu_link('faq', 'faq6-31') }}" target="_blank" rel="noopener noreferrer" class="M_butt"> |
|
<img title="{% trans 'Help' %}" |
|
src="{{ image('designer/help.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Help' %} |
|
</span> |
|
</a> |
|
{% endif %} |
|
<a href="#" class="{{ params_array['angular_direct'] }}" id="angular_direct_button"> |
|
<img title="{% trans 'Angular links' %} / {% trans 'Direct links' %}" |
|
src="{{ image('designer/ang_direct.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Angular links' %} / {% trans 'Direct links' %} |
|
</span> |
|
</a> |
|
<a href="#" class="{{ params_array['snap_to_grid'] }}" id="grid_button"> |
|
<img title="{% trans 'Snap to grid' %}" src="{{ image('designer/grid.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Snap to grid' %} |
|
</span> |
|
</a> |
|
<a href="#" class="{{ params_array['small_big_all'] }}" id="key_SB_all"> |
|
<img title="{% trans 'Small/Big All' %}" |
|
alt="v" |
|
src="{{ image('designer/downarrow1.png') }}" |
|
data-down="{{ image('designer/downarrow1.png') }}" |
|
data-right="{{ image('designer/rightarrow1.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Small/Big All' %} |
|
</span> |
|
</a> |
|
<a href="#" id="SmallTabInvert" class="M_butt"> |
|
<img title="{% trans 'Toggle small/big' %}" |
|
src="{{ image('designer/bottom.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Toggle small/big' %} |
|
</span> |
|
</a> |
|
<a href="#" id="relLineInvert" class="{{ params_array['relation_lines'] }}" > |
|
<img title="{% trans 'Toggle relationship lines' %}" |
|
src="{{ image('designer/toggle_lines.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Toggle relationship lines' %} |
|
</span> |
|
</a> |
|
{% if not visual_builder %} |
|
<a href="#" id="exportPages" class="M_butt" > |
|
<img title="{% trans 'Export schema' %}" |
|
src="{{ image('designer/export.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Export schema' %} |
|
</span> |
|
</a> |
|
{% else %} |
|
<a id="build_query_button" |
|
class="M_butt" |
|
href="#" |
|
class="M_butt"> |
|
<img title="{% trans 'Build Query' %}" |
|
src="{{ image('designer/query_builder.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Build Query' %} |
|
</span> |
|
</a> |
|
{% endif %} |
|
<a href="#" class="{{ params_array['side_menu'] }}" id="key_Left_Right"> |
|
<img title="{% trans 'Move Menu' %}" alt=">" |
|
data-right="{{ image('designer/2leftarrow_m.png') }}" |
|
src="{{ image('designer/2rightarrow_m.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Move Menu' %} |
|
</span> |
|
</a> |
|
<a href="#" class="{{ params_array['pin_text'] }}" id="pin_Text"> |
|
<img title="{% trans 'Pin text' %}" |
|
alt=">" |
|
data-right="{{ image('designer/anchor.png') }}" |
|
src="{{ image('designer/anchor.png') }}"> |
|
<span class="hide hidable"> |
|
{% trans 'Pin text' %} |
|
</span> |
|
</a> |
|
</div> |
|
<div id="canvas_outer"> |
|
<form action="" id="container-form" method="post" name="form1"> |
|
<div id="osn_tab"> |
|
<canvas class="designer" id="canvas" width="100" height="100"></canvas> |
|
</div> |
|
<div id="layer_menu" class="hide"> |
|
<div class="text-center"> |
|
<a href="#" class="M_butt" target="_self" > |
|
<img title="{% trans 'Hide/Show all' %}" |
|
alt="v" |
|
id="key_HS_all" |
|
src="{{ image('designer/downarrow1.png') }}" |
|
data-down="{{ image('designer/downarrow1.png') }}" |
|
data-right="{{ image('designer/rightarrow1.png') }}"> |
|
</a> |
|
<a href="#" class="M_butt" target="_self" > |
|
<img alt="v" |
|
id="key_HS" |
|
title="{% trans 'Hide/Show tables with no relationship' %}" |
|
src="{{ image('designer/downarrow2.png') }}" |
|
data-down="{{ image('designer/downarrow2.png') }}" |
|
data-right="{{ image('designer/rightarrow2.png') }}"> |
|
</a> |
|
</div> |
|
<div id="id_scroll_tab" class="scroll_tab"> |
|
<table class="table table-sm ps-1"></table> |
|
</div> |
|
{# end id_scroll_tab #} |
|
<div class="text-center"> |
|
{% trans 'Number of tables:' %} <span id="tables_counter">0</span> |
|
</div> |
|
<div id="layer_menu_sizer"> |
|
<img class="icon float-start" |
|
id="layer_menu_sizer_btn" |
|
data-right="{{ image('designer/resizeright.png') }}" |
|
src="{{ image('designer/resize.png') }}"> |
|
</div> |
|
</div> |
|
{# end layer_menu #} |
|
{% include 'database/designer/database_tables.twig' with { |
|
'db': db, |
|
'text_dir': text_dir, |
|
'get_db': get_db, |
|
'has_query': has_query, |
|
'tab_pos': tab_pos, |
|
'display_page': display_page, |
|
'tab_column': tab_column, |
|
'tables_all_keys': tables_all_keys, |
|
'tables_pk_or_unique_keys': tables_pk_or_unique_keys, |
|
'columns_type': columns_type, |
|
'tables': designerTables, |
|
} only %} |
|
</form> |
|
</div> |
|
<div id="designer_hint"></div> |
|
{# create relation pane #} |
|
<table id="layer_new_relation" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
{% trans 'Create relationship' %} |
|
</strong> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody id="foreign_relation"> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
FOREIGN KEY |
|
</strong> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
on delete |
|
</td> |
|
<td width="102"> |
|
<select name="on_delete" id="on_delete"> |
|
<option value="nix" selected="selected"> |
|
-- |
|
</option> |
|
<option value="CASCADE"> |
|
CASCADE |
|
</option> |
|
<option value="SET NULL"> |
|
SET NULL |
|
</option> |
|
<option value="NO ACTION"> |
|
NO ACTION |
|
</option> |
|
<option value="RESTRICT"> |
|
RESTRICT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-nowrap"> |
|
on update |
|
</td> |
|
<td> |
|
<select name="on_update" id="on_update"> |
|
<option value="nix" selected="selected"> |
|
-- |
|
</option> |
|
<option value="CASCADE"> |
|
CASCADE |
|
</option> |
|
<option value="SET NULL"> |
|
SET NULL |
|
</option> |
|
<option value="NO ACTION"> |
|
NO ACTION |
|
</option> |
|
<option value="RESTRICT"> |
|
RESTRICT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="button" id="ok_new_rel_panel" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input type="button" id="cancel_new_rel_panel" |
|
class="btn btn-secondary butt" name="Button" value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# delete relation pane #} |
|
<table id="layer_upd_relation" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%"> |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<tr> |
|
<td colspan="3" class="text-center text-nowrap"> |
|
<strong> |
|
{% trans 'Delete relationship' %} |
|
</strong> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td colspan="3" class="text-center text-nowrap"> |
|
<input id="del_button" name="Button" type="button" |
|
class="btn btn-secondary butt" value="{% trans 'Delete' %}"> |
|
<input id="cancel_button" type="button" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{% if has_query %} |
|
{# options panel #} |
|
<table id="designer_optionse" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" rowspan="2" id="option_col_name" class="text-center text-nowrap"> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody id="where"> |
|
<tr> |
|
<td class="text-center text-nowrap"> |
|
<b> |
|
WHERE |
|
</b> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Relationship operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="rel_opt" id="rel_opt"> |
|
<option value="--" selected="selected"> |
|
-- |
|
</option> |
|
<option value="="> |
|
= |
|
</option> |
|
<option value=">"> |
|
> |
|
</option> |
|
<option value="<"> |
|
< |
|
</option> |
|
<option value=">="> |
|
>= |
|
</option> |
|
<option value="<="> |
|
<= |
|
</option> |
|
<option value="NOT"> |
|
NOT |
|
</option> |
|
<option value="IN"> |
|
IN |
|
</option> |
|
<option value="EXCEPT"> |
|
{% trans 'Except' %} |
|
</option> |
|
<option value="NOT IN"> |
|
NOT IN |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-nowrap"> |
|
{% trans 'Value' %} |
|
<br> |
|
{% trans 'subquery' %} |
|
</td> |
|
<td> |
|
<textarea id="Query" cols="18"></textarea> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-center text-nowrap"> |
|
<b> |
|
{% trans 'Rename to' %} |
|
</b> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'New name' %} |
|
</td> |
|
<td width="102"> |
|
<input type="text" id="new_name"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-center text-nowrap"> |
|
<b> |
|
{% trans 'Aggregate' %} |
|
</b> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="operator" id="operator"> |
|
<option value="---" selected="selected"> |
|
--- |
|
</option> |
|
<option value="sum" > |
|
SUM |
|
</option> |
|
<option value="min"> |
|
MIN |
|
</option> |
|
<option value="max"> |
|
MAX |
|
</option> |
|
<option value="avg"> |
|
AVG |
|
</option> |
|
<option value="count"> |
|
COUNT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-center text-nowrap"> |
|
<b> |
|
GROUP BY |
|
</b> |
|
</td> |
|
<td> |
|
<input type="checkbox" value="groupby" id="groupby"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-center text-nowrap"> |
|
<b> |
|
ORDER BY |
|
</b> |
|
</td> |
|
<td> |
|
<select name="orderby" id="orderby"> |
|
<option value="---" selected="selected"> |
|
--- |
|
</option> |
|
<option value="ASC" > |
|
ASC |
|
</option> |
|
<option value="DESC"> |
|
DESC |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-center text-nowrap"> |
|
<b> |
|
HAVING |
|
</b> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="h_operator" id="h_operator"> |
|
<option value="---" selected="selected"> |
|
--- |
|
</option> |
|
<option value="None" > |
|
{% trans 'None' %} |
|
</option> |
|
<option value="sum" > |
|
SUM |
|
</option> |
|
<option value="min"> |
|
MIN |
|
</option> |
|
<option value="max"> |
|
MAX |
|
</option> |
|
<option value="avg"> |
|
AVG |
|
</option> |
|
<option value="count"> |
|
COUNT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Relationship operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="h_rel_opt" id="h_rel_opt"> |
|
<option value="--" selected="selected"> |
|
-- |
|
</option> |
|
<option value="="> |
|
= |
|
</option> |
|
<option value=">"> |
|
> |
|
</option> |
|
<option value="<"> |
|
< |
|
</option> |
|
<option value=">="> |
|
>= |
|
</option> |
|
<option value="<="> |
|
<= |
|
</option> |
|
<option value="NOT"> |
|
NOT |
|
</option> |
|
<option value="IN"> |
|
IN |
|
</option> |
|
<option value="EXCEPT"> |
|
{% trans 'Except' %} |
|
</option> |
|
<option value="NOT IN"> |
|
NOT IN |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Value' %} |
|
<br> |
|
{% trans 'subquery' %} |
|
</td> |
|
<td width="102"> |
|
<textarea id="having" cols="18"></textarea> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="hidden" id="ok_add_object_db_and_table_name_url" /> |
|
<input type="hidden" id="ok_add_object_db_name" /> |
|
<input type="hidden" id="ok_add_object_table_name" /> |
|
<input type="hidden" id="ok_add_object_col_name" /> |
|
<input type="button" id="ok_add_object" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input type="button" id="cancel_close_option" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# rename to pane #} |
|
<table id="query_rename_to" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
{% trans 'Rename to' %} |
|
</strong> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody id="rename_to"> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'New name' %} |
|
</td> |
|
<td width="102"> |
|
<input type="text" id="e_rename"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="button" id="ok_edit_rename" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input id="query_rename_to_button" type="button" |
|
class="btn btn-secondary butt" |
|
name="Button" |
|
value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# having query panel #} |
|
<table id="query_having" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
HAVING |
|
</strong> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody id="rename_to"> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="hoperator" id="hoperator"> |
|
<option value="---" selected="selected"> |
|
--- |
|
</option> |
|
<option value="None" > |
|
None |
|
</option> |
|
<option value="sum" > |
|
SUM |
|
</option> |
|
<option value="min"> |
|
MIN |
|
</option> |
|
<option value="max"> |
|
MAX |
|
</option> |
|
<option value="avg"> |
|
AVG |
|
</option> |
|
<option value="count"> |
|
COUNT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="hrel_opt" id="hrel_opt"> |
|
<option value="--" selected="selected"> |
|
-- |
|
</option> |
|
<option value="="> |
|
= |
|
</option> |
|
<option value=">"> |
|
> |
|
</option> |
|
<option value="<"> |
|
< |
|
</option> |
|
<option value=">="> |
|
>= |
|
</option> |
|
<option value="<="> |
|
<= |
|
</option> |
|
<option value="NOT"> |
|
NOT |
|
</option> |
|
<option value="IN"> |
|
IN |
|
</option> |
|
<option value="EXCEPT"> |
|
{% trans 'Except' %} |
|
</option> |
|
<option value="NOT IN"> |
|
NOT IN |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-nowrap"> |
|
{% trans 'Value' %} |
|
<br> |
|
{% trans 'subquery' %} |
|
</td> |
|
<td> |
|
<textarea id="hQuery" cols="18"> |
|
</textarea> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="button" id="ok_edit_having" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input id="query_having_button" type="button" |
|
class="btn btn-secondary butt" |
|
name="Button" |
|
value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# aggregate query pane #} |
|
<table id="query_Aggregate" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
{% trans 'Aggregate' %} |
|
</strong> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="operator" id="e_operator"> |
|
<option value="---" selected="selected"> |
|
--- |
|
</option> |
|
<option value="sum" > |
|
SUM |
|
</option> |
|
<option value="min"> |
|
MIN |
|
</option> |
|
<option value="max"> |
|
MAX |
|
</option> |
|
<option value="avg"> |
|
AVG |
|
</option> |
|
<option value="count"> |
|
COUNT |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="button" id="ok_edit_Aggr" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input id="query_Aggregate_Button" type="button" |
|
class="btn btn-secondary butt" |
|
name="Button" |
|
value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# where query pane #} |
|
<table id="query_where" class="table table-borderless w-auto hide"> |
|
<tbody> |
|
<tr> |
|
<td class="frams1" width="10px"> |
|
</td> |
|
<td class="frams5" width="99%" > |
|
</td> |
|
<td class="frams2" width="10px"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams8"> |
|
</td> |
|
<td class="input_tab p-0"> |
|
<table class="table table-borderless bg-white mb-0 text-center"> |
|
<thead> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<strong> |
|
WHERE |
|
</strong> |
|
</td> |
|
</tr> |
|
</thead> |
|
<tbody id="rename_to"> |
|
<tr> |
|
<td width="58" class="text-nowrap"> |
|
{% trans 'Operator' %} |
|
</td> |
|
<td width="102"> |
|
<select name="erel_opt" id="erel_opt"> |
|
<option value="--" selected="selected"> |
|
-- |
|
</option> |
|
<option value="=" > |
|
= |
|
</option> |
|
<option value=">"> |
|
> |
|
</option> |
|
<option value="<"> |
|
< |
|
</option> |
|
<option value=">="> |
|
>= |
|
</option> |
|
<option value="<="> |
|
<= |
|
</option> |
|
<option value="NOT"> |
|
NOT |
|
</option> |
|
<option value="IN"> |
|
IN |
|
</option> |
|
<option value="EXCEPT"> |
|
{% trans 'Except' %} |
|
</option> |
|
<option value="NOT IN"> |
|
NOT IN |
|
</option> |
|
</select> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="text-nowrap"> |
|
{% trans 'Value' %} |
|
<br> |
|
{% trans 'subquery' %} |
|
</td> |
|
<td> |
|
<textarea id="eQuery" cols="18"></textarea> |
|
</td> |
|
</tr> |
|
</tbody> |
|
<tbody> |
|
<tr> |
|
<td colspan="2" class="text-center text-nowrap"> |
|
<input type="button" id="ok_edit_where" class="btn btn-secondary butt" |
|
name="Button" value="{% trans 'OK' %}"> |
|
<input id="query_where_button" type="button" class="btn btn-secondary butt" name="Button" |
|
value="{% trans 'Cancel' %}"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
</td> |
|
<td class="frams6"> |
|
</td> |
|
</tr> |
|
<tr> |
|
<td class="frams4"> |
|
<div class="bor"> |
|
</div> |
|
</td> |
|
<td class="frams7"> |
|
</td> |
|
<td class="frams3"> |
|
</td> |
|
</tr> |
|
</tbody> |
|
</table> |
|
{# query details #} |
|
<div class="panel"> |
|
<div class="clearfloat"></div> |
|
<div id="ab"></div> |
|
<div class="clearfloat"></div> |
|
</div> |
|
<a class="trigger" href="#">{% trans 'Active options' %}</a> |
|
{% endif %} |
|
<div id="PMA_disable_floating_menubar"></div> |
|
<div class="modal fade" id="designerGoModal" tabindex="-1" aria-labelledby="designerGoModalLabel" aria-hidden="true"> |
|
<div class="modal-dialog modal-dialog-scrollable"> |
|
<div class="modal-content"> |
|
<div class="modal-header"> |
|
<h5 class="modal-title" id="designerGoModalLabel">{% trans 'Loading' %}</h5> |
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Cancel' %}"></button> |
|
</div> |
|
<div class="modal-body"></div> |
|
<div class="modal-footer"> |
|
<button type="button" class="btn btn-secondary" id="designerModalGoButton">{% trans 'Go' %}</button> |
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans 'Cancel' %}</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
<div class="modal fade" id="designerPromptModal" tabindex="-1" aria-labelledby="designerPromptModalLabel" aria-hidden="true"> |
|
<div class="modal-dialog modal-dialog-scrollable"> |
|
<div class="modal-content"> |
|
<div class="modal-header"> |
|
<h5 class="modal-title" id="designerPromptModalLabel">{% trans 'Loading' %}</h5> |
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="{% trans 'Cancel' %}"></button> |
|
</div> |
|
<div class="modal-body"></div> |
|
<div class="modal-footer"> |
|
<button type="button" class="btn btn-secondary" id="designerModalYesButton">{% trans 'Yes' %}</button> |
|
<button type="button" class="btn btn-secondary" id="designerModalNoButton">{% trans 'No' %}</button> |
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">{% trans 'Cancel' %}</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
{% if visual_builder %} |
|
{{ include('modals/build_query.twig', {'get_db': get_db}) }} |
|
{% endif %}
|
|
|