Also - includes:
* Added 'parent_id' in the 'generate_browser_node' function of the Nodes
to allow them to move around the parents objects (specially through
update/save functionality).
* Handles the issue related to adding the older object back to the
collection (DataModel).
Author: Ashesh Vashi
Reviewed by: Neel Patel, and Akshay Joshi.
from the user.
i.e.
Set the uniqueCol as ['name', 'role'] in case of hasRole is set to true
in schema for it, ['name', ['database'] in case of hasDatabase is set to
true, otherwise ['name'].
Also - fixed a typo in the callback function headerDataChanged(..).
trivial bugs within the privilige control.
i.e.
- Do not show 'ALL' for only one privilege type.
- Show correct privilege label in PrivilegeEditor.
- Typo in TEMPORARY privilege.
- Added missing toJSON function call, while calling the parent's toJSON
function.
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.
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]
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.
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.
other.
i.e.
While fetching the database nodes from the role nodes, it was generating
the wrong URL.
Used the parent_type in each node to identify maximum node URL level
using the priority set in the tree node hearachy information, and
generate URL up to that level only.
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.
inputs.
In order to do the proper quoting around the identifier, different type,
and literal, we introduced respective functions qtIdent, qtTypeIdent,
qtLiteral in psycopg2 driver. Also, introduced them as the Jinja's
custom filter for using it directly inside the templates.
Also, created an utility - generate_keywords.py in order to generate
keyword lists from the latest PostgreSQL installation.
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).
- Renamed the URL 'nodes' to 'children', because - we'll return the
children for the current node.
- Using the URL 'nodes' to fetch all nodes of its type, when not
specified the node-id, otherwise regenerate that node info using the
node-id (it will be used by the refresh function).
- Added the URL 'msql' for fetching modified SQL for the modified
objects.
- Separated the URL 'deps' (GET/POST methods) to 'dependency' and
'dependent', because - it will be used to fetch the properties of the
object, not manipulate it. (as suggested by Dave).
This commit includes the changes related to it in the specific nodes.
(i.e. server-group, and server).
Also, includes a javascript change to ask the user (if they really want
to leave the page, and it is not an accidental navigation by keyboard
shortcuts).
- Allow to release connection using the database OID (did).
- Generate correct url for the collection nodes.
- Removed the server-type from the collection node module, from the
generate_browser_collection_node(...) function.
- Show version string, and not version integer in the server properties
(when connected).
Also, resolved an issue related showing the correct server variant in
properties dialog, it is a regression introduced by the patch server
version check.
i.e.
'server-connect' and 'server-disconnected' events will be generated
while server gets connected and disconnected respectively.
For demo purpose - listening to the server connection from the test
script.
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.
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.
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.
(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).