1) Allow the user to set the row limit and chart line width.
2) Zoom should only be applied to X-axis, not both.
3) On clicking the 'Generate' button, the chart should return to its original zoom level.
4) Negative values are not displayed.
refs #7485
- Added High Availability option
- Server group renamed to pgAdmin server group
- Removed the Private option from Networking otherwise, it would not be possible to connect the server from pgAdmin.
1. Warning/Confirm dialogs should be inside the query tool.
2. The Help button in View/Edit data should open the corresponding help page.
3. Disable execute options when query tool in transaction.
4. Grid not loading more than 10000 rows. react-data-grid issue, PR sent. Use a fork till then.
5. NOTICE messages should not be part of Notifier success popups.
Fixes#7350
1) In Dark mode > Replace/Find dialogue forward & reverse buttons are stuck to each other.
2) In Dark/High contrast mode > Checkbox is not visible for false value.
3) Wrap toolbar when size goes very small.
4) Replace functionality does not work when tried in sequence 2 times. Codemirror search is not cyclic. So, changes are made to always search from the start.
5) Replace all does not work when tried in sequence 2 times. Same reason as above.
6) Fix broken macros $SELECTION$ feature.
7) Make query history SQL readonly.
8) The Filter dialog save button should be disabled when opened.
1) Failed to fetch query history error sometimes.
2) In copy paste row, if a copied row has [null], then those are pasted as an empty string.
3) When Data output is empty, show an empty grid.
4) Schema diff generates a script button resulting in an empty window. Fixes#7306.
5) Detach the DataOutput panel > Try editing text cell > Text editor is hidden behind the data output panel
refs #6131
1) Find/Replace both opens the same dialogue box.(by clicking menu option)
2) Add New Server Connection > Server options keep loading(For multiple Server groups & should have some server)
3) Fixed CSS issues of slickgrid at various places.
4) C should be captial in ’<New connection…>'
5) In pop title for New Connection, all words should be capital.(Add new connection)
6) Explain > Analaysis tab > Column heading missing ROWS PLAN with cost & In explain only.
7) Explain > Analaysis tab > with cost enabled > Upward arrow size does not match with font of number. Arrow is little bigger than number.
8) Boolean default is not considered while ading new row.(try table from feature test defaults)
9) In query history , when not query history present, warning icon size big. Match it to warning message - No history found
10) Select table/db object > Open query tool from Tools menu > NOT FOUND error is shown. Existing issue, fixed.
11) Any cell just open by clicking it > Do NOT change any thing > Click Ok > Cell is shown as edited.
refs #6131
1) Add New Server Connection > Server options keep loading(For empty Server group).
2) After clicking indent/Unindent(for all operations) for large query option left as it is till operation completes
3) Check sign beside options in Execute Option/Copy Header is little bit big
4) In explain > Analysis tab does not show ROWS column
5) In explain > Explain > analysis previous explain output is NOT cleared. New rows are appended. Same applies to the statistics tab.
6) Update new query tool connection tool tip. Fixes#7289
7) Explain-Analyze > Loops column is empty.
8) Explain-Analyze with Verbose & Costs > in ROW X columns upward arrows are missing.
9) Explain-Analyze with all option checked > background colors are missing for timing.
10) Explain-Analyze > Additional bullet is added before Hash Cond.
11) Browser Tree > Filtered rows icon is not working.
12) Create table with timestamp and default value as function now() > Add new row > Enter mandatory columns except column where default value is function(now()) > Click Save > New row added but column with default value has value [default]. not updated to actual value. / Default values are not considered for any column while adding a new entry.
13) Disable execute options in View/Edit data.
14) The Boolean column always shows null.
15) In Query history Remove & Remove all buttons are stuck to each other.
16) On Remove all, the right panel is empty.
17) Create a column with boolean[]/ text[], Try to add a new entry from data grid, enter “” quotes > Click Ok > Now try edit cell > You can not change value.
18) In query history - Select queries are suffixed by ’Save Data’ icon
19) Edit any table with PK > Try to insert duplicate PK > Error thrown > Correct pK value > Still old error shown > Not able to add new entry (This works when focus is moved from edited cell)
20) Clicking arrows after opening dropdown options, does not collapse dropdown.
refs #6131
2) Added status bar to the Query Tool. Fixes#3253
3) Ensure that row numbers should be visible in view when scrolling horizontally. Fixes#3989
4) Allow removing a single query history. Refs #4113
5) Partially fixed Macros usability issues. Ref #6969
6) Fixed an issue where the Query tool opens on minimum size if the user opens multiple query tool Window quickly. Fixes#6725
7) Relocate GIS Viewer Button to the Left Side of the Results Table. Fixes#6830
8) Fixed an issue where the connection bar is not visible. Fixes#7188
9) Fixed an issue where an Empty message popup after running a query. Fixes#7260
10) Ensure that Autocomplete should work after changing the connection. Fixes#7262
11) Fixed an issue where the copy and paste row does not work if the first column contains no data. Fixes#7294
1) Add server mode validation in the binary path.
2) Updated preferences tree rendering to avoid using the ReactDOM render.
3) Updated CSS for keyboard shortcuts checkbox border makes it consistent with input box border.
4) Fixed jasmine test case and improved code coverage.
5) Fixed SonarQube issues.
6) Added validation to disable "Maximum column with" option if "Column sized by" option is set to "Column name" in Query Tool -> Result grid.
7) Updated documentation with the latest screenshots.
8) Correct typo in the documentation. Fixes#7261
refs #7149
- Masking the credentials input fields
- The loading symbol doesn't work while reloading the options in the select control
- Reduce the wizard opening timeout
- urllib library upgrade impacts host IP fetch
refs #7177
1) Immediately return this expression instead of assigning it to the temporary variable.
2) Extract this nested ternary operation into an independent statement.
3) Expected a `for-of` loop instead of a `for` loop with this simple iteration.
1) Boolean checks should not be inverted.
2) Review this redundant assignment.
3) Extract this nested ternary operation into an independent statement.
4) Unexpected empty function.
5) Immediately return this expression instead of assigning it to the temporary variable.
1) Focus is not visible while navigating through top navbar menu items(File, Object, Tools)
2) In preference dialog wherever access key is used for a shortcut declaration, unable to get out of the textbox.
3) Focus is not visible for the links on the dashboard
Fixes#7046
is set to True and AUTHENTICATION_SOURCES is the webserver. Fixes#6928
2) Fixed an issue where the existing server group is disappeared on rename it. Fixes#6930
1. File select control sets the value for all other to last selected file. Fixes#6814
2. Vacuum parameters-related issues. Fixes#6777
3. Exclusion removes all columns if one row is removed. Fixes#6771
2) The object is not selected/properties panel is not updated when the user moves to object with arrow keys. Fixes#6821
3) Object gets deselected after editing. Fixes#6824
1. Unable to change shared server switch.
2. DB restriction and schema restriction have an empty option.
3. File select input control does not allow manual text input.
4. In the Parameters tab if the value is a switch control, then an empty value error should not come.
5. Values for parameters should be reset on changing parameters.
6. Added a new key - helpMessageMode which can have a value similar to mode. It will show the help message if the mode is supported.
Fixes#6814
1. When attaching a partition, tables were not loading in the dropdown.
2. When adding a sub partition in a partition, collations were not loading in dropdown.
3. Fix some grid column widths in table node.
Fixes#6783
1. Unique constraint should not allow changing values for deferrable, deferred, included columns.
2. Primary keys should not allow changing values for deferrable, deferred, included columns.
3. Foreign keys should not allow changing match type. The referenced table name is empty.
4. Exclude - Column/Expression has incorrect values.
5. Save should not be enabled when Custom auto-vacuum is enabled but none of the parameters are edited.
Fixes#6777
1. Auto FK related fixes.
2. Properties tab not showing columns.
3. Toggle button is editable even if set to read-only.
4. Dropdown placeholder should be blank for read-only/disabled.
5. Input control help text color on a dark theme.
Fixes#6770
2) Default values not populated for inherited columns. The existing issue, API changed.
3) Options are not populated for Name in Column > Variable tab.
4) The empty check error message is changed from Label cannot be empty to Label in Collection cannot be empty for collections.
Fixes#6763
Following changes done for the framework:
- Framework for creating React based dynamic form view out of a pre-defined UI schema. Previously, it was based on Backform/Backbone.
- The new framework and components will use MaterialUI as the base. Previously, Bootstrap/Backform/jQuery components were used.
- The new code uses JSS instead of CSS since material UI and most modern React libraries also use JSS. In the future, this will allow us to change the theme in real-time without refresh.
- 90% code covered by 80-85 new jasmine test cases.
- Server group node UI Schema migration to new, with schema test cases.
- Server node UI Schema migration to new, with schema test cases.
- Database node UI Schema migration to new, with schema test cases.
- Few other UI changes.
Fixes#6130
2) Fixed an issue where the user is not able to create the subscription. Fixes#6230
3) Fixed a couple of issues raised during testing of logical replication.
1) Migrate from webpack 4 to webpack 5. This had a lot of breaking changes,
so updated multiple webpack plugins and changed the config accordingly.
2) Replaced iconfont-webpack-plugin with a more maintained webfonts-loader.
3) Replaced deprecated babel-eslint with @babel/eslint-parser.
4) Replaced optimize-css-assets-webpack-plugin with a more maintained css-minimizer-webpack-plugin.
5) Updated all other JS packages and made the required code changes.
Fixes#6207
1) After opening an existing project, the first table is already selected but the edit, clone, delete buttons are disabled.
2) ERD project title gets changed when 2 ERD projects are open & anyone of it edited.
3) Closing the ERD tab does not ask for a confirmation pop-up.
4) Shortcut for 'Show more/Fewer details' is missing.
5) Deleting the primary key does not delete associated links.
6) The long table & schema name are getting out of the box.
7) The long table name in the notes pop-up needs re-alignment.
8) The same table name present in ERD/canvas is allowed in Add Table dialogue. Added validation in the dialog.
9) Download image option is added, but it is not perfect yet. Image icons (table, schema, etc.) are not showing up.
10) Rename panel option should be disabled by default. It should be enabled for the tools which implement rename functionality.
11) The Toolbar is not visible in Safari for the ERD tool.
refs #1802
2) Remove extra line after Manage Macros menu while clearing all macros. Fixes#5906
3) Ensure that 'Clear All Rows' should not work if there is no existing macro available and the user does not specify any value. Fixes#5907
4) Fixed an issue where the server is disconnected error message displayed if the user creates Macro with invalid SQL. Fixes#5929
RM-4232:
1. If the user adds a percentage (other than for placeholders) then it is stripped off.
2. Backslash is getting removed in the connection string if we provide the backslash(\) in placeholders or the database name contains it.
3. If the user added only spaces( )in placeholders it is not getting reset to default values.
RM-4230:
1. Rename panel option is not working in the debugger.
2. Added Rename panel for schema diff.
Fixes#4232#4230
1. Show servers with server groups in the dropdown.
2. Highlighted current selected connection in the new connection dropdown.
3. Notify the user before changing the connection.
refs #3794
1. Updated connection success message. (Added database name in the success message.)
2. Resolve issue of the mouse pointer and dropdown will show below the connection string only.
3. Added loader for both new connections and load existing connections.
4. Removed async: false for update connection.
refs #3794
will result in multiple rows. Fixes#5526
Fixed an old issue where quotes are not escaped when copying the cells.
As per CSV standards, if the string is in double quotes and there are
double quotes inside the string then they should be escaped with extra double-quotes.
1. Boolean checks should not be inverted.
2. The comma operator should not be used.
3. Arguments to built-in functions should match documented types.
4. Redundant pairs of parentheses should be removed.
5. A conditionally executed single line should be denoted by indentation,
6. A while loop should be used instead of a 'for' loop.
1) TypeError can be thrown as <variable_name> might be null or undefined here.
2) Unexpected duplicate "white-space".
3) Unexpected missing generic font family.
4) Unexpected shorthand "padding" after "padding-left".
Add Reverse Engineered and Modified SQL tests for pgAgent jobs. Fixes#4623
Fixed modified SQL issue while adding an exception in pgAgent job schedule. Fixes#5356
1) Copy table rows across two or more active query tool sessions.
2) Copied rows can be pasted multiple times without selecting a row in the query tool grid.
3) Adds an empty row at the end in the query tool grid after pasting rows.
1) Unable to add a user when there are many users. The dialog went blank. Fixed.
2) The error message did not have a close button. Fixed.
3) When clicked on the add button, then the cursor will focus on the email box of
the new row for convenience.
4) When the dialog opens, the cursor will focus on the search text box.
5) By default, the "User" role will be selected when adding a new user.
Also removed an empty option in the roles dropdown.
6) When the search filter is applied and we try to add an already existing user, the
validation is done only on the filtered data and not on all the users' data.
Fixes#5227
- fixed gettext usage with .format() only for original text with %s
- fixed typos
- fixed translation yes/no buttons in the dialog.
- improved translating sentences without "connecting" words (eg. see web/pgadmin/dashboard/static/js/dashboard.js,
word 'cancel' needs to be translated in the Czech language as 'zrušit' but in another sentence as 'zrušení')
- added gettext for text translations.
1) Added entry for .scss to change the shadow of 'ajs-close' button.
2) allow the user to use the keyboard to update the Backgrid cell DateTime picker control.
1) Fixed usage gettext('') instead of _('') in javascript files.
2) Fixed usage gettext('') instead of `${gettext('')}` in javascript files,
because "pybabel extract" not support extracting from this syntax.
1) Aria-label additions at few missing places.
2) Label additions with 'sr-only' class where hidden labels required.
3) Converted label to span to solve accessibility error.
Fixes#4608
1) Screen reader to read elements in radio modern control.
2) Aria-label additions at few missing places.
3) Radiocontrol to have different ids for each option.
Improve the style of the highlighted code after query execution for Dark mode. Fixes#4996.
Changed background pattern for geometry viewer to use #fff for all themes. Fixes#5077
Changed the color of selected and hovered item for Select2 dropdown, also tweak the appearance of the tags in multi-select boxes. Fixes#4955
Fixed Firefox monospaced issue by updating the font to the latest version. Fixes#5184
Allow screen-reader to identify the alert errors. Fixes#4763
Added role alertdialog for confirm and alert dialog.
Added role status for all status bars/banners.
Added role alert for error bars.
Added aria-labelledby for charts on each dashboard.
Added tabindex for each chart so that it is navigable using tab key.
Currently supported objects are Table, View, Materialized View, Function and Procedure.
Backend comparison of two schemas implemented by: Akshay Joshi
Fixes#3452.
With the change of data adapter, we have configured adapters for tags and tokenizers.
We also renamed the method onDemandLoad to showOnScroll to avoid confusion.
2) Fixed minor issue where we use dialog tab navigator keyboard shortcut only on visible tabs.
3) Fixed an issue where Zoom in, Zoom out, Zoom to original and Download button should not blur the focus after a click on them.
Initial patch sent by Murtuza Zabuawala.
2) Fix server connection drops out issue in query tool. Fixes#4818
3) Fix VPN network disconnect issue where pgAdmin4 hangs on expanding the Servers node. Fixes#4926.
4) Ensure that the Servers collection node should expand independently of server connections. Fixes#4933.
Set the default connection timeout to 10 seconds instead of 0.
1) Suppress ESC key presses in Alertify dialogues when the come from Select2 controls (It also closes the alertify dialog when user try to close Select2 using ESC key)
2) Do not allow Tabindex focus on Switch control when it is disbaled
3) Tab keyboard shortcut navigation does not work in wcDocker iframe.
Fixes#4935
2) Added Dark(Beta) UI Theme option. Fixes#3741.
3) Fix an issue where a black arrow-kind image is displaying at the background of browser tree images. Fixes#4171
Changes include:
1) New theme option in preferences - Miscellaneous -> Themes. You can select the theme from the dropdown.
It also has a preview of the theme just below the dropdown. Note that, a page refresh is needed to apply changes.
On saving, a dialog appears to ask for refresh.
2) You can create your own theme and submit to hackers. README is updated to help you create a theme. Theme will be available only after the bundle.
3) Correction of SASS variables at few places and few other CSS corrections.
4) Added iconfont-webpack-plugin, which will convert all the SVG files(monochrome) used as icons for buttons to font icons.
This will allow us to change the color of the icon by using CSS color property.
5) All the .css files will bundle into a separate file now- pgadmin.style.css. This will help reduce the size of
theme CSS files as CSS in .css files will not change with the change of SASS variables.
Changes include:
1) Remove underscore-string and sprintf-js packages as we were using only %s. Instead, added a function to do the same. Also changed gettext to behave like sprintf directly.
2) backgrid.sizeable.columns was not used anywhere, removed. @babel/polyfill is deprecated, replaced it with core-js.
3) Moved few css to make sure they get minified and bundled.
4) Added Flask-Compress to send static files as compressed gzip. This will reduce network traffic and improve initial load time for pgAdmin.
5) Split few JS files to make code reusable.
6) Lazy load few modules like leaflet, wkx is required only if geometry viewer is opened. snapsvg loaded only when explain plan is executed. This will improve sqleditor initial opening time.
Reviewed By: Khushboo Vashi
Fixes#4701
Look 'n' Feel and implementation logic are inspired from
'http://explain.depsez.com'.
It now creates three tabs under the 'Explain' panel when executing a
query using the Explain Analyze/Explain button from the toolbar of the
Query tool.
Graphical
---------
-> Graphical Explain Plan
Analysis
--------
-> Table to show details of the explain plan analyse.
-> Each row represents the statistics per Explain Plan Node
-> It may contains columns like node information, exclusive timing
(time spent for this explain node excluding the child nodes),
inclusive timing, actual rows, plan rows,
rowsx (misestimation between planned vs actual rows), loop.
-> Background color of exclusive, inclusive, rows changes based on
their values.
i.e.
If Percentage of exclusive, and inclusive timings of total query time
is:
> 90 - Red Color
> 50 - Orange (Between Red & Yellow Color)
> 10 - Yellow color
If planner misestimation for the rows is
> 1000 times - Red Color
> 100 times - Orange (Between Red & Yellow Color)
> 10 times - Yellow Color
Also - if actual rows <= planned rows then it shows up arrow, else it
shows down arrow.
Statistics
----------
-> It contains a HTML table for the statistics per Node Type, and
a HTML table for the statistics per table.
Reviewed by: Akshay Joshi
workaround rendering speed issues in CodeMirror with very large scripts.
Fixes#4631.
Re-arrange editor options in the Preferences dialogue to tidy things up.
Attached is a tiny but very effective patch to improve the speed of
finding a node using path (used internally).
If you right click or just click on a node, internally the node is
traversed using its path. But currently, it compares with the path of
all the open nodes to find a match.
So if you 1000+ tables and the tables node is open and if you click on
a view, the view path is compared with all the 1000+ tables (and with
any other open nodes above) before arriving to path. You're at bad luck
if you have more open servers above.
Code is changed to check if the path of node to be found starts with the
current node path. If it doesn't match, why bother the children's of
current node.
This change will not show much effect for small data, but it does matter
for large servers.
One more change is to remove unnecessary calls to find node and use the
data available with Main Menu -> Object to enable/disable node context
menu items.
Ensure columns can be created when they are IDENTITY fields with the CYCLE option enabled. Fixes#4496
Ensure purely numeric comments can be saved on new columns. Fixed#4497
2) Fix an issue where Explain and Explain Analyze are not working, it's regression of #1760. Fixes#4484
3) Fix an issue where Filter toolbar button is not working in view/edit data, it's regression of keyboard navigation. Fixes#4485
When a query is run in the Query Tool, check if the source of the columns
can be identified as being from a single table, and that we have all
columns that make up the primary key. If so, consider the resultset to
be editable and allow the user to edit data and add/remove rows in the
grid. Changes to data are saved using SAVEPOINTs as part of any
transaction that's in progress, and rolled back if there are integrity
violations, without otherwise affecting the ongoing transaction.
Implemented by Yosry Muhammad as a Google Summer of Code project.
2) Ensure that on clicking Delete button should not delete rows immediately from the database server,
it should be deleted when Save button will be clicked. Fixes#2392