Commit Graph

1246 Commits (master)

Author SHA1 Message Date
Harshal Dhumal 66341e6947 Add infrastructure for managing configurable keyboard shortcuts. 2018-01-25 12:49:06 +00:00
Murtuza Zabuawala 97760d65c2 Add keyboard navigation in Query tool module via Tab/Shift-Tab key. Fixes #2896
Note:
1) Once the keyboard shortcut infrastructure is ready we will add generic shortcut to focus out from CodeMirror editor and set foucs to next element, Right now there is no way of doing this, For testing purpose you can manually focus out from CodeMirror and click on data output panel to continue navigate using Tab key.
2) As of now inner panel's are not getting focused on Tab/Shift-Tab keys but once RM#2895 patch gets committed it will start working automatically as it's inherited code which will add tabindex tag automatically on each newly created wcDocker panel.
2018-01-25 12:27:13 +00:00
Murtuza Zabuawala 0e41b3364b Support keyboard navigation in the debugger. Fixes #2897
In passing, fix injection of variable values. Fixes #2981
2018-01-23 11:58:10 +00:00
Dave Page 2b1c887945 Add missing comma to appease the linter 2018-01-22 11:28:04 +00:00
Khushboo Vashi ca80cfa04a Ensure clickable images/buttons have appropriate tooltips for screen readers. Fixes #2904 2018-01-22 10:37:56 +00:00
Ashesh Vashi 404f1cc8ef Fixing the javascript file after running pga_eslint.js script 2018-01-17 13:24:25 +05:30
Dave Page 55c2ab0b24 Fix typo in string. 2018-01-16 16:41:43 +05:30
Murtuza Zabuawala 8520871bc6 Monitor connection and transaction status in the query tool. Fixes #2475 2018-01-12 14:34:39 +00:00
Ashesh Vashi c32eb6bd37 Fixed the warnings/errors reported by eslint for all the static
javascripts.
2018-01-12 13:00:14 +05:30
Dave Page 89821c0d19 Update copyright notices for 2018. 2018-01-05 10:42:50 +00:00
Murtuza Zabuawala 0810c681c3 Ensure the switch animation is consistent on the table dialogue and avoid displaying an error incorrectly. Fixes #2624 2018-01-03 15:32:44 +00:00
Murtuza Zabuawala c15d814268 Clear the messages tab when running EXPLAIN/EXPLAIN ANALYZE. Fixes #2974 2018-01-03 15:19:56 +00:00
Murtuza Zabuawala 937984f2dc Don't un-comment code with alt+. in the query tool. It's only supposed to respond to ctrl/cmd+. Fixes #2769 2017-12-13 15:58:00 +00:00
Harshal Dhumal 55254a649f Re-hash the way that we handle rendering of special types such as arrays. Fixes #2782. Fixes #2822. 2017-12-13 11:53:27 +00:00
Murtuza Zabuawala f5718b9d56 Misc fixes for the pgAgent module:
1) User was allowed to enter start date ahead of end date while scheduling a job. Fixes #2921

2) Datetime picker was not displaying in the grid (sub-node collection control). Fixes #1749

3) Fixed UI issue where validation error was not displaying properly for Datetime control.
2017-12-06 12:25:45 +09:00
Ashesh Vashi d54c35d74f Fixing the lint error messages in javascript using 'eslint --fix'
command.
2017-11-30 13:01:41 +05:30
Murtuza Zabuawala 362bd15c8e Format JSON/JSONB nicely when displaying it in the grid editor pop-up. Fixes #2748 2017-11-28 14:21:31 +00:00
Murtuza Zabuawala 930dd8af1f Some browsers don't properly support tri-state checkboxes, so create our own control to handle true/false/null. Fixes #2848 2017-11-21 17:22:25 +00:00
Murtuza Zabuawala b284572afe Allow connections to be coloured in the treeview and query tool. Fixes #1383. Fixes #2802 2017-11-21 16:28:01 +00:00
Harshal Dhumal 9212699936 When selecting an SSL cert or key, update only the expected path in the UI, not all of them. Fixes #2760. Fixes #2867 2017-11-21 15:59:44 +00:00
Murtuza Zabuawala a85538a1fc Remove the artificial limit of 4000 characters from text areas. Fixes #2877 2017-11-21 11:02:21 +00:00
Khushboo Vashi 0c566f132e Allow configuration of CSV and clipboard formatting of query results. Fixes #2781 2017-11-20 13:50:47 +00:00
Alexander Lakhin 187ab22d90 Further missing translation fixes. Stats now:
1481 of 1831 messages (80%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1694 of 1831 messages (92%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1748 of 1831 messages (95%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1750 of 1831 messages (95%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1436 of 1831 messages (78%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-06 19:49:20 -05:00
Alexander Lakhin f15f46592a Tag some translations that were not, well, tagged. Current stats:
1481 of 1777 messages (83%) translated in pgadmin/translations/de/LC_MESSAGES/messages.po
1694 of 1777 messages (95%) translated in pgadmin/translations/ja/LC_MESSAGES/messages.po
1472 of 1777 messages (82%) translated in pgadmin/translations/pl/LC_MESSAGES/messages.po
1750 of 1777 messages (98%) translated in pgadmin/translations/ru/LC_MESSAGES/messages.po
1436 of 1777 messages (80%) translated in pgadmin/translations/zh/LC_MESSAGES/messages.po
2017-11-05 08:32:26 -05:00
Dave Page b2186db562 Revert "Fix a number of cases where strings were not properly marked for translation."
This reverts commit 1f23838a4c due to unintended side
effects it caused - specifically, expanding Databases on the treeview displayed
Servers again
2017-11-03 16:45:20 +00:00
Alexander Lakhin 1f23838a4c Fix a number of cases where strings were not properly marked for translation. 2017-11-03 13:10:42 +00:00
Alexander Lakhin 9be1364d1a Various string improvements and fixes. 2017-11-01 12:58:19 +00:00
Murtuza Zabuawala 0cb57848f8 Ensure auto-indent honours the spaces/tabs config setting. Fixes #2780 2017-10-16 15:37:03 +01:00
Harshal Dhumal 30e7016077 Changed array representation and formatting for the data types in Query Tool and View Data. Fixes #2671 2017-09-18 12:07:15 +05:30
Murtuza Zabuawala d5f60e1a47 Fix layout of password prompt dialogue. Fixes #2684 2017-09-07 16:27:02 +01:00
Surinder Kumar c4393a7795 Fix Copy so it still works after query results have been copied. Fixes #2637 2017-08-31 14:50:39 +01:00
Akshay Joshi 47cf874460 1) Fixed error in alertify.pgNotifier when server connection is lost.
2) Change styling of alertify.pgNotifier as we did for success, error and info.
2017-08-31 18:02:03 +05:30
Murtuza Zabuawala 74db837417 Allow queries to be cancelled from the dashboard, and display additional info in the subnode control. Fixes #2597 2017-08-25 16:57:33 +01:00
Surinder Kumar cb9a05a7e7 Datetimepicker will expand from bottom instead of Top, because of that user won't be able to select start and end time properly. Fixes #2656 2017-08-23 11:26:24 +05:30
Sarah McAlear b585063a26 Refactor keyboard shortcut functions in the query tool. Fix some incorrect keycodes and update docs.
Initial work by Sarah & Violet @ Pivotal, with additional tweaks by Murtuza @ EDB.
2017-08-21 15:27:29 +01:00
Violet Cheng d527769bf8 Extract the generate_url(..) function from node.js, and collection.js 2017-08-17 21:43:07 +05:30
Murtuza Zabuawala e9b80dae9c User can not add New Server through Quick links. Fixes #2634 2017-08-17 18:14:06 +05:30
Khushboo Vashi c4ca781ce2 Fixed some UX issue with the Import/Export tool.
- Couldn't click on the filename control once gets an error.
- Encoding is not in alphabetical order.
2017-08-09 16:52:43 +05:30
Ashesh Vashi 845025db8f Some cosmetic changes.
- Loading 'pgadmin' as 'sources/pgadmin', as found under the 'sources'
  reference directory to be consistent with other files.
- Removed the 'pgadmin' reference from the base.html template.
- Renamed 'pgadmin.slickgrid.editors.js', and
  'pgadmin.slickgrid.formatters.js' as 'editors.js', and 'formatters.js'
  respectively, as they're already in the 'pgadmin/static/js/slickgrid'
  directory.
- Removed the duplicate entry of 'translations' from the webpack.shim.js
2017-08-09 16:52:12 +05:30
Akshay Joshi e418cb8387 Changed the mapping of cell from 'numeric' to 'integer' for integer control as numeric cell has been removed from the code. Fixes #2631 2017-08-07 14:02:59 +05:30
Akshay Joshi e506fa1dbe Improved alertify notification logic. Remove AlertifyWrapper class and extend notification methods in alertify itself. 2017-07-31 18:59:44 +05:30
Surinder Kumar 6d5417709c Moved the javascripts of different modules from 'templates' to 'static' directory.
Moving the javascripts for the following modules:
 - About
 - Browser nodes
 - Dashboard
 - FileManager
 - Vendor/snap.svg
 - Preferences
 - Settings
 - Backup
 - Datagrid
 - Debugger
 - Sqleditor
 - Grant Wizard
 - Import & Export
 - Maintenance
 - Restore and
 - User Management
2017-07-27 17:25:08 +05:30
Khushboo Vashi d1e7254fbd Handle control visibility properly in javascript strict mode. 2017-07-26 12:55:46 +01:00
Murtuza Zabuawala 1fa9648a21 Update keyboard shortcuts per discussion. Also, make the labels platform sensitive. 2017-07-26 12:50:42 +01:00
Murtuza Zabuawala 617e9dbb3a Allow queries to be cancelled from the dashboards. Fixes #1812 2017-07-24 12:13:24 +01:00
Atul Sharma 70418144cf Add a field to the Server Dialogue allowing users to specify a subset of databases they'd like to see in the treeview. Fixes #1918 2017-07-21 12:44:57 +01:00
Sarah McAlear 86dc1e81f1 Move Query Tool keyboard shortcut code into a new module and add tests. 2017-07-20 22:22:25 +01:00
Harshal Dhumal 54882e061c Don't attempt to render binary data in the query tool result grid. Fixes #2080. Fixes #2074. 2017-07-20 13:09:47 +01:00
Surinder Kumar b90d368ee7 Resolve an issue where collection nodes sometimes wouldn't sort properly. 2017-07-18 16:31:05 +01:00
Surinder Kumar 4a91bcde30 Webpack all the things! Fixes #2135
This significantly speeds up loading of the application; in an average of 3 tests, v1.6
loaded in 11.5s in the runtime on a Mac, whilst the webpacked version of the code
loaded in 5.53s.
2017-07-18 15:13:17 +01:00
Harshal Dhumal fc78202600 Fix clear history. 2017-07-07 15:51:06 +01:00
Murtuza Zabuawala b211eb199c Improve styling for alerts by highlighting the icon. 2017-07-04 12:03:32 +01:00
Harshal Dhumal 1977a5fcda Fix clipboard handling with large datasets. Fixes #2489 2017-07-03 11:19:02 +01:00
Joao Pedro De Almeida Pereira f2d2075d81 Update alertify alerts to use the styling defined in the styleguide (missed some files in the original commit). 2017-06-30 10:23:12 +01:00
Harshal Dhumal 2d65312910 Improve speed of Select All in the results grid. Fixes #2522 2017-06-30 09:54:31 +01:00
Akshay Joshi c98b64fd82 1) Edit cellEditing function, in some cases grid object is undefined.
2) Modify SubNodeCollectionControl, so that user can pass custom backgrid row.
3) Handling of visible parameter in SubNodeCollectionControl.
4) Customise title and delete message for Delete Cell.
5) Added Backgrid.Extension.Select2DepCell and moved Backgrid.Extension.StringDepCell from user management to backgrid.pgadmin.js.
2017-06-29 19:01:29 +05:30
Joao Pedro De Almeida Pereira 7f55412059 Overhaul the query history tab to allow browsing of the history and full query text. Fixes #2282
Patch by Joao and the team at Pivotal.
2017-06-27 10:55:57 -04:00
Murtuza Zabuawala 1b49bb8b22 Add preferences to enable brace matching and brace closing in the SQL editors. Fixes #2513 2017-06-27 09:57:38 -04:00
Harshal Dhumal c65158312d Use on-demand loading for results in the query tool. Fixes #2137
With a 27420 row query, pgAdmin III runs the query in 5.873s on my laptop. pgAdmin 4 now takes ~1s.
2017-06-27 09:03:04 -04:00
Matthew Kleiman 9af29364c7 Fix cell selection window alignment for the updated SlickGrid. 2017-06-23 09:37:58 +01:00
Matthew Kleiman 94aa5487fb Update Slickgrid to 2.3.7. As this version includes all the features we need, it can be moved out of the vendor directory and we'll use yarn to pull it in. 2017-06-23 09:35:56 +01:00
Khushboo Vashi 25282f3094 Additional preference fix. 2017-06-22 14:55:45 +01:00
Khushboo Vashi 67fd119de8 Maintain a client-side cache of preference values, populated using an async call. Fixes #2487 2017-06-21 17:09:59 +01:00
Surinder Kumar 2a87585665 Fix script options which were inadvertently broken in the query tool tab naming patch. 2017-06-15 12:19:47 +01:00
Surinder Kumar fdc9eed514 Ensure text editors render in an appropriate place on the results grid. Fixes #2477 2017-06-14 12:18:27 +01:00
Shruti B Iyer 1208206bc0 Initial re-vamp of the History tab. 2017-06-13 09:50:41 +01:00
Shruti B Iyer f1acad85db Add a missing translation call. 2017-06-12 17:20:40 +01:00
Shruti B Iyer 3f4f8b9e77 Add linting support, and, well, lint. 2017-06-12 16:55:14 +01:00
Ashesh Vashi fd3ddbeafb Implementation of the client side 'url_for(...)' function.
Created a url_for function module to be used by different javascript
modules to use the same functionality of flask at client side.

A python module can expose the list of endpoints, used by its
javascripts, by overriding the 'get_exposed_url_endpoints(self)'
function.

In this patch, we have modified all the browser modules to use this
function. It will allow us to move the majority of the javascript
modules of browser nodes from templates directory to the static
directory.

TODO::
- Move these javascripts modules to the static directory.
- Use this function in all the applicable javascript modules.
  e.g. tools, miscellaneous modules
2017-06-12 12:01:25 +05:30
Surinder Kumar 49976b1934 Fine tune result grid column sizing now we don't have checkboxes. 2017-06-09 09:24:20 +01:00
Harshal Dhumal aa400cbc12 Fix integer/numeric validation on various dialogues. Fixes #2421 2017-06-08 14:59:26 +01:00
Sarah McAlear 01bfa88309 Improvements to the Query Results grid:
- Improve the UI
- Allow copy/paste from sets of rows, columns or arbitrary blocks of cells

Patch by Matt, Shruti, Joao and Sarah @ Pivotal

Fixes #2476
2017-06-08 13:31:36 +01:00
Surinder Kumar 2fddf750e6 Retain column sizing in the query tool results grid when the same query is re-run multiple times in a row. Fixes #1971 2017-06-08 12:41:56 +01:00
George Gelashvili 8d8e7dab3c Extract row staging into it's own module with tests. 2017-06-07 14:17:10 +01:00
Ashesh Vashi ae80976689 Using the client-side translation using the client-side 'gettext'
implementation.

This is the first step towards 'Avoid creating the javascript modules
using Jinja templates'.
2017-06-07 15:53:05 +05:30
Surinder Kumar b82e001478 Ensure that boolean checkboxes cycle values in the correct order. Fixes #2448 2017-06-06 11:29:18 +01:00
Surinder Kumar 1f26953504 Cleanup handling of default/null values when data editting. FIxes #2400 2017-05-27 14:51:02 -04:00
Murtuza Zabuawala aea0d93390 Hide menu options for creating objects, if the object type is set to hidden. Includes Jasmine tests. Fixes #2225 2017-05-12 12:10:46 +01:00
Surinder Kumar 4f9628ed43 Improve handling of nulls and default values in the data editor. Fixes #2257 2017-05-12 10:53:57 +01:00
Khushboo Vashi 94b7fc483a Fix sorting of sizes on the statistics views by sorting raw values and prettifying on the client side. Includes Jasmine tests for the prettyfying function. Fixes #2315 2017-05-08 11:29:13 +01:00
Matthew Kleiman d663d553c5 Allow column or row selection in the query tool. Fixes #2216 2017-04-18 13:28:45 +01:00
Murtuza Zabuawala a2a2b8b888 Ensure the query tool displays but does not render HTML returned by the server in the results grid. Fixes #2330. 2017-04-10 14:07:48 +01:00
Jonas Thelemann 65f21a8cd7 Replace all occurrences of "can not" with "cannot". 2017-04-05 13:38:14 +01:00
Sarah McAlear 1d27341e21 Fix translation extraction for new client side translations, and update catalogs. 2017-03-28 15:21:49 -04:00
Khushboo Vashi 8745417926 Fix ascending/descending sort order in backgrid while clicking on the headers. Fixes #2303 2017-03-28 09:19:24 -04:00
Dave Page 95f43d59b8 Revert "Ensure client-side translations are correctly extracted into the message templates."
This reverts commit 82bd97aed0.

There are still issues extracting with these changes.
2017-03-27 13:53:40 -04:00
Sarah McAlear 82bd97aed0 Ensure client-side translations are correctly extracted into the message templates. 2017-03-27 13:24:47 -04:00
Harshal Dhumal 720aefbe6f Select2Cell: Check if cell is in multiselect mode before setting default selection of multiple values. Fixes #2283 2017-03-23 10:45:42 +00:00
Atira Odhner ae0d8e89eb Fix the path to JS 2017-03-15 17:12:58 +00:00
Atira Odhner 172b41cba8 Refactor clipboard copying into a separate file for use outside the SQL Editor. 2017-03-15 17:11:11 +00:00
Atira Odhner 4445f9dd63 Add a mechanism for centralising JS translations, to avoid having to render many JS files with Jinja. 2017-03-15 17:10:22 +00:00
Harshal Dhumal 502c827697 Fix numeric control validation in nested schemas. Fixes #2241 2017-03-09 15:23:18 +00:00
Murtuza Zabuawala af499c0c9a Show the correct indeterminate state when editing new boolean values. Fixes #2218 2017-03-06 10:30:58 +00:00
Murtuza Zabuawala 480e00fddf Query tool efficiency.Convert the data as a 2D array instead of dict. Fixes #2036
Incremental back off when polling. Fixes #2038

Initial Patch By: Dave Page
2017-03-01 16:58:51 +05:30
Dave Page 3638d63330 Move pgadmin plugins for codemirror back out of the vendor area. 2017-02-27 13:18:28 +00:00
Sarah McAlear a0a31e55ae Move 3rd party client code into vendor/ directories for ease of maintenance. 2017-02-24 17:01:21 +00:00
Surinder Kumar 40ff651ef3 Fix display of boolean nulls in the query tool. Fixes #2205 2017-02-24 13:47:37 +00:00
Surinder Kumar 88cae263b2 Fix display of long integers and decimals. Fixes #2039. Fixes #2119. Fixes #2154 2017-02-24 13:39:40 +00:00
Surinder Kumar c0f2aab001 Ensure we never sort columns on the treeview. Fixes #2185 2017-02-24 13:02:13 +00:00
Surinder Kumar 4566877188 Handle NULL booleans in the data editor. Fixes #1790 2017-02-05 11:06:48 +01:00
Surinder Kumar 54ba1fbe59 Support setting text fields to empty strings or NULL in the data editor grid. Fixes #1790 2017-02-04 14:10:30 +01:00
Murtuza Zabuawala 687a793383 Fix display of zeros in read-only grid editors. Fixes #2138 2017-02-01 13:48:46 +00:00
Harshal Dhumal 415119d581 Properly remove any event listeners added by subnode control. 2017-01-20 13:24:37 +00:00
Murtuza Zabuawala 28621999f2 Improve display of columns of exclusion contraints and foreign keys in the properties lists. Fixes #2065 2017-01-17 10:25:26 +00:00
Surinder Kumar 86f6857cb7 Fix sorting of numerics in the statistics grids. Fixes #1938 2017-01-09 15:55:38 +05:30
Surinder Kumar e400693126 Add BigNumberJS library for upcoming large number related fixes. 2017-01-09 09:07:21 +05:30
Murtuza Zabuawala 879a6bef53 Fix keyboard control of switches in the column grid. Fixes #1394 2017-01-08 15:27:58 +05:30
Dave Page 87d4937726 Minimise memory requirements for rendered cells and rows in SlickGrid. Fixes #2035
- The CSS class 'slick-row' has been renamed to 'sr'

- The CSS class 'slick-cell' has been renamed to 'sc'

- The SQL Editor included an unused 'normal_row' class on each row which has been removed as it was unreferenced in the code or CSS.

The intent of these changes is to minimise memory usage by the grid, by saving a few bytes per row/cell.
It's questionable how much difference this actually makes given that SlickGrid updates the document so it
only includes the visible rows on the fly, but every little helps.
2016-12-22 17:43:42 +00:00
Murtuza Zabuawala 6fc8f040ff Allow users to enable wrapping of code in SQL boxes. Fixes#2025 2016-12-16 17:07:41 +00:00
Khushboo Vashi 53ea991907 Properly size the SQL Editor gutter as the width of the line numbers increases. Fixes #1780 2016-12-16 13:04:16 +00:00
Surinder Kumar 19bd021696 Ensure select2 instances have a destroy property before calling destroy. 2016-10-21 16:16:10 +01:00
Dave Page 62a35f24e7 Fix layout of DateTimePicker control help message. Fixes #1864 2016-10-18 12:43:58 +01:00
Surinder Kumar 7f507f294e While clicking on Select2 control, it tries to destroy the control and thus it doesn't get this object sometimes and throws error.
It should attempt to destroy the select2 object only if this object is not undefined.
2016-10-14 12:20:29 -07:00
Surinder Kumar e4d870cbe6 Ensure errorModel unset property properly in while adding a new server. Fixes #1786 2016-10-03 13:50:54 +01:00
Dave Page 6790f14c6c Fix button label and colour 2016-09-26 16:10:00 +01:00
Ashesh Vashi e591c6b5c0 pgAgent misc fixes:
1. When an existing schedule updated, or a new schedule is added from a pgAgent job dialog, it was not able to generate the proper update SQL Query.
2. The SubNodeCollectionControl was not removing the grid, when it is being getting removed.
2016-09-26 13:43:13 +01:00
Ashesh Vashi b80cd43ae6 Misc changes
- Setting the CodeMirror height when panel is resized, which you had mentioned.
- Added a new CellEditor (DatetimePickerEditor) for datetime picker.
2016-09-26 10:04:49 +01:00
Ashesh Vashi 163ae4d53d Misc fixes and additions for pgAgent support:
- Added DatetimepickerControl, MomentCell (using moment.js)
- Used the 'DatetimepickerControl' in Role (Also - resolved an issue, when unset the datetime for 'Valid Until'.)
- Added a 'Select All/Unselect All' adaptor for Select2 used by pgAgent nodes.
- Fixed an issue with SubNodeCollectionControl, which was not starting the modification session of the child model, when created default value for collection is not null/undefined. And, hence - validation on the child model was not working.
- Fixed a memory leak with SqlFieldControl, and SqlTabControl, which was not releasing the CodeMirror properly.
2016-09-22 15:27:59 +01:00
Dave Page 7a40171300 Handle nested JSON correctly in SlickGrid. Fixes #1713. Fixes #1404 2016-09-21 13:43:27 +01:00
Dave Page fcc81d32cc Fix condition check for avoiding sorting of columns. 2016-09-14 12:33:54 +01:00
Murtuza Zabuawala 4ba8f4830b Don't sort columns (tables, views, matviews, catalogs etc) on the treeview by name, but by ordinal. Fixes #1687 2016-09-14 11:13:50 +01:00
Murtuza Zabuawala ffc58b74d2 Allow viewing of long data values in the grid. Fixes #1672 2016-09-12 12:39:40 +01:00
Murtuza Zabuawala 087332f32e Fix the boolean editor, and warn the user if there are unsaved changed in the edit grid before refreshing. 2016-09-01 11:50:48 +01:00
Murtuza Zabuawala c56e4667df SlickGrid Integration in to query tool. Fixes #1618 2016-08-29 20:17:01 +05:30
Ashesh Vashi b6f307256b Sorting the data during tree data loading using the natural sort
algorithm.

This patch takes care of:
* Consistent behaviour during create, update operation on any node.
  - It should return the node data during creating a new object, or
    updating the existing one.
* Now that - we have consistent behaviour during these operations, we
  can consistently move, update the tree item based the node data from
  the server.
* Implemented the methods for each node to get the information about
  that particular node only.
* Using the above changes to implement the 'refresh' operation on tree
  node properly.

I must thank Surinder, and Harshal for helping me implement the 'node'
method, and also changed the behaviour of create & update methods to
return the node data for most of the nodes.

Fixes #1244
2016-08-29 20:06:58 +05:30
Surinder Kumar 2d75eac117 SqlFieldControl enhancements 2016-08-29 13:21:45 +05:30
Ashesh Vashi f12d981a9d Handling the bad/lost connection of a database server.
Made backend changes for:
* Taking care of the connection status in the psycopg2 driver. And, when
  the connection is lost, it throws a exception with 503 http status
  message, and connection lost information in it.
* Allowing the flask application to propagate the exceptions even in the
  release mode.
* Utilising the existing password (while reconnection, if not
  disconnected explicitly).
* Introduced a new ajax response message 'service_unavailable' (http
  status code: 503), which suggests temporary service unavailable.

Client (front-end) changes:
* To handle the connection lost of a database server for different
  operations by generating proper events, and handle them properly.

Removed the connection status check code from different nodes, so that
- it generates the proper exception, when accessing the non-alive
  connection.

Fixes #1387
2016-08-29 12:01:35 +05:30
Surinder Kumar 4c2020cdc7 Allow the use of the tab key to select options in combo boxes. Fixes #1251 2016-08-22 12:18:38 +01:00
Surinder Kumar 761b54ce69 Allow the user to configure tabs in the SQL editor. Fixes #1406 2016-08-19 11:40:19 +01:00
Surinder Kumar d5b0cd29d8 Display full text from backgrid cells that overflow in a tooltip. Fixes #1442 2016-08-19 10:54:13 +01:00
Surinder Kumar 1bcac0b67c Fix more of the funky keyboard shortcuts. 2016-08-08 15:26:37 +01:00
Khushboo Vashi 8e099e29c3 Fix various escaping issues. Fixes #1527 2016-08-05 12:20:00 +01:00
Harshal Dhumal ec3b9bb15b Allow to create the foreign table with inherits options. Fixes #1260 2016-08-02 09:38:56 +05:30
Akshay Joshi e1cc3dded2 Allow customisable delete confirmation messages in backgrid. 2016-08-01 15:18:57 +01:00
Dave Page 16304aafd2 s/buttton/button/g, per Anthony DeBarros. Fixes #1518 2016-08-01 15:16:14 +01:00
Akshay Joshi e803464ee0 Replace 'Add' buttons with '+' 2016-07-26 12:54:59 +01:00
Harshal Dhumal 875360d1c8 When we use deps functionality, backform controls re-render then. But before we re-render them we must remove old grid (if any) otherwise is causes js error "Unable to call exitEditMode of undefined". Fixes #1497 2016-07-25 14:31:17 +01:00
Dave Page f783aeac63 Change button label to initcap. 2016-07-21 17:18:15 +01:00
Murtuza Zabuawala 573abbe6ef Allow users to select a data type with the keyboard only when creating a column in the subnode grid. Sanitise the list of fields shown. 2016-07-15 10:12:23 +01:00
Harshal Dhumal 4077de2187 Fix Select2 issues. Fixes #1418. Fixes #1434
1. Select2 control fixed for multi-select mode.
2. Index constrains (primary and unique key) fixed column listing issue.
3. Table node "inherited from" (Select2 control) was not showing table name with public schema
2016-07-05 12:58:48 +01:00
Murtuza Zabuawala 3ee8861d44 Fix JSON type rendering. Fixes #1404 2016-07-04 10:05:59 +01:00
Murtuza Zabuawala 4267545e08 Handle special chars and spaces properly in select2 controls. Fixes #1292 2016-06-24 14:09:32 +01:00
Surinder Kumar 09569a23bd Fix "number.toFixed is not function" JS error.
Issue:
We got the following error in console log
"number.toFixed is not function"

Steps to reproduce:
1) Click on statistics tab.
1) Select any database node.
2) then select Databases collection node.
3) The above error will appear into console.

Reason:
I discussed the issue with @Murtaza and here we are explicitly
converting values at server side to string as JSON do not directly
support NaN & Infinity values. Because of which NumberFormatter receives
values of type string and breaks.

Solution:
Overrides the NumberFormatter to support NaN & Infinity values.
and we need to parse the values again in float at client side.
2016-06-23 12:46:48 +01:00
Surinder Kumar 52906dd020 Fix subnode-header label not taking full width (in privileges/variable controls), label goes to next line on viewing properties of node(ex: database node properties). 2016-06-21 12:15:08 +01:00
Surinder Kumar 2a778f3c16 Remove debug code 2016-06-21 12:13:51 +01:00
Sanket Mehta f4e76a22b9 Ensure we properly escape data from Select2 controls. Fixes #1292 2016-06-20 16:04:09 +01:00
Ashesh Vashi f1dd39e5e9 Introduces the 'alertify.pgDialogBuild' function, which will register
different resize event callbacks for a particular dialog.

This function needs to be executed from the 'build' function of any of
the alertify dialog. Refs #1358
2016-06-20 12:45:10 +05:30
Ashesh Vashi 95c79e3a4c Upgraded Alertify to v1.7.1
This version includes the feature request about invoking the callbacks
for different resize events. It will allows us to adjust the layout of
the dialogs based on its width, just like we've in the panels.
2016-06-20 11:45:45 +05:30
Surinder Kumar e881695050 Fix query tool horizontal scrolling of results. Fixes #1362
The backgrid-sizeable's css property 'overflow: hidden' was overriding backgrid table css property and It was reproducible only in runtime.
Removed 'overflow: hidden' property from backgrid-sizeabled-columns.css
2016-06-14 15:51:14 +01:00
Harshal Dhumal 5eef63c068 Added support for the password cell. 2016-06-03 16:13:43 +05:30
Harshal Dhumal dea4b8ca31 Proper evaluation of the optionsValues in the Backgrid Select2Cell. 2016-06-03 15:20:56 +05:30
Surinder Kumar 278f18bab8 Fixes #1243 - Allow to resize the columns of the result table in the
Query editor.
2016-06-02 14:46:58 +05:30
Ashesh Vashi 79d5e33955 Do not allow to edit properties for the object under a catalog schema. 2016-05-31 00:16:33 +05:30
Ashesh Vashi f247153920 Updated the Alertify to use latest version 1.7.0 2016-05-27 14:54:29 +05:30
Ashesh Vashi cf0f692d00 Dialog default sizing. 2016-05-25 11:18:05 +01:00
Surinder Kumar 8a3a44ed25 Fixes the issue about redirection to undesirable URL when clicked on the
file control selection button.

All our views are inherited from the Backform.Form (a extended
Backbone.View), which has an tag element set to 'form'. The default
action for a button in form is to submit the data, and that results into
undesirable redirection within our Views. We can resolve the issue of
redirection by setting 'preventDefault' to true in the click event
object on that button. But - we may use the button control within our
view in future, and that will have the similar behaviour. Keeping that
in mind, we set the default tag to 'div' instead of 'form' for all our
views.

ommit.
2016-05-23 16:26:42 +05:30
Ashesh Vashi 2c6ca7d82c Changed the Select2Control to work more consistently. 2016-05-21 15:41:38 +05:30
Surinder Kumar 3120ce1909 Fixes few issues with File Manager.
- Rename file/folder not working in list view.
- Selection folder only should not allow to select file.
- Ui changes in table list to match with the pgadmin color styles.
- Custom STORAGE_DIR path don't list files/folders when opened in window
  system.
- Code cleanup, formatting & did proper commenting.
- In file selection mode, the value typed in text box not setting into
  backbone model.
- Removed create file code, it should be handled on module using it.
- Written a common function to make ajax request, instead of writing
  individual functions for same task.
2016-05-21 15:02:05 +05:30
Ashesh Vashi 875e251359 Allow to specify the height & width from the javascript modules of an
individual node.
2016-05-21 14:18:26 +05:30
Surinder Kumar ecde42cbed Implementation of View & Materialized View 2016-05-20 17:43:30 +05:30
Ashesh Vashi 63b951baee Adding initial version for showing statistics for the server, and
database nodes.
2016-05-16 01:58:02 +05:30
Ashesh Vashi f682f06c94 Adding a background process executor, and observer.
We will be using the external utilities like pg_dump, pg_dumpall,
pg_restore in background. pgAdmin 4 can be run as a CGI script, hence -
it is not good idea to run those utility in a controlled environment.
The process executor will run them in background, and we will execute
the process executor in detached mode.

Now that - the process executor runs in detached mode, we need an
observer, which will look at the status of the processes. It also reads
output, and error logs on demand.

Thanks - Surinder for helping in some of the UI changes.
2016-05-13 08:49:51 +05:30
Ashesh Vashi 9cdd1f8098 Added support for the server side file manager, which will be useful in
selection, creation, upload/download files/directories resides on the
server side.

This will be useful for file selection/creation for different server
side utilites like pg_dump, pg_dumpall, pg_restore.
2016-05-13 00:04:32 +05:30
Harshal Dhumal 585daddce2 Destroy the existing Select2 object before rerendering the control. 2016-05-12 16:14:06 +05:30
Harshal Dhumal a4d981cced Remove all the object view control within the subnode control, whenever
we remove it.

It will remove all the events, controls, elements, etc associated with
the subnode control.
2016-05-12 15:47:36 +05:30
Harshal Dhumal 176b99c90b Added the multiple selection support in the Select2Cell 2016-05-10 13:48:54 +05:30
Khushboo Vashi dd7bde5ab8 Introduced the dependencies logic functionality (used in the backform),
which will allow us to add dependencies other model attributes on custom
backgrid cell.
2016-05-10 12:40:56 +05:30
Khushboo Vashi 7a400bacf3 Do not send the incomplete definition of a node object to the server
instead show proper message.

Tweaked by Ashesh for adding the proper message
2016-05-10 12:34:24 +05:30
Akshay Joshi 7867adaa53 Added dependency of messages 'pgadmin.browser.messages' in backfrom.pgadmin.js 2016-05-06 17:55:50 +05:30
Neel Patel 149c59aa4f Fixed below review comments
- Removed the "lineWrapping" option from the codemirror textarea because
  it was creating issue in the code folding.
- Handle the values while depositing during debugging.
- Properly handle the Array values while saving it to sqlite database
  and displayed in input dialog.
- SQL code folding was not supported in codemirror so added the same.
2016-05-06 16:05:32 +05:30
Dave Page 0628ee0425 Dashboards v1 2016-05-05 16:42:16 +01:00
Surinder Kumar c15b7c6cae Remove unnecessary extra classes set in the SqlFieldControl, and also
removed the unnecessary classes for the same in the overrides.css file.
2016-04-29 16:05:55 +05:30
Ashesh Vashi 9ef7132e83 Set proper context object, when triggering the 'pgadmin-session' events
in order to resolve few corner cases for validation.
2016-04-29 15:56:56 +05:30
Ashesh Vashi 32e0a0d4b6 Clear the node cache, when an node is created/updated to make sure - we
will always have latest data related to that type of node. Also, fixed
the cache_level for different node types.

This commit also contains fixes for the following issue:
* In extension module - use the 'node-list-by-name' instead of using a
  custom 'node-ajax-options' control, and removed redundant template
  schemas from it.
* When we tries to destroy the select2 object from
  Select2Cell/Select2Control while releasing the properties view,
  sometimes select2 can not find the instance related it for some
  unknown reason. Hence - before removing it we will check for manual
  instance existance using $.data('select2').
* When we traverse through the browser tree nodes very quickly, it tries
  to remove the object before it gets created completely, and results
  into an exception.
* Icon in the select2 drop down list was not visible due to some CSS
  issues.

Apart of that, we will generate two new browser events -
'pgadmin-node:created:<NODE-TYPE>', 'pgadmin-node:updated:<NODE-TYPE>'
whenever a new node is created, or an existing node will be updated.
2016-04-29 15:50:38 +05:30
Murtuza Zabuawala dac514a4ae Added a new control for rendering the notes to be used by different
tools/utitilities dialog.

Modified a little bit by Ashesh Vashi.
2016-04-28 11:52:06 +05:30
Ashesh Vashi 1b44aed456 Resolved an issue - rendering the SQL control refering to the undefined
variable.

It was regression of the commit-id:
085ce50545.
2016-04-22 22:55:54 +05:30
Ashesh Vashi 085ce50545 Refresh the SQL control, whenever necessary.
Also, remove the CodeMirror object for better clean up process.

When a SQL control/tab is rendered in a hidden element, it does not
render really well. Because - it rely on the height, and width of the
container to count the gutten position, and margin, and other elements.

Hence - whenever the tab, panel becomes visible, we will refresh the
control.
2016-04-22 15:29:23 +05:30
Ashesh Vashi a5aa6d159a Updated the CodeMirror to the latest stable version (5.14.2).
It has now the 'sql/x-pgsql' mode, which will make the queries more
familiar, and lot more improved addons.
2016-04-22 15:28:34 +05:30
Ashesh Vashi 58fcbd943a Deleting the object (model & nested model/collection) during showing
the node properties.
2016-04-15 16:14:22 +05:30
Ashesh Vashi af680b724d Improvise the Select2Cell
Select2 does not allow to scroll any of the parent container once it was
opened, and if it was not properly closed.

Also, resolved an issue - existing selection was not working, while
re-rendering the Select2Cell.
2016-04-15 11:01:14 +05:30
Neel Patel 12ae40fe62 Procedural language debugger. 2016-04-14 21:36:04 +01:00
Ashesh Vashi 30d189f499 Load the codemirror as package in the require.js, which will allow us to
load the codemirror addons without any modification.
2016-04-14 12:34:17 +05:30
Murtuza Zabuawala 6e237d16ca Add canAddRow/canEditRow/canDeleteRow functionality for Backgrid.
This will allow user to check condition on individual opration(add/edit/delete row) rather than only while rendering the control.
2016-04-13 15:54:17 +01:00
Arun Kollan 0fb0820c64 Fix CodeMirror borders on dialogues. 2016-04-13 12:24:46 +01:00
Dave Page edf9f25691 Fix general category default. 2016-04-12 17:00:12 +01:00
Ashesh Vashi 9b9126da15 Improvised Select2Cell, and SwitchCell.
Removed the use of separate editor for both of these cell types. There
were two instance of select2 were getting created in the Select2Cell,
one in the Select2Cell itself, and another in Select2CellEditor. And,
loosing the focus mysteriously, and making the scrollbar in the property
dialog non-responsive.

Also, modified the NodeAjaxOptionsCell to use the above logic, and
removed its own version of render function to make it consitent across
the system.

This patch [changes sent by Murtuza] also includes improvisation in the
DeleteCell, and ObjectCell, which will honour now 'canRemoveRow', and
''canEditRow' respective properties of Column.
2016-04-12 16:53:21 +05:30
Ashesh Vashi e07ebdc049 Moving the messages used in common utilities in a separate javascript. 2016-04-11 17:07:58 +05:30
Ashesh Vashi 944bdbb96c Improvised the 'transform/options' function usage with the Select2Cell.
The current implementaton binds the cell/control object, and the ajax
data in the asychronous Cells/Controls with the 'options' functions
extended from the Select2Cell.

The problem starts when we try to fetch the current model from that
options/transform/filter function to do some operation, which does not
require in most of the cases. Except the privileges control - where we
needed the current model for omitting the existing selected object
during transformation, and filtering.

In order resolved the issue, we need a common object, which is shared
among the Cell. In backgrid, the 'Column' object is mong the cell,
hence - implementation logic has been changed to bid the 'Column' object
with the 'options' function and, passed the 'Cell' object as an
arguments.

Because - we do use the common function 'transform' between 'Control'
and 'Cell', we needed make changes in the Select2Control to pass the
Control object as an arguments.

And, make the changes in the privileges control to use the new
implementation. The same logic is also required in some of the
operations, we will be/are working on the table/column nodes.
2016-04-08 11:10:34 +05:30
Arun Kollan 22841f8664 Cleanup styling of wcDocker tab control buttons. 2016-04-07 13:40:16 +01:00
Murtuza Zabuawala 3914f5095a Fix sub-node error display. 2016-04-07 11:51:16 +01:00
Murtuza Zabuawala f7e4e8bea0 Use separate editor for Select2Cell.
This allows us to use the Backgrid key navigation as expected.

This has also resulted into an issue - related unresponsive scrollbar
issue in the SubNodeControl.
2016-04-04 15:36:31 +05:30
Khushboo Vashi 35a1390251 Resolved few issues in the collection controls. UniqueCollectionControl
was not honouring the change events after execution of the function -
'render' more than one time. Change the label of the Add button to make
it consistent with the Unique Collection Control.
2016-04-01 15:26:15 +05:30
Ashesh Vashi d70535385b Upgraded the jQuery-contextMenu to v2.1.0 (latest stable version) in
order to fix the issue rendering the context menu for longer text.

Needs to do some modification in the existing pgAdmin4 CSS theme to make
it looks like/near the existing look and feel.
2016-03-30 19:08:27 +05:30
Ashesh Vashi a28df1e0a2 Allow to show help string in each of the contorl. 2016-03-24 13:00:15 +05:30
Dave Page a6e96c5576 Set appropriate default values for the boolean switch control. 2016-03-23 10:24:19 +00:00
Harshal Dhumal 219f208317 Evaluate the disabled option in SwitchControl.
Also - for consistency reason use the same evaluation logic in each of
the control.
2016-03-23 12:51:29 +05:30
Harshal Dhumal 709311b77c Fix issues with multiple subnode forms being open at once when adding rows to a grid. 2016-03-22 17:04:46 +00:00
Surinder Kumar 03349f4af6 Update the backform control to support sql-fields.
Following are the enhancements:
1. Added border to control which was missing earlier.
2. Allows user to provide height to sql-field control by specifying extraClasses field in model schema.
3. Defined new classes for sql-field control height in overrides.css
4. Added scrollbar to the control.

Usage:

{
  id: 'definition', label:'{{ _("Definition") }}', cell: 'string',
  type: 'text', mode: ['create', 'edit'], group: 'Definition',
  control: Backform.SqlFieldControl, extraClasses:['custom_height_css_class']
}
2016-03-22 16:36:54 +00:00
Harshal Dhumal 8189b39b1e Configuration options for switch control from different places should be merged together and not overridden. 2016-03-22 14:28:13 +00:00
Murtuza Zabuawala 530f58e66b Add support for inline fieldsets. 2016-03-18 16:54:43 +00:00
Ashesh Vashi 96b33d1aa8 Updated the jQuery-contextMenu to 1.9.2 (latest stable) version.
Also, added the missing license information about it in the libraries.txt.
2016-03-18 01:11:22 +05:30
Neel Patel 3969e91563 Add support for Foreign data wrappers, servers and user mappings. 2016-03-17 11:39:38 +00:00
Arun Kollan 05e527505d First pass at improving the dialogue borders. 2016-03-16 17:12:41 +00:00
Khushboo Vashi 3df180831f Support textareas in backgrid. 2016-03-16 14:48:09 +00:00
Ashesh Vashi b52a5736ff Improvements in the form/properties dialog control generation, and data
change events.

- In input & textarea control, call the change event on key up (but -
  not on every key up events, wait for sometime before trigger that
  event, so that - we do not overdo that).
- In unique/subnode control, whenever we create new model object, set
  all the required static fields used by pgAdmin form generation logic.
- In NodeAjaxListCell, we don't need to call the list generation
  operation (ajax operation) for each and every cell. They use the same
  shared column object.
2016-03-15 18:58:22 +05:30
Khushboo Vashi 2f334673a3 Fix a couple of issues with the unique-collection control:
- Pass the data to evaluation functions like canEdit, canAdd
- Properly honour the canAdd option.
2016-03-11 09:36:26 +00:00
Dave Page d21e60cc60 Fix default height for text areas. 2016-03-11 09:24:05 +00:00
Arun Kollan 17ed27fbcd Make the dialogue control sizing slightly more compact and properly control textarea resizing. 2016-03-10 15:31:43 +00:00
Khushboo Vashi 3b03c17f2b Allow enabling/disabling of the Edit button of a sub-node collection grid. 2016-03-10 12:03:33 +00:00
Arun Kollan 5d6c5bc74d Improve display of error messages on dialogues. 2016-03-09 16:03:24 +00:00
Dave Page 5ea822f33e Preferences dialogue. Patch by Ashesh and Khushboo Vashi. 2016-03-07 11:48:53 +00:00
Ashesh Vashi 43116750b4 Honor the visible property of the model schema, and show/hide different
custom contorls based on it.
i.e.
UniqueCollectionControl, TabControl, FieldsetControl, etc.
2016-03-07 16:06:18 +05:30
Ashesh Vashi cc08708f23 Allow to specify special type - 'group' in schema for the browser node,
which allows to determine certain group to hide/show the whole
tab/fieldset control in the properties, and create dialog.

Using this functionality in the database for the
'default privileges - types', which is not allowed before PG < 9.2 using
the version check.
2016-03-06 18:50:10 +05:30
Ashesh Vashi ee71cab51e Removed the wrong copyright information in the javascript file, which is
owned by pgAdmin IV.
2016-03-04 17:39:51 +05:30
Murtuza Zabuawala fa97b5635e Enable/disable edit button functionality conditionally in backgrid. 2016-03-04 11:55:50 +00:00
Murtuza Zabuawala 6ed5e7183e Backform control enhancements:
1) Unique collection control: we have added 'Edit' button in grid, earlier it was only delete button.
2) Sql field control: We have added control to disabled & visible functionality which were not available.
2016-03-04 11:00:17 +00:00
Khushboo Vashi 789ece89fb In the current Backgrid implementation, a cell can be made editable through "editable: true/false" settings. It takes only a boolean value.
Add support for a function that can be set as an editable option value.

For Example:

editable: function(m) { return false; }
2016-03-03 14:03:59 +00:00
Ashesh Vashi 18d767b107 Updated the wcDocker to make use of wcSplitter (new functionalities),
which will be used by the debugger tool.

Updating the wcDocker from the repository -
'https://github.com/WebCabin/wcDocker' up to commit-id:
0f5690318ce0bf457fdd374dcec7418d22b72e22
2016-02-29 19:36:51 +05:30
Akshay Joshi b3ff96d2db Add backgrid extensions for use in various tools: select-all, paginator and filter 2016-02-26 11:08:45 +00:00
Dave Page f0e7bd91cb Improve warning message 2016-02-25 11:58:02 +00:00
Akshay Joshi 8186e45844 Adding Numeric control support for Backform.
This patch also includes an issue related to IntegerControl, which does
not emit any error message, when it has some issues.

In order to fix the issue, it will trigger 'pgadmin-session:invalid'
event, when the input value is not an valid integer.
2016-02-22 17:18:08 +05:30
Ashesh Vashi db9b5f0e0c Resolved the issue related showing errors in the radio control. 2016-02-22 17:00:17 +05:30
Khushboo Vashi 637a5838a8 Resolved a typo in variable name 'version_compatible' 2016-02-10 12:12:06 +05:30
Harshal Dhumal a0648ed54b Using different strategy to render different type of data based on the
type for the Variable control, instead of using the complex DynamicCell.
2016-02-05 14:35:52 +05:30
Ashesh Vashi 7df9e752bb Adding new control to show SQL query in a control.
It will be used by the nodes like view, which require to show the code
inside as one parameter.

Also, override the events for the Backform.TextareaControl in order
handle some cases, which were not handling the change in textarea
properly in all situations.

Also, we need to show the error message around the input control with
name attribute only.

Author: Surinder Kumar (small twicks by me).
Reviewed by: Ashesh Vashi
2016-02-05 13:37:01 +05:30
Khushboo Vashi e90fef7b5b Fixes an issue in the backform schema generation logic to allow to use
the NodeAjaxOptionsControl in the subnode grid.
2016-02-03 16:27:15 +05:30
Murtuza Zabuawala 14583e68b2 Allow to run the transform to be evaluated as function in the NodeAjaxOptionsControl 2016-02-01 16:37:05 +05:30
Harshal Dhumal 8f18ff04ae Fix border display issue in unique column collection 2016-01-21 09:11:14 +00:00
Ashesh Vashi 0cea682e88 Initialize and parse the neseted schema too.
Renamed the type of the nested schema type to 'nested' from 'uiLayout'
to be more relatevant.
2016-01-19 17:54:39 +05:30
Ashesh Vashi 7e621c9d7f Using the new logic after using generateViewSchema(...) function for
generating schema properly for the collection for rendering the grid.
2016-01-17 22:31:54 +05:30
Ashesh Vashi 6a071292aa Adding two new controls tab and fieldset for better layout management
used in some of the nodes.
2016-01-17 22:21:05 +05:30
Murtuza Zabuawala 45240f3850 Use the same schema parameter 'visible' instead of separate one (i.e.
show) for both control and cell, while generating the columns and field
Schema. And, it was resulting into wrong behaviour because of that.

Also - includes the server changes, which was using 'show' parameter
earlier for showing version, when server was connected.
2016-01-15 19:26:03 +05:30
Harshal Dhumal 4e5e7755b5 Make the privilege control to work as expected. Using the
NodeListByNameCell for selecting the grantee.

This patch includes:
- Change the RolePrivilegesModel schema to allow to use the
  NodeListByNameCell for showing grantee, and granter information.
- When setting some value - do not use the silent flag in Select2Cell, which
  will allow the session manager to take the value in account, which is
  used by the NodeListByNameCell.
- Set the top object in the children of the UniqueControl collections.
  [Ashesh Vashi]
- Pass on the node information to the actual data model, so that - we can use
  node information by the control itself. [Ashesh Vashi]
- While adding the new privilege, set the granter to the current user.
  [Ashesh Vashi]
2016-01-15 19:10:49 +05:30
Ashesh Vashi 3a06758b94 Integrate the new mechanism for the data session management in the
variable control, privilege control, which specifies the keys - which
helps identify the data from the collection. Also, resolved an version
compatibility issue with the variable control.
2016-01-15 16:47:22 +05:30
Ashesh Vashi 185ac442fc Fixes few UI issue with the backform controls.
1. NodeAjaxOtions needs to check 'version_compability' in field, and not
   'ver_in_limit' variable. (Thanks Murtuza for pointing that out.)
2. Override the input control to catch the change properly in it.
3. Updated the UniqueCollectionControl and Variable Control to render
   proper template in the header.
2016-01-12 13:40:36 +05:30
Ashesh Vashi 5b9b55ee8e Passing the version_compability information in the controls, and use
them in the custom controls.

This commit also includes the patch from Harshal regarding the broken
updateInvalidate(..) function.
2016-01-12 12:01:47 +05:30
Ashesh Vashi fc926d7200 Resolved an issue of selection in the Select2Cell, when the value is of
type string and not an array.
2016-01-12 00:09:00 +05:30
Ashesh Vashi c90c673900 Override the updateInvalid function for uniquer-cotrols. 2016-01-11 21:32:09 +05:30
Ashesh Vashi 8f733aabd0 Added support for select2 control for using select2 instead of simple
select input.
2016-01-09 18:08:48 +05:30
Ashesh Vashi 1ba9067c60 Introduced the VariableControl, which will be used in role(s),
database(s), and tablespace(s).

Thanks Harshal Dhumal for sharing the original patch.

I've modified a lot to work by fetching the variables later by giving a
url.

Also,
- Introduced the template macros for SECURITY LABELS and VARIABLES.
- Improvised the Backform.Control with better syntactic approach.
- Introduced a jquery function pgMakeVisible(..) to make it visible
  under any obj which can be identified by unique class.
2016-01-09 18:00:02 +05:30
Murtuza Zabuawala 6062343bf5 Set the value in the model when the value is valid in the
IntegerControl.
2016-01-07 18:50:15 +05:30
Ashesh Vashi a611f84aad data stringification was not done, when object was not modified, and
passed as it is and that leads to error during fetching the modified
SQL.

Thanks Neel for the point out.
2016-01-07 18:31:13 +05:30
Harshal Dhumal fe05f2d0c6 Resolved an issue setting proper optionsValues for the Select2Cell. 2016-01-07 13:30:46 +05:30
Harshal Dhumal df594d56e5 Resolving issue setting proper value for options in Select2Cell 2016-01-07 10:55:22 +05:30
Ashesh Vashi ee3efc369d Stringify the data only during GET mode. 2016-01-07 08:37:14 +05:30
Harshal Dhumal 67a80ce8dd Adding Select2Cell, which uses select2. 2016-01-07 08:35:20 +05:30
Ashesh Vashi 753793820b Resolved an issue in the sesion tracking, and generating the data
properly.

Also, takes care of setting options to empty array, when it couldn't
fetch the options for the NodeAjaxOptionsControl.

And, generating proper url for 'msql' url in the SQL tab, when creating
new node from the same type of node.
2016-01-06 19:20:55 +05:30
Murtuza Zabuawala 675e79daab Adding the IntegerControl for the backform.
(With few cosmetic changes by Ashesh.)
2016-01-05 16:50:00 +05:30
Ashesh Vashi bd3492afdf Pass the model properly, while checking enable/disable for Select control. 2016-01-05 15:02:45 +05:30
Ashesh Vashi 9f8a46c820 Passing the control, and field information along with the model while
rendering the Select control.
2016-01-05 13:18:49 +05:30
Ashesh Vashi 1945872e3f Send ajax request as 'application/json', while fetching the modified sql
from the dialog properties.
2016-01-05 02:17:40 +05:30
Ashesh Vashi 3a261b429a Added select2 as dependency 2016-01-04 23:23:16 +05:30
Ashesh Vashi cd40a07ac3 Resolved a typo in the backform.pgadmin.js, while extending the
Backform.Control.prototype.render(..) function.
2016-01-04 19:27:54 +05:30
Ashesh Vashi ec7e98e6a7 Allow a node to have two types of parents, modified the code to handle
such situation. This has been modified specifically for the children
under the schema, and catalog nodes.

Also, override the Backform.Control.prototype.render function to allow
to provide the control data to the evaluable functions (i.e. disabled,
visible, required).
2016-01-04 17:52:34 +05:30
Ashesh Vashi 109b367fc3 Allow to specify the options as a function, which returns array in form
of (label, value) tuple in the SelectControl.

We will apply the transform function, while rendering the control, and
not during intialization. This will allow us to generate different
options data based on the dependent values.
2016-01-04 11:34:43 +05:30
Ashesh Vashi eb83d57c5a Introduced new controls to show the list of a node type (by name and id) as properties of other node.
Resolved a typo in privileges control.
Removed duplicate lines in backform.pgadmin.js
2015-12-28 01:00:20 +05:30
Murtuza Zabuawala d56ddb9fa4 Adding the SQL tab for the nodes, with 'hasSQL' property set to true, in
create/edit mode. It will fetch the modified sql using the 'msql' url
specific to that node.

Also, modified by Ashesh before committing it.
i.e. Added code comments, cleanup code for the control, etc.
2015-12-26 16:15:40 +05:30
Ashesh Vashi c51ecc69e4 Resolved few intialization issue with Node model data, moved the
privileges functionality out of the backform.pgadmin.js to make it more
modular. Now - privileges will expect the privileges data in following
format:
<name_of_the_property> : [{
    "privileges": [{
        "privilege_type": <privilege_type>,
        "privilege": true,
        "with_grant": false
    },
    ...
    ],
    "grantee": <grantee>,
    "grantor": <grantor>
    },
   ...
]

Example:
acl": [{
    "privileges": [{
        "privilege_type": "CONNECT",
        "privilege": true,
        "with_grant": false
     	}],
    "grantee": '',
    "grantor": 'ashesh'
},{
    "privileges": [{
        "privilege_type": "CREATE",
        "privilege": true,
        "with_grant": false
    },{
        "privilege": true,
        "privilege_type": "TEMPORARY",
        "with_grant": false
    }],
    "grantee": test,
    "grantor": ashesh
}]
2015-12-23 12:10:23 +05:30
Ashesh Vashi 1391003e03 Added the backgrid cell for bootstrap switch for representing the
boolean properties.
2015-12-17 19:19:59 +05:30
Ashesh Vashi cd34ee6dd7 Switch Control was not honouring the user's options for bootstrap switch 2015-12-17 18:41:36 +05:30
Ashesh Vashi 0273c29283 Introduction of the privilege support for database object (Patch:
Murtuza Zabuawala), and Unique column control for backform (Harshal
Dhumal).

Also, includes some fixes for the model, & collection handling.
2015-12-17 18:30:42 +05:30
Ashesh Vashi c796eee2a7 Do not show the properties in property windows, when they're not
applicable. i.e. not supported by that version.
2015-12-16 16:02:17 +05:30
Ashesh Vashi 54d4cdcd51 Fixed few issues with the backform custom controls.
- Fixed the server backend version check for any schema object.
- Fixed the switch control, it was not enable to toggle the values properly.
- Fixed the editableCell to work properly in the collection properties.
2015-12-16 13:43:04 +05:30
Murtuza Zabuawala c3b517cb91 Using bootstrap-swtich for creating a custom backform control for
boolean values. (Modified quite a lot by Ashesh, before committing).

This patch also allow to set the header class in the backgrid through
setting  'cellHeaderClass' property of the schema object for any of the
node. It will allow us to set the different behaviour of the cell in the
list. One of the test case for it is: this will allow us to set the
different width of each column in the list using CSS class(es).
2015-12-04 17:16:49 +05:30
Ashesh Vashi 57d6c3b406 Do validation before enabling the Save button. 2015-12-04 15:33:16 +05:30
Ashesh Vashi d753374977 Resolved a typo in the version check condition during schema generation.
Also, resolved an issue related showing the correct server variant in
properties dialog, it is a regression introduced by the patch server
version check.
2015-11-20 10:45:35 +05:30
Ashesh Vashi 77834ccdda Changed the logic to identify the PostgreSQL server variant, when we
connect to the database server. Also, added modified the way, we do
check the node is supported by the server.

Instead of creating separate blueprint for the server types, they will
be independently works. In order to add different variant of the
PostgreSQL, we need to extend the ServerType class, and override the
'instanceOf' function for identification using version string. Please
take a look at the ppas.py for the example.

During checking the back-end support for the node, we will also check
the server type (variant) along with the version within the range of
maximum and minimum version for the node. And, the same support added
for the schema attributes in front-end (JavaScript).

Really thankful to Khushboo Vashi for her initial work in front-end. I
took it further from there.
2015-11-19 23:18:00 +05:30
Khushboo Vashi ed8600ef89 Adding support for collection browser node. 2015-11-17 11:53:14 +05:30
Ashesh Vashi cbab08aaaf Do not set focus to the properties container, when selected any node.
As discussed with Khushboo, we need a negate function of disabled in the
backgrid cell.
2015-11-03 12:36:34 +05:30
Khushboo Vashi a1170c4c82 Do not allow to edit data from the properties dialog 2015-11-03 11:31:35 +05:30
Ashesh Vashi 45596dffa0 Resolved few undo action on UI tabs - tabs were not getting activated
during undo-redo action. Also, resolved the focus losing issue, which
closing the subnode editor using undo action.

Also, resolved an issue related to 'beforeopen' failed on server node,
due to api changes on tree events.
2015-10-30 13:07:12 +05:30
Ashesh Vashi 30c560f33b Added undo action on some of the UI changes too.
i.e. Switch between the tabs, opening/closing the subnode in edit mode.

Also, removed the Save, Cancel buttons from the subnode editor, it was
looking very redudant. Ctrl+Z for undo, Ctrl+Shift+Z/Ctrl+Y for Redo
shortcut will be good enough for undoing all the changes in the
properties panel.
2015-10-30 02:03:29 +05:30
Ashesh Vashi c1db54b2c2 Allow to save only the partial model changes, undo-redo operation
within the edit/create dialog/panel using the backbone.undo.js.
2015-10-28 22:54:30 +05:30
Khushboo Vashi c1503ade47 Introducing the infrastructure for colleciton of the subnodes listing,
creation, and editing within the properties panel infrastructure.

We do use the backgrid.js for listing the subnode collection, and for
editing/creating new object for the subnode, we do use the same
infrastructure using the backform.
2015-10-28 22:36:09 +05:30
Ashesh Vashi c53b57a013 Resolved couple of small bugs introduced during database server
connection management implementation.
2015-10-28 22:34:25 +05:30
Ashesh Vashi e27e39a8f3 Added support for the infrastructure for on demand access/create the
server connection.

The BaseDriver and BaseConnection are two abstract classes, which allows
us to replace the existing driver with the currently used. The current
implementation supports to connect the PostgreSQL and Postgres Plus
Advanced Server using the psycopg2 driver.
2015-10-20 12:33:29 +05:30
Khushboo Vashi b4e20d9119 Updated alertify.js to 1.4.1
This release contains some features/bugs, which will be used by connection management functionality
2015-07-23 18:12:06 +05:30
Ashesh Vashi 146e901327 Show the disabled control in view only mode of properties 2015-07-22 22:27:32 +05:30
Ashesh Vashi 9d372a4555 Updated wcDocker to the latest version 2015-07-20 16:06:17 +05:30
Ashesh Vashi 6ef2384e7f Allow to make change the behaviour of backform control based on other
attribute value.
2015-07-14 09:29:49 +05:30
Ashesh Vashi aa150030eb Introduced a mechanism to load required javascripts at runtime
(lazy loading) using the require.js. This allows us to load the
javascript required for any node, only when it was loaded in the browser
tree. Also, introduced the mechanism to show/edit/create of any node in
a tab panel (wcDocker.Panel).
2015-06-30 11:21:57 +05:30
Dave Page f040efb473 Make the jQuery-contextMenu control globally available as it's used by wcDocker. 2015-03-09 13:14:20 +00:00
Dave Page 527620d34e Update wcDocker to enable properly translation of the context menu options. 2015-03-03 11:11:15 +00:00
Dave Page cd059aaea3 Fix i18n for the docking system. 2015-03-03 10:51:29 +00:00
Dave Page 06be3d39be Replace the browser layout code with a new system based on wcDocker.
This is far more powerful, giving us tearable tabsets, versatile docking
and various other features.
2015-02-27 13:47:48 +00:00
Dave Page b5abf2c640 Cleanup the way stylesheets and scripts are injected into pages by modules. 2015-02-13 14:48:31 +00:00
Dave Page 45d536f524 Remove "vendor" from the global JS path. 2015-02-13 13:36:00 +00:00
Dave Page 567c567351 Add the CodeMirror addons. I can see us needing the majority of these. 2015-02-13 13:29:24 +00:00
Dave Page f4982efb19 Oh look, a syntax highlighting, line numbering, block folding, auto-complete-capable editor. 2015-02-13 11:57:23 +00:00
Dave Page bb6a3f9b5b Use minified output when not in debug mode, and non-minified when debugging.
Update jQuery while we're at it.
2015-02-12 10:28:15 +00:00
Dave Page afb029e284 Factor out client side settings functions into their own JS file,
and add additional variations for getting ints, floats and bools.
2015-02-11 15:50:36 +00:00
Dave Page 1b6d7edd01 Add the core of the main browser layout. 2015-02-05 14:06:20 +00:00
Dave Page 65dc4320f1 Replace bootstrap-dialog with Alertify.js, which is more configurable
and supports non-modal dialogs.
2015-01-28 15:57:03 +00:00
Dave Page 53d649de70 Add support for creating dialogs, and add an About dialog.
This adds bootstrap-dialog to help with creation of nice dialogs,
and adds the ability for modules to render Javascript into the
browser, and specify onclick handlers in the menu system.

Also add a basic About dialog, using the new infrastructure and
showing some useful info about the application.
2015-01-27 16:54:39 +00:00
Dave Page 10515431c7 Add authentication and the basis of the browser module.
A user authentication module based on flask-security is added, which
allows users to login and change/recover passwords etc. Custom templates
are included for the user/password UIs.

A new setup script will initialise the user (and later settings) DB,
adding the first user and granting them an Administrator role.

A redirects blueprint module is added to handle simple URL redirects.

A browser module is added and currently renders a skeleton page with
a menu bar, gravatar and jumbotron.

NOTE FOR LATER: Currently this code might make the nice basis for any
web app that needs user management and plugins. Hmmm....
2015-01-22 15:56:23 +00:00
Dave Page 5a485e7ab8 Add a base template with Bootstrap and jQuery ready to go. 2015-01-20 17:02:04 +00:00