Commit Graph

409 Commits (9e2d349591d2aa8287e13f611d1fb29a90928b16)

Author SHA1 Message Date
Murtuza Zabuawala 12a0cb1ba1 [Python 3] Fixed the issue loading the value for the session key from the sqlite. 2016-03-23 12:40:11 +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
Harshal Dhumal ddd4768937 Backform control for selecting multiple columns.
Usage:

{
  id: 'columns', label: '{{ _('Columns') }}',
  type: 'collection', group: '{{ _('Definition') }}', editable:true,
  canDelete: true, canAdd: true, control: Backform.MultiColumnSelectControl,
  deps: ['index'], node: 'column',
  model: pgBrowser.Node.Model.extend({
    keys: ['column'],
    defaults: {
      column: undefined
    }
  })
}

Note: When using this control model should have column attribute. And node property should be column.
2016-03-22 16:52:34 +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
Ashesh Vashi b3c625f135 Graceful server reconnections. 2016-03-22 15:35:11 +00:00
Ashesh Vashi 3c366fafe7 Server side session management support. 2016-03-22 15:05:43 +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
Arun Kollan 06c0cf607d Make tabsets look consistent, and square off the properties sections a little. 2016-03-22 13:31:48 +00:00
Khushboo Vashi 8ca134871f Update the Browser Tree Node Icon after editing. 2016-03-22 13:14:38 +00:00
Ashesh Vashi 87f9834951 Allow to create sub-menu/menu-group by specify the same category in
multiple menu-items (not just the 'create' menu-group).

Moved all the main menu/context menu generation implementation in the
'menu' javascript menu.

In this implementation, if more than one menu-items specify same type
of categories, they will be created withing that group, otherwise - it
will be created separately (unless 'single' property of that category is
set to true).

We can also provide icon, priority, separator(s) above/below it for the
individual sub-menu too using pgAdmin.Browser.add_menu_category
function(...).
2016-03-21 23:56:08 +05:30
Ashesh Vashi 79d6d50dcc The minimal refresh functionality, which will not unload the whole
tree, when 'refresh' on any node was selected.
2016-03-21 22:44:59 +05:30
Ashesh Vashi b056ba7bb7 Speed up the expansion/collapsing of nodes.
[as per Thom Brown <thom@linux.com>]

Also, we will not like to wait for 500 microsecond before initialing the
tree items, load them asap.
2016-03-21 22:44:59 +05:30
Murtuza Zabuawala 530f58e66b Add support for inline fieldsets. 2016-03-18 16:54:43 +00:00
Khushboo Vashi 8a99282e07 Add support for domain dependencies/dependents. 2016-03-18 15:20:41 +00:00
Murtuza Zabuawala 3432481f9a Properly name the dbo and sys catalogs in PPAS. 2016-03-18 15:16:18 +00:00
Ashesh Vashi 84c5c29b92 Resolved an issue using wrong variable name for backbone-model, while
triggering events.

Thanks Khushboo Vashi for reporting.
2016-03-18 17:29:52 +05:30
Ashesh Vashi 4c9bbff28b Renaming a server, when it was connected, should not lose the existing
connections.

Thanks Neel for reporting the issue.

Also, resolved an issue related fetching properties of all the servers.
2016-03-18 17:12:40 +05:30
Ashesh Vashi 9dabd5bf3b Resolved an issue related to not able to select grantee in the
privileges control.

It was a regression introduced in the commit -
'4adea4dc2596fb495c4df8129745b87c35b062a6'.
2016-03-18 16:53:38 +05:30
Ashesh Vashi 611c9c4ae7 Disable the menu to create database and tablespace, if:
* Database server is not connected.
* Do not have adequate permission to create.
2016-03-18 10:31:57 +05:30
Ashesh Vashi 09bdf1fab7 On Python 2, use urllib2 instead of urllib, which allows us to specify timeout
parameter.
2016-03-18 10:08:51 +05:30
Ashesh Vashi 328428ab22 Adding a timeout of 5 seconds (while fetching the latest pgAdmin version), it
stucks at rendering the main page (browser.html) in the broken network.
2016-03-18 09:58:00 +05:30
Ashesh Vashi 0fcfaa4ff2 Updated the font-awesome to 4.5 (latest) version. 2016-03-18 01:34:45 +05:30
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
Ashesh Vashi 1448a8f551 Log exceptions raised under the servers module. 2016-03-17 22:50:38 +05:30
Sanket Mehta 71badac203 Support "show system objects" in casts. 2016-03-17 11:49:11 +00:00
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
Dave Page 41805d40b5 Sort all nodes when loading. 2016-03-16 10:31:20 +00:00
Dave Page 2fb6ccf5b2 Re-shuffle server properties. 2016-03-16 09:58:14 +00:00
Khushboo Vashi a18553bd8c Add a data type reader utility. 2016-03-16 09:54:30 +00:00
Ashesh Vashi 40ceabb082 Do not rely on the individual model (instead use the first level 'top'
model) to fetch the node_info, because - when loading the data in the
collection, it may not initialize all the parameters.
2016-03-15 21:18:52 +05:30
Dave Page 62bd1a21cc Improve message display. 2016-03-15 15:45:40 +00:00
Arun Kollan c814698328 Fix security label sizing. 2016-03-15 15:07:40 +00:00
Akshay Joshi 218cc3ec0c As 'show_system_objects' has been implemented, I have fixed an issue for dependencies/dependents.
With previous implementation each node will have to send the values of 'show_system_objects'
while calling get_dependencies/get_dependents function. Now I have changed the logic to use the
value directly into the base class functions.
2016-03-15 14:16:33 +00:00
Dave Page 2711d3492d Reduce column header letter spacing a touch. 2016-03-15 14:12:54 +00:00
Ashesh Vashi 4adea4dc25 Resolved an issue related to no proper valid/invalid event was
generated for the privilege control. Also, made changes in the
PrivilegeRoleModel, to allow to select a grantee only once for the
current user (as grantor), and omit them from other cell objects.

Valid/Invalid event was not properly triggered, whenever the child
attribute is a collection/model within a model (nested mode/collection
within model). This patch tried to take care of all such scenarios in
general.
2016-03-15 19:00:58 +05:30
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
Neel Patel ff424850f8 Fix a bug in the database drive poll() function where we could try to reference a non-existant variable. 2016-03-15 13:01:28 +00:00
Arun Kollan cdd7a1f637 Subnode collection layout improvements, with additional tweaks from me. 2016-03-15 12:30:01 +00:00
Murtuza Zabuawala 9220dcaa97 Fix an issue with uneditable text fields containing large amounts of data, 2016-03-14 09:31:36 +00:00
Dave Page fd05dec29c Default owner for new event triggers. 2016-03-11 16:58:46 +00:00
Murtuza Zabuawala b6f7202448 Add support for collations. 2016-03-11 13:40:28 +00:00
Dave Page c0086b092f Fix a number of minor issues with catalog objects:
- Remove unnecessary columns from collection property lists.
- Standardise property names and groupings.
- pg_attribute doesn't have an OID column, so use attnum instead (of atttypid!?!)
2016-03-11 10:09:23 +00:00
Dave Page 470881ac46 Fix cast SQL formatting. 2016-03-11 09:45:43 +00:00
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
Murtuza Zabuawala b747a5b5eb Update ACL parsing for tablespaces to use newer infrastructure. 2016-03-11 09:05:58 +00:00
Murtuza Zabuawala 5347bdb886 Added support for the catalog objects under special catalogs. (also,
added support for columns under it).
2016-03-11 01:09:06 +05:30
Ashesh Vashi 87623cb997 Resolved few typos, comments, and also some query correction in the SQL
templates for different nodes.
2016-03-11 01:02:25 +05:30
Dave Page b7f6df34ab Fixup some SQL formatting, per Khushboo 2016-03-10 17:23:59 +00:00
Dave Page ce5d7b7d60 Fix gettext calls per Khushboo 2016-03-10 17:18:42 +00:00
Dave Page 649b719845 Variables should have their own tab on dialogues. 2016-03-10 17:15:58 +00:00
Dave Page 83a662f798 Fix all manner of inconsistencies in object properties display:
- Don't display the OID on Edit dialogues
- Use the ACL summary display in the properties panel, not the subnode editor.
- s/Oid/OID/g
- Ensure all security properties are displayed in the Security group
- Ensure all object definition values are stored in the Definition (or a more precise) group, not General.
- Fix the ordering of General properties so the comment is always show last.
2016-03-10 17:08:27 +00:00
Dave Page 62537429d1 Show the ACL summary on the properties panel for databases. 2016-03-10 16:21:17 +00:00
Dave Page 2b6c8dff0b Fix various inconsistencies with databases and tablespaces:
- Display the ACL string in properties, not the subnode panel.
- Offer default values for the owner of new objects.
- Add missing context menu option to create a tablespace from a server node.
2016-03-10 16:14:26 +00:00
Dave Page f95b9f06ca Add some default connection parameters. 2016-03-10 15:58:17 +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
Harshal Dhumal def1a30251 Add support for Sequences. 2016-03-10 15:23:04 +00:00
Harshal Dhumal 986375d60e Add support for Event Triggers. 2016-03-10 13:38:31 +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
Khushboo Vashi d32e861a47 Updated Privileges macros under Schema node.
The changes are required due to previous commit (8a7ec6b452) regarding "parse_priv_to_db" function.
2016-03-10 12:01:13 +00:00
Ashesh Vashi 77ae220f1e Resolved typos in SQL templates for PPAS
Thanks Khushboo Vashi for reporting.
2016-03-10 14:56:46 +05:30
Murtuza Zabuawala 8a7ec6b452 Update "parse_priv_to_db" function to return list a instead of a string.
This will also allow us to operate on individual privileges & also we
needed this functionality for column nodes.

For example,

*Earlier:* priv was string

GRANT {{ priv }} ON {{ type }} TO {{ conn|qtIdent(role) }};

*Now:* priv will be List, which we need to handle in jinja templates.

GRANT *{{ priv|join(', ') }}* ON {{ type }} TO {{ conn|qtIdent(role) }};
2016-03-09 17:10:03 +00:00
Arun Kollan 5d6c5bc74d Improve display of error messages on dialogues. 2016-03-09 16:03:24 +00:00
Akshay Joshi f08aa6a313 Always fetch column info from the server, even if there are no rows. 2016-03-08 15:59:53 +00:00
Dave Page a92d4841d1 Add support for Schemas and Catalogs.
Initial patch by Murtuza Zabuawala with further hacking by Ashesh Vashi and I.
2016-03-08 15:48:11 +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
Neel Patel 31ab9ebacc Using the correct member variable while fetching the notices/messages
from the psycopg2 connection.
2016-03-06 18:56:42 +05:30
Ashesh Vashi 6014448dd7 Trigger an event whenever a register script has been initialized from
the browser.
2016-03-06 18:52:22 +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
Sanket Mehta a4e819c68c Fix an error retrieving dependents and dependencies for casts. 2016-03-04 11:03:30 +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
Ashesh Vashi 0b43443151 Allow the connection driver to return notices/messages from the server. 2016-03-04 10:35:50 +00:00
Harshal Dhumal d2e372114b Security Label and ACL template macros:
Way to use in template:

1) Security labels:

SECLABLE.SET(conn, object_type, object_name, provider, security_label,
object.schema)

SECLABLE.UNSET(conn, object_type, object_name, provider, object.schema)

2) Privileges:

PRIVILEGE.SET(conn, object_type, grantee, object_name,
privileges_without_grant, privileges_with_grant,
            object.schema)

PRIVILEGE.UNSETALL(conn, object_type, grantee, object_name, schema)

privileges_without_grant = comma separated string of privileges.
privileges_with_grant = comma separated string of privileges.
2016-03-03 15:12:37 +00:00
Khushboo Vashi 3ff06da772 Security Labels, Privileges and Variables macros for the functions modules.
Usage of the macros:

Security labels:

SECLABLE.SET(conn, 'FUNCTION', func_name, provider, security_label, func_schema, func_args)

SECLABLE.UNSET(conn, 'FUNCTION', func_name, provider, func_schema, func_args)

Privileges:

PRIVILEGE.SET(conn, 'FUNCTION', grantee, func_name, privileges_without_grant, privileges_with_grant, func_schema, func_args)

PRIVILEGE.UNSETALL(conn, 'FUNCTION', grantee, func_name, func_schema, func_args)

Variables:

VARIABLES.SET(conn, 'FUNCTION', func_name, options, func_schema, func_args)

VARIABLES.UNSET(conn, 'FUNCTION', func_name, options, func_schema, func_args)
2016-03-03 14:08:28 +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
Akshay Joshi e138ec53b6 Add support for asynchronous connections to the database server. 2016-03-02 13:29:15 +00:00
Ashesh Vashi b41066a6b6 [Reversed Engineered SQL] Security Labels is not available for PostgreSQL <= 9.1 2016-03-01 15:36:52 +05:30
Ashesh Vashi cf170821cb Security Labels is not available for PostgreSQL <= 9.1 2016-03-01 11:06:31 +05:30
Ashesh Vashi 1cb2a054ff Showing consitent reversed engineered SQL for the database node. 2016-03-01 10:42:04 +05:30
Ashesh Vashi a6466c091c Resolved a regess of the previous commit, which introduced during
previous commit: 39d432ca2c.

[Thanks Neel Patel for pointing this out..]
2016-03-01 10:24:46 +05:30
Ashesh Vashi 39d432ca2c Remove some unnecessary imports from the pgadmin/__init__.py, and
removed the file hooks.py, which is not used any more with new
infrastructure.
2016-02-29 23:08:08 +05:30
Neel Patel 000c76871f Updated the misc module javascripts to work with latest wcDocker. 2016-02-29 19:37:24 +05:30
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
Ashesh Vashi 54edb4b482 Resolved a typo in variable name in the database/utils.py 2016-02-29 10:44:57 +05:30
Ashesh Vashi 3051e7cd62 Log the exception loading the module script on the console. 2016-02-28 17:05:50 +05:30
Ashesh Vashi f8a45799b6 Resolved an issue related to adding menus dynamically using the jinja2
templates. The variable scope for the jinja2 template variable is not
consitent across all the for loop (loop withing loop), it was behaving
inconsistently, a value set in a loop was not properly accessible in
inner loop properly. In order to resolve the issue - setting/using the
variable only in inner loop, and call add_menus function multiple times,
which we were trying to avoid, but - we can live with that.
2016-02-28 17:00:52 +05:30
Ashesh Vashi b85f9e6d1a Creating an empty pgAdmin module container (named tools) for keeping
all the sub-modules of type tools.
2016-02-28 12:49:36 +05:30
Ashesh Vashi 2bf8eccb67 Pass the tree item (missing from the code) for making it inode agai. 2016-02-28 12:15:08 +05:30
Ashesh Vashi 2d7a218792 Resolved few issues with browser.js:
(dynamic menu generation, typo in error message)

- Dynamic menu generation code was failing for some corner cases.
- Removed trailing whitespaces.
- Resolved a typo in the message - 'click_for_detailed_msg', which was
  resulting in '{}' message instead of actual error message.
2016-02-28 12:15:08 +05:30
Ashesh Vashi 41e85fd631 Make the default privileges jinja2 template macros to generate more
consistent SQL.
i.e.
Put 4 spaces after every new line (wherever required).
2016-02-28 12:15:08 +05:30
Khushboo Vashi d4a13eaafa Security Labels and the Variables are used in many modules under the Database Node.
Provide functions in the database node to handle them.
2016-02-26 15:21:55 +00:00
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 3b2ef2961b Correct error message to match the field name. 2016-02-25 16:47:07 +00:00
Dave Page af25a11dde Correct spelling of SECLABEL 2016-02-25 16:41:11 +00:00
Dave Page f0e7bd91cb Improve warning message 2016-02-25 11:58:02 +00:00