Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added a flag to toggle between sql editor buttons #19147

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion resources/templates/sql/query.twig
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<div id="querymessage"></div>

<div class="btn-toolbar" role="toolbar">
{% if columns_list is not empty %}
{% if columns_list is not empty and not hideSQLEditorControls %}
<div class="btn-group me-2" role="group">
<input type="button" value="SELECT *" id="selectall" class="btn btn-secondary button sqlbutton">
<input type="button" value="SELECT" id="select" class="btn btn-secondary button sqlbutton">
Expand Down
22 changes: 22 additions & 0 deletions src/Config/Settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -899,6 +899,16 @@
*/
public bool $ShowDatabasesNavigationAsTree;

/**
* In the navigation panel, hides the SQL buttons in the editor
*
* ```php
* $cfg['hideSQLEditorControls'] = true;
* ```
*
*/
public bool $hideSQLEditorControls;

/**
* maximum number of first level databases displayed in navigation panel
*
Expand Down Expand Up @@ -2680,6 +2690,7 @@
$this->CaptchaSiteVerifyURL = $this->setCaptchaSiteVerifyURL($settings);
$this->enable_drag_drop_import = $this->setEnableDragDropImport($settings);
$this->ShowDatabasesNavigationAsTree = $this->setShowDatabasesNavigationAsTree($settings);
$this->hideSQLEditorControls = $this->setHideSQLEditorControls($settings);
$this->FirstLevelNavigationItems = $this->setFirstLevelNavigationItems($settings);
$this->MaxNavigationItems = $this->setMaxNavigationItems($settings);
$this->NavigationTreeEnableGrouping = $this->setNavigationTreeEnableGrouping($settings);
Expand Down Expand Up @@ -2820,10 +2831,10 @@
$this->FirstDayOfCalendar = $this->setFirstDayOfCalendar($settings);
}

/** @psalm-return SettingsType */

Check failure on line 2834 in src/Config/Settings.php

View workflow job for this annotation

GitHub Actions / analyse-php (8.1)

InvalidReturnType

src/Config/Settings.php:2834:23: InvalidReturnType: The declared return type 'array{ActionLinksMode: 'both'|'icons'|'text', AllowArbitraryServer: bool, AllowSharedBookmarks: bool, AllowThirdPartyFraming: 'sameorigin'|bool, AllowUserDropDatabase: bool, ArbitraryServerRegexp: string, AuthLog: string, AuthLogSuccess: bool, AvailableCharsets: array<array-key, string>, BZipDump: bool, BrowseMIME: bool, BrowseMarkerEnable: bool, BrowsePointerEnable: bool, CSPAllow: string, CaptchaApi: string, CaptchaCsp: string, CaptchaLoginPrivateKey: string, CaptchaLoginPublicKey: string, CaptchaMethod: 'checkbox'|'invisible', CaptchaRequestParam: string, CaptchaResponseParam: string, CaptchaSiteVerifyURL: string, CharEditing: 'input'|'textarea', CharTextareaCols: int<1, max>, CharTextareaRows: int<1, max>, CheckConfigurationPermissions: bool, CodemirrorEnable: bool, CompressOnFly: bool, Confirm: bool, Console: array{AlwaysExpand: bool, CurrentQuery: bool, DarkTheme: bool, EnterExecutes: bool, GroupQueries: bool, Height: int<1, max>, Mode: 'collapse'|'info'|'show', Order: 'asc'|'desc', OrderBy: 'count'|'exec'|'time', StartHistory: bool}, ConsoleEnterExecutes: bool, CookieSameSite: 'Lax'|'None'|'Strict', DBG: array{demo: bool, simple2fa: bool, sql: bool, sqllog: bool}, DefaultConnectionCollation: string, DefaultForeignKeyChecks: 'default'|'disable'|'enable', DefaultFunctions: array<string, string>, DefaultLang: string, DefaultQueryDatabase: string, DefaultQueryTable: string, DefaultTabDatabase: string, DefaultTabServer: string, DefaultTabTable: string, DefaultTransformations: array{Bool2Text: array{0: string, 1: string}, DateFormat: array{0: int<0, max>, 1: string, 2: 'local'|'utc'}, External: array{0: int, 1: string, 2: int, 3: int}, Hex: array{0: int<0, max>}, Inline: array{0: int<0, max>, 1: int<0, max>, wrapper_link: null|string, wrapper_params: array<array-key, string>}, PreApPend: array{0: string, 1: string}, Substring: array{0: int, 1: 'all'|int, 2: string}, TextImageLink: array{0: null|string, 1: int<0, max>, 2: int<0, max>}, TextLink: array{0: null|string, 1: null|string, 2: bool|null}}, DisableMultiTableMaintenance: bool, DisableShortcutKeys: bool, DisplayServersList: bool, EnableAutocompleteForTablesAndColumns: bool, ExecTimeLimit: int<0, max>, Export: array{as_separate_files: bool, asfile: bool, charset: string, codegen_format: 0|1, codegen_structure_or_data: 'data'|'structure'|'structure_and_data', compression: 'gzip'|'none'|'zip', csv_columns: bool, csv_enclosed: string, csv_escaped: string, csv_null: string, csv_removeCRLF: bool, csv_separator: string, csv_structure_or_data: 'data'|'structure'|'structure_and_data', csv_terminated: string, excel_columns: bool, excel_edition: 'mac_excel2003'|'mac_excel2008'|'win', excel_null: string, excel_removeCRLF: bool, excel_structure_or_data: 'data'|'structure'|'structure_and_data', file_template_database: string, file_template_server: string, file_template_table: string, format: string, htmlword_columns: bool, htmlword_null: string, htmlword_structure_or_data: 'data'|'structure'|'structure_and_data', json_pretty_print: bool, json_structure_or_data: 'data'|'structure'|'structure_and_data', json_unicode: bool, latex_caption: bool, latex_columns: bool, latex_comments: bool, latex_data_caption: string, latex_data_continued_caption: string, latex_data_label: string, latex_mime: bool, latex_null: string, latex_relation: bool, latex_structure_caption: string, latex_structure_continued_caption: string, latex_structure_label: string, latex_structure_or_data: 'data'|'structure'|'structure_and_data', lock_tables: bool, mediawiki_caption: bool, mediawiki_headers: bool, mediawiki_structure_or_data: 'data'|'structure'|'structure_and_data', method: 'custom'|'custom-no-form'|'quick', ods_columns: bool, ods_null: string, ods_structure_or_data: 'data'|'structure'|'structure_and_data', odt_columns: bool, odt_comments: bool, odt_mime: bool, odt_null: string, odt_relation: bool, odt_structure_or_data: 'data'|'structure'|'structure_and_data', onserver: bool, onserver_overwrite: bool, pdf_report_title: string, p
public function asArray(): array
{
return [

Check failure on line 2837 in src/Config/Settings.php

View workflow job for this annotation

GitHub Actions / analyse-php (8.1)

InvalidReturnStatement

src/Config/Settings.php:2837:16: InvalidReturnStatement: The inferred type 'array{ActionLinksMode: 'both'|'icons'|'text', AllowArbitraryServer: bool, AllowSharedBookmarks: bool, AllowThirdPartyFraming: 'sameorigin'|bool, AllowUserDropDatabase: bool, ArbitraryServerRegexp: string, AuthLog: string, AuthLogSuccess: bool, AvailableCharsets: array<array-key, string>, BZipDump: bool, BrowseMIME: bool, BrowseMarkerEnable: bool, BrowsePointerEnable: bool, CSPAllow: string, CaptchaApi: string, CaptchaCsp: string, CaptchaLoginPrivateKey: string, CaptchaLoginPublicKey: string, CaptchaMethod: 'checkbox'|'invisible', CaptchaRequestParam: string, CaptchaResponseParam: string, CaptchaSiteVerifyURL: string, CharEditing: 'input'|'textarea', CharTextareaCols: int<1, max>, CharTextareaRows: int<1, max>, CheckConfigurationPermissions: bool, CodemirrorEnable: bool, CompressOnFly: bool, Confirm: bool, Console: array{AlwaysExpand: bool, CurrentQuery: bool, DarkTheme: bool, EnterExecutes: bool, GroupQueries: bool, Height: int<1, max>, Mode: 'collapse'|'info'|'show', Order: 'asc'|'desc', OrderBy: 'count'|'exec'|'time', StartHistory: bool}, ConsoleEnterExecutes: bool, CookieSameSite: 'Lax'|'None'|'Strict', DBG: array{demo: bool, simple2fa: bool, sql: bool, sqllog: bool}, DefaultConnectionCollation: string, DefaultForeignKeyChecks: 'default'|'disable'|'enable', DefaultFunctions: array<string, string>, DefaultLang: string, DefaultQueryDatabase: string, DefaultQueryTable: string, DefaultTabDatabase: 'operations'|'search'|'sql'|'structure', DefaultTabServer: 'databases'|'privileges'|'status'|'variables'|'welcome', DefaultTabTable: 'browse'|'insert'|'search'|'sql'|'structure', DefaultTransformations: array{Bool2Text: array{0: string, 1: string}, DateFormat: array{0: int<0, max>, 1: string, 2: 'local'|'utc'}, External: array{0: int, 1: string, 2: int, 3: int}, Hex: array{0: int<0, max>}, Inline: array{0: int<0, max>, 1: int<0, max>, wrapper_link: null|string, wrapper_params: array<array-key, string>}, PreApPend: array{0: string, 1: string}, Substring: array{0: int, 1: 'all'|int, 2: string}, TextImageLink: array{0: null|string, 1: int<0, max>, 2: int<0, max>}, TextLink: array{0: null|string, 1: null|string, 2: bool|null}}, DisableMultiTableMaintenance: bool, DisableShortcutKeys: bool, DisplayServersList: bool, EnableAutocompleteForTablesAndColumns: bool, ExecTimeLimit: int<0, max>, Export: array{as_separate_files: bool, asfile: bool, charset: string, codegen_format: 0|1, codegen_structure_or_data: 'data'|'structure'|'structure_and_data', compression: 'gzip'|'none'|'zip', csv_columns: bool, csv_enclosed: string, csv_escaped: string, csv_null: string, csv_removeCRLF: bool, csv_separator: string, csv_structure_or_data: 'data'|'structure'|'structure_and_data', csv_terminated: string, excel_columns: bool, excel_edition: 'mac_excel2003'|'mac_excel2008'|'win', excel_null: string, excel_removeCRLF: bool, excel_structure_or_data: 'data'|'structure'|'structure_and_data', file_template_database: string, file_template_server: string, file_template_table: string, format: string, htmlword_columns: bool, htmlword_null: string, htmlword_structure_or_data: 'data'|'structure'|'structure_and_data', json_pretty_print: bool, json_structure_or_data: 'data'|'structure'|'structure_and_data', json_unicode: bool, latex_caption: bool, latex_columns: bool, latex_comments: bool, latex_data_caption: string, latex_data_continued_caption: string, latex_data_label: string, latex_mime: bool, latex_null: string, latex_relation: bool, latex_structure_caption: string, latex_structure_continued_caption: string, latex_structure_label: string, latex_structure_or_data: 'data'|'structure'|'structure_and_data', lock_tables: bool, mediawiki_caption: bool, mediawiki_headers: bool, mediawiki_structure_or_data: 'data'|'structure'|'structure_and_data', method: 'custom'|'custom-no-form'|'quick', ods_columns: bool, ods_null: string, ods_structure_or_data: 'data'|'structure'|'structure_and_data', odt_columns: bool, odt_comments: bool, odt_mime: bool, odt_null: string, odt_relation: bool, odt_structure_o
'PmaAbsoluteUri' => $this->PmaAbsoluteUri,
'AuthLog' => $this->authLog,
'AuthLogSuccess' => $this->authLogSuccess,
Expand Down Expand Up @@ -3016,6 +3027,7 @@
'Console' => $this->Console->asArray(),
'DefaultTransformations' => $this->DefaultTransformations->asArray(),
'FirstDayOfCalendar' => $this->FirstDayOfCalendar,
'hideSQLEditorControls' => $this->hideSQLEditorControls,
];
}

Expand Down Expand Up @@ -3678,6 +3690,16 @@
return (bool) $settings['ShowDatabasesNavigationAsTree'];
}

/** @param array<int|string, mixed> $settings */
private function setHideSQLEditorControls(array $settings): bool
{
if (! isset($settings['hideSQLEditorControls'])) {
return false;
}

return (bool) $settings['hideSQLEditorControls'];
}

/**
* @param array<int|string, mixed> $settings
*
Expand Down
1 change: 1 addition & 0 deletions src/SqlQueryForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ public function getHtml(
'can_convert_kanji' => Encoding::canConvertKanji(),
'is_foreign_key_check' => ForeignKey::isCheckEnabled(),
'allow_shared_bookmarks' => $this->config->settings['AllowSharedBookmarks'],
'hideSQLEditorControls' => $this->config->get('hideSQLEditorControls'),
]);
}

Expand Down
1 change: 1 addition & 0 deletions tests/unit/Controllers/Table/SqlControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ public function testSqlController(): void
'bookmarks' => [],
'can_convert_kanji' => false,
'is_foreign_key_check' => true,
'hideSQLEditorControls' => false,
]);

$request = ServerRequestFactory::create()->createServerRequest('GET', 'http://example.com/')
Expand Down