Commit Graph

539 Commits

Author SHA1 Message Date
Ashesh Vashi
b22d73ec46 Improvise the pgsql driver to keep the utility names used for different
operation like backup, restore, etc within it.

Also:
* improvised the color combination of the background process logger.
* Removed an unnecessary print statement from the
  get_storage_directory(..) function, also return None if STORAGE_DIR
  is set to None.
2016-05-14 00:48:20 +05:30
Surinder Kumar
938ea21f40 Fixed following issues:
1) Grant wizard close issue.
   2) Moved grant wizard specific css from wizard.css to grant_wizard.css
   3) removed 'ajs_content' css from wizard.css causing padding issue in alertify dialog
2016-05-13 15:04:36 +05:30
Murtuza Zabuawala
174363c9a7 Fixed typo for acl in tablespace node 2016-05-13 13:43:35 +05:30
Harshal Dhumal
4816f5ed12 Change server password feature 2016-05-13 13:21:20 +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
Harshal Dhumal
180630ce0e Fixed variable scope issue in server.js 2016-05-10 18:16:08 +05:30
Murtuza Zabuawala
83b6a04763 Added input validation and title of the prompt for 'Named Restore point' functionality 2016-05-10 16:04:47 +05:30
Harshal Dhumal
585daddce2 Destroy the existing Select2 object before rerendering the control. 2016-05-12 16:14:06 +05:30
Ashesh Vashi
d768faf2ea Do not validate the attributes on saving, because - sometimes it results
into an error, and does not call the callback - 'success/fail'
internally.

And, that will not close the property dialog in those cases.

Reported by Harshal Dhumal.
2016-05-12 15:51:21 +05:30
Murtuza Zabuawala
40a9490382 Check for the connection status before executing the statement for
checking the 'server in recovery' information.

Thanks Khushboo for reporting the issue.
2016-05-12 13:23:24 +05:30
Murtuza Zabuawala
23f0cf07ca Allow creation of named restore points. 2016-05-11 16:13:14 +01:00
Surinder Kumar
01e83f1807 Adding missing dependency 'underscore.string' in the 'menu.js'. 2016-05-11 12:11:06 +05:30
Murtuza Zabuawala
ce043fbe07 Python 3 compatibility fix - iteritems() is deprecated. 2016-05-10 17:01:11 +01:00
Ashesh Vashi
9cae686c65 Allow the modules to define the i18n messages, and other messages
required by its javascript module.

This will allow us to load the javascript modules as a static file, and
not as a Jinja2 template. This will increase the load time, as it will
decrease number of templates to be processed during loading those
javascripts.
2016-05-10 16:07:48 +05:30
Neel Patel
8cfca280d4 Fixed issue 'Reload Configuration' option is also enabled on database node while it should only be enabled on server node 2016-05-09 23:22:35 +05:30
Sanket Mehta
817bdd0108 Fixed typos in FTS DICTIONARY node 2016-05-10 12:53:39 +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
Ashesh Vashi
b383c67fa5 Treat the Array different from the Object to make sure session tracking
works well with it.
2016-05-08 23:55:57 +05:30
Khushboo Vashi
e522ebbcca Ensure delete/drop works without JS errors. 2016-05-06 15:47:21 +01:00
Khushboo Vashi
f3d05279a7 In IE10, the Save/Reset buttons are not getting enabled after changing fields. 2016-05-06 15:29:32 +01:00
Neel Patel
4190933909 Allow the server config to be reloaded. 2016-05-06 15:08:22 +01:00
Murtuza Zabuawala
94303867dd Fix a typo introduced in a merge. 2016-05-06 13:58:31 +01:00
Karen Blatchley
949e536bae First round of string review and cleanup. 2016-05-06 13:53:48 +01:00
Dave Page
0628ee0425 Dashboards v1 2016-05-05 16:42:16 +01:00
Ashesh Vashi
07e0de5399 Resolved an issue, a copy-paste issue (was using field instead of the
column object) in NodeAjaxOptionsCell.

It was regression of '32e0a0d4b62462d45da88c177ffc6966de3dbcbb' commit.

Thanks Harshal for reporting this.
2016-04-29 17:25:43 +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
Sanket Mehta
244f5d59d2 Resolved an issue - fetching the source, and target type functions in
the CAST module. Make the changes in the CAST module too for the
changes done in the NodeAjaxOptionsControl in the commit-id:
944bdbb96c.

We've changed the signature (arguments) of the 'options' & 'transform'
functions.
2016-04-22 18:04:09 +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
ef7737c709 Added missing dependent javascript 'jquery.aciFragment' required by the
aciTree.

Also - fixed few CSS specifically for the preferences dialog.
Returning the sorted preferences from the server, so that - it lists
down in correct order.
2016-04-19 23:48:10 +05:30
Neel Patel
37699a9820 Don't try to use the template engine's gettext on Javascript variables, as it won't work as the templates are evaluated before any JS is executed. 2016-04-18 08:39:25 -04:00
Ashesh Vashi
09cc78bd0a Adding missing query templates required for the server module. 2016-04-18 14:57:35 +05:30
Ashesh Vashi
9aee9794c1 Fix the properties toolbar at the top of the panel so it's always
visible.

This patch also introduce a callback 'onCreate' for each panel, and
frame, which will be called whenever a panel/frame is being created.
2016-04-18 12:38:56 +05:30
Khushboo Vashi
2d8633d4ca Fixed few typos/issues in the datamodel.js 2016-04-18 12:10:19 +05:30
Priyanka Shendge
98d473a7ec Initial version of a regression test framework 2016-04-17 10:39:08 -04:00
Arun Kollan
ffa348fe5d Fix wizard core styling. 2016-04-17 09:08:03 -04:00
Dave Page
e176190256 Core infrastructure for dashboards. 2016-04-16 17:51:44 +01:00
Seçkin Alan
26aa5607ad Fix dropping of server groups. 2016-04-16 09:55:38 +01:00
Ashesh Vashi
34ba5bef24 Improvised the data clean up, in some cases, it was calling validation
due to internal 'set' function call from the internal 'reset' function.

We will stop the session management, before doing any clean up for
ignoring such events.
2016-04-15 19:29:30 +05:30
Khushboo Vashi
de0864a92c Fix SQL Help on older browsers without string.endsWith(). 2016-04-15 14:26:32 +01:00
Ashesh Vashi
7ca939dcaf Fix dialogue close issue. 2016-04-15 14:02:21 +01:00
Dave Page
4d7d3bd5e1 Icon and toolbar cleanup/consistency. 2016-04-15 13:32:17 +01:00
Ashesh Vashi
58fcbd943a Deleting the object (model & nested model/collection) during showing
the node properties.
2016-04-15 16:14:22 +05:30
Seçkin Alan
7b344185b4 Validate the model on save. 2016-04-14 21:51:07 +01:00
Seçkin Alan
290e6949f8 Require a server hostname/address to be specified. 2016-04-14 21:46:01 +01:00
Sanket Mehta
1b442cff41 FTS Dictionary support (icons) 2016-04-14 20:54:14 +01:00
Sanket Mehta
7305986e14 FTS Dictionary support. 2016-04-14 20:53:14 +01:00
Sanket Mehta
b47577390a Fix issue renaming FTS Parser. 2016-04-14 20:14:32 +01:00
Dave Page
e09aa90614 Rename "Parameters" to "Arguments" and "Variables" to "Parameters" for consistency with the PG docs.
Per Susan Douglas.
2016-04-14 20:11:55 +01:00
Murtuza Zabuawala
49e433db4f Type fixes:
- Renaming or changing the schema for a shell type should not be allowed.

- I'm allowed to try to add ACL entries or security labels to an
existing shell type. This should be disallowed.

- Changing the schema on a (non-shell) type doesn't work - the type
name is omitted, e.g.

ALTER TYPE pem
    SET SCHEMA pemhistory;

Which should be:

ALTER TYPE pem.foo
    SET SCHEMA pemhistory;
2016-04-14 15:46:25 +01:00
Murtuza Zabuawala
c047abd8a4 Fix various issues with Types, per discussion 2016-04-14 12:37:19 +01:00
Ashesh Vashi
8a39b3a700 Backend changes to fetch the statistics for the database and server
nodes, along with the front-end changes for those node.

NOTE:
We've not yet added the support to show them on the front-end.
2016-04-14 16:45:34 +05:30
Ashesh Vashi
6f58170894 Bind the current panel with the temporary functions, so that - it works
on the object everytime, it hits the buttons, and the callback functions
are being executed. The original implementation was not using the same
panel, when it was recalled from other function. And, results into
unexpected behaviour like not able to work with Edit object again.

Thanks Murtuza for reporting the issue.
2016-04-14 12:50:20 +05:30
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
Surinder Kumar
40c592a988 Grant wizard. 2016-04-13 16:11:43 +01:00
Ashesh Vashi
9e2d349591 Improvements to frame management. 2016-04-13 11:25:04 +01:00
Dave Page
dd5e86bcf4 Fix label 2016-04-13 10:55:12 +01:00
Dave Page
edf9f25691 Fix general category default. 2016-04-12 17:00:12 +01:00
Dave Page
fc8c3db33f Remove unnecessary line of code. 2016-04-12 13:39:06 +01:00
Dave Page
62fcfd928d Add context-sensitive SQL help. 2016-04-12 13:36:06 +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
Dave Page
787b35c326 Couple of typo fixes. 2016-04-11 15:41:41 +01:00
Ashesh Vashi
e07ebdc049 Moving the messages used in common utilities in a separate javascript. 2016-04-11 17:07:58 +05:30
Dave Page
d53ab31eb8 Button bar styling:
- Left justify the top button bar and match the style of the query tool
- Allow buttons to have tooltips and optional labels
2016-04-08 11:58:47 +01:00
Ashesh Vashi
95ffc908ce Changed the logic of transform function as per new implementation logic
of Select2Control.

Also, added missing translation functions for few strings.
2016-04-08 11:10:34 +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
Dave Page
34a803fc68 FTS Parser support 2016-04-07 20:59:09 +01:00
Sanket Mehta
d6d6361de5 FTS Parser support 2016-04-07 20:58:29 +01:00
Dave Page
680339ff20 Fix node type label 2016-04-07 20:57:45 +01:00
Dave Page
441a29f59c String tweaks. 2016-04-07 20:51:31 +01:00
Sanket Mehta
95566ed5e1 FTS Template support. 2016-04-07 15:01:56 +01:00
Murtuza Zabuawala
ca277bc8b6 Type support 2016-04-07 12:27:33 +01:00
Ashesh Vashi
1ba0814377 Added support for 'array' type in the schema of Node model to treat as
an object, and handle it well in the toJSON(..) with session
transformation.
2016-04-06 15:05:39 +05:30
Khushboo Vashi
2add0155a3 Add support for domains. 2016-04-05 16:32:36 +01:00
Surinder Kumar
d1eb3fd9d5 Utility functions for trigger and rule nodes, centralised because they're also utilised by the view node. 2016-04-05 16:19:55 +01:00
Khushboo Vashi
5ed7015ebc Add support for functions and procedures. 2016-04-05 16:14:10 +01:00
Ashesh Vashi
40165f2d1e Honour the 'show_system_object' flag when generating the list of schema nodes. 2016-04-05 16:37:54 +05:30
Harshal Dhumal
43d532321b Allow to close the create/edit dialog after successful 'save'
operation.

Some of the nodes do not return id as result, when they were created.
Modified the logic to allow to open the parent node in such conditions.
2016-04-01 15:34:29 +05:30
Murtuza Zabuawala
1a5eb0c417 Updated the template for the NodeAjaxOptionsControl, which was not honouring
the disabled attribute due to missing quotes around values.
2016-04-01 15:17:31 +05:30
Ashesh Vashi
242d5f47f6 Loading the jquery.aciSortable.min.js javascript, as when we destroy
the jquery-aciTree from preferences dialog, it throws an exception,
which uses functions from this javascript.
2016-03-24 14:23:44 +05:30
Dave Page
2a2374329e String improvements. 2016-03-23 16:03:22 +00:00
Dave Page
72f6353561 String improvements. 2016-03-23 16:00:26 +00:00
Dave Page
1ac16cbc0f We have defaults for switch display now, so no need to set the options explicitly. 2016-03-23 11:53:07 +00:00
Dave Page
258c7f3589 Don't display packages as schemas. 2016-03-23 11:52:11 +00:00
Murtuza Zabuawala
0e044e1216 Fixed the refresh issue when a server gets disconnected. 2016-03-23 16:52:21 +05:30
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
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
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
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
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
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
Arun Kollan
cdd7a1f637 Subnode collection layout improvements, with additional tweaks from me. 2016-03-15 12:30:01 +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
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
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
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
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
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
Sanket Mehta
a4e819c68c Fix an error retrieving dependents and dependencies for casts. 2016-03-04 11:03:30 +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
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
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
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
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
f3813239c0 Fix rule name generation 2016-02-25 11:14:34 +00:00
Dave Page
de9e122a91 Fix typo 2016-02-25 10:39:04 +00:00
Surinder Kumar
c950683fa1 Add support for extensions. 2016-02-24 16:45:35 +00:00
Sanket Mehta
f466e0169a Add support for casts. 2016-02-24 16:44:37 +00:00
Dave Page
0b1cf1ad2c Remove an unnecessary line ending. 2016-02-24 16:42:38 +00:00
Ashesh Vashi
f4ae7cd210 Resolved a typo in the node creation SQL template for PostgreSQL 9.2. 2016-02-24 15:00:25 +05:30
Akshay Joshi
7ffbb8c039 Add support for viewing/editing procedural languages. 2016-02-23 10:07:14 +00:00
Dave Page
2de7b4c0a0 Improve Resource Group labels per discussion with Jason. 2016-02-23 09:08:46 +00:00
Akshay Joshi
c153032e3b Add support for displaying dependency and dependents info. 2016-02-22 13:07:16 +00:00
Harshal Dhumal
0b956813d4 public in the privilege control should not be allowed to select the
'WITH GRANT' options.
2016-02-22 17:36:23 +05:30
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
6c2faa984b Do not need to implement the BackendSupported function in resource
group, we do have the same function in CollectionModule class, which
will work, when we set the min_ver, max_ver and server_type properly.

Thanks Khushboo for pointing that out, and Akshay for quick testing for
this patch.
2016-02-22 17:04:06 +05:30
Akshay Joshi
dafd2f3323 Add support for Resource Groups in EDB Advanced Server 9.4+. 2016-02-22 10:51:35 +00:00
Ashesh Vashi
bbf037f005 Resolved a typo in Server Module related to assigning manager object to
driver variable.
2016-02-22 14:01:16 +05:30
Ashesh Vashi
d5da26876b Resolved few issues (with some improvements) with existing nodes.
This commit takes care of the following issues/improvements.
* Adding missing imports for unauthorised in database module
* Node under Servers Nodes (i.e. Databases, tablespaces, roles nodes)
  need to be inherited from PGChildNodeView (and, not from NodeView) for
  adding server version check for their children.
* Adding statistics for database, and tablespaces in its node (not, yet
  in UI)
* Renaming the camel case methods with proper name.
  (i.e. getSQL -> get_sql, getNewSQL -> get_new_sql, etc.)
* Fixed the functions going beyond the text limit (column: 80) in
  Databases, Roles & Tablespaces modules.
* Fixed the node method of Database module, which was not tested ever.
* We do not need separate SQL template for fetching the name (i.e.
  get_name.sql), using the 'nodes.sql' for the same.
* Optimise the query for fetching ACLs for the database node, we didn't
  require to join certain tables, while fetching only the ACLs.
* Introduced the list of the ACLs (regular and default ACLs for
  different type) supported by each version [Databases Module].
* Renamed the templates 'get_nodes.sql' to' nodes.sql' to make it
  consistent with other modules.
* Removed the checks for the authentication table use, as we don't need
  to expose the password to the users (even the encrypted MD5). Using
  the pg_roles view always for fetching roles/users information now.
* Resolved some typos in unreachable (specially the exceptions
  catchment area.)
* Logging the exception in the application.
* Using qtLiteral, qtIdent properly in the templates (do not assume
  about the types of data.)
* Using tsid as identifier instead of did for the tablespaces.
* Using nodes method of tablespace view for fetching individual node
  information.
* Removing the hardcoded node information from the 'parse_priv_to_db'
  function, and pass on allowed ACLs by the caller nodes.
* Using 'nodes.sql' to fetch name of the template instead of writing
  that in the delete.sql template, which is definitely wrong place to
  fetch the name of the object. [Tablespace Module]
2016-02-22 11:44:24 +05:30
Harshal Dhumal
a3d23a65bb Disconnect the database connection only once not every time before
running the offline queries i.e. renaming of the database, using
different tablespce for the database, etc.
2016-02-18 17:08:24 +05:30
Ashesh Vashi
3d134a3d07 Initialize (executing the constructor) for the PGNodeModule needs to be
called while initialing the CollectionNodeModule, as
super(..).__init__(..) does not call __init__ function of all parent
classes. Please refer to method resolution order (MRO) in python for
more information.

This patch also includes some typo resolution in PGNdoeModule. Also,
removed the AddAttr(..) at the moment, because - it is not going
anywhere at the moment.
2016-02-18 17:08:24 +05:30
Dave Page
131043d7cb Don't ask before connecting to servers or databases, just do it like pgAdmin 3. 2016-02-12 16:46:56 +00:00
Dave Page
47fc43c23f Don't add (GROUP) to the end of group role names; that's denoted by the icon. 2016-02-12 16:39:56 +00:00
Khushboo Vashi
b32496f71a Allow to use the select2 with multiple selection. Changed the formatter
used by NodeAjaxOptions Family controls to takes care the data returns
by these controls.
2016-02-10 13:09:09 +05:30
Murtuza Zabuawala
a02b1a4813 Adding validation for the previleges control. 2016-02-10 13:01:14 +05:30
Murtuza Zabuawala
dc51baefcc Adding more jinja2 template macros for the default previleges. 2016-02-10 13:00:19 +05:30
Khushboo Vashi
637a5838a8 Resolved a typo in variable name 'version_compatible' 2016-02-10 12:12:06 +05:30
Dave Page
2a52462dbf Add a simple version check mechanism to warn the user if a new release is available. 2016-02-08 16:28:20 +00:00
Ashesh Vashi
712f47987f Resolving an error related to not able to generate the reversed
engineered SQL from the database when no ACL is defined.
2016-02-05 17:29:04 +05:30
Ashesh Vashi
a82f58a8f4 Resolved an internal server error while selecting the role node on
PostgreSQL/PPAS server (version >= 9.5).

Reported by: Akshay Joshi
2016-02-05 15:51:30 +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
01d020ed95 Do not show the tablespace node as inode ('+' sign for expanding the tree node for it). 2016-02-05 14:19:30 +05:30
Ashesh Vashi
657f14997b Adding the Database node.
We know that current implemenation have some limitations:
i.e.
* We should not show the template0 in the browser tree.
* Should not connect to the database which does not have permission to connect the server by the current user.
* Show default previlige for PUBLIC in creation mode.
* Allow to create/database database only if current user have sufficient permission.
* Do not show reversed engineered SQL in all supported version.
* Do not showing system database or not.

Author: Khushboo Vashi, Harshal Dhumal, Murtuza Zabuawala
Reviewed by: Neel Patel, Akshay Joshi
2016-02-05 13:06:50 +05:30
Ashesh Vashi
71a69f1dd4 Adding the Tablespace node
Author: Murtuza Zabuawala
Reviewed by: Neel Patel, Ashesh Vashi
2016-02-05 09:51:02 +05:30
Ashesh Vashi
91c0388a47 Adding the Login/Group Role Node.
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.
2016-02-05 09:48:38 +05:30
Harshal Dhumal
3ff77e9866 Common functions to convert the privileges format to/from the database
server.
2016-02-04 21:02:15 +05:30
Murtuza Zabuawala
359dff0f78 Fixed the NodeAjaxOtionsControl formatter, which was causing malformed
string, when have special character.
2016-02-03 16:41:28 +05:30
Murtuza Zabuawala
79cd9d518c Modified the variable jinja2 macros to allow to set/reset multiple
options in a single command, instead of multiple commands.
2016-02-03 16:35:46 +05:30
Ashesh Vashi
fc676efa30 Do not trigger 'pgadmin-session:invalid' event, when a child object do
not have any validation error, or the validation error message is null.

Thanks Murtuza for find out the root cause.
2016-02-02 19:42:50 +05:30
Murtuza Zabuawala
e9497687d0 Adding the macros to set variable options for objects other than Role. 2016-02-02 19:40:00 +05:30
Harshal Dhumal
b77c5a6c54 Python 2.6 support fixes. 2016-01-27 15:59:54 +01:00
Harshal Dhumal
c421bef0d0 Changed the Unique Columns of the Variable Control based on the input
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(..).
2016-01-22 18:19:13 +05:30
Harshal Dhumal
d0f7e69ad7 Added two jinja2 template macro for support for priviliges and default
privileges.

Also, made a change in the privilege.js to scroll the div to make the
opening div visible properly.
2016-01-22 18:07:12 +05:30
Harshal Dhumal
7f3c972d06 Resovled a typo in rendering the NodeAjaxOptionsCell about getting the
options from the column schema for the cell.
2016-01-22 13:23:09 +05:30
Harshal Dhumal
c6cfad4f01 Fix minor status bar display issue. 2016-01-21 09:10:00 +00:00
Harshal Dhumal
720a9c819b Resolved a typo in the datamodel javascript. 2016-01-21 12:25:31 +05:30
Murtuza Zabuawala
d2f6135a98 [Python 3] Fixed the issue processing the request data (decoding issue)
for UPDATE operation of the server node.
2016-01-21 12:24:20 +05:30
Ashesh Vashi
ba4a6faaa4 Resolved a typo in the frame javscript 2016-01-20 20:23:59 +05:30
Harshal Dhumal
422bad4394 Allow the privileges control to work properly. Resolved few typos and
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.
2016-01-20 20:23:23 +05:30
Ashesh Vashi
3b1bbe55fa Model needs to update the parent collection object, that - it has been
modified, and please do the needful.

This allows us to track down the nested objects within the nested
objects.
2016-01-20 20:17:30 +05:30
Surinder Kumar
4f4ce74518 Setting a missing parameter - 'empty_value' in NodeAjaxOptionsControl 2016-01-19 19:20:14 +05:30
Ashesh Vashi
8120b380bb Introduced a event manager for the browser, which will generate certain
known events, when any activity happens on the browser layout.

The following types of events will be triggered through the browser
event manager.
- pgadmin-browser:frame:* [1]
- pgadmin-browser:frame-<name>:* [1]
- pgadmin-browser:panel:* [1]
- pgadmin-browser:panel-<name>:* [1]
- pgadmin-browser:panel
- pgadmin-browser:frame
- pgadmin-browser:tree
- pgadmin-browser:tree:* [2]

[1] The '*' denotes some of the events generated by the wcDocker, which
    can be useful to do some operations.
	These events are:
	+ wcDocker.EVENT.UPDATED
	+ wcDocker.EVENT.VISIBILITY_CHANGED
	+ wcDocker.EVENT.BEGIN_DOCK
    + wcDocker.EVENT.END_DOCK
	+ wcDocker.EVENT.GAIN_FOCUS,
	+ wcDocker.EVENT.LOST_FOCUS
	+ wcDocker.EVENT.CLOSED
	+ wcDocker.EVENT.BUTTON
	+ wcDocker.EVENT.ATTACHED
	+ wcDocker.EVENT.DETACHED
	+ wcDocker.EVENT.MOVE_STARTED
	+ wcDocker.EVENT.MOVE_ENDED
	+ wcDocker.EVENT.MOVED
	+ wcDocker.EVENT.RESIZE_STARTED
	+ wcDocker.EVENT.RESIZE_ENDED
	+ wcDocker.EVENT.RESIZED
	+ wcDocker.EVENT.SCROLLED

[2] The '*' denotes all the events generated by the Browser Tree
    (aciTree).

The extension modules can utilize these events to do some operations on
nodes, and panels.

This patch includes showing 'Reversed Engineered Query' for the selected
node (if allowed) using the above approch.

The ShowNodeSQL module looks for two events.
1. SQL Panel Visibility change.
   - Based on the visibility of that panel, we start/stop listening the
	 node selection event.
2. Node Selection in Browser tree
   - Based on the selected node type, it will look for 'hasSQL'
	 parameter of the node, and fetch the Query from the server, and
	 show it in the SQL editor.
2016-01-19 18:18:47 +05:30
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
2acba32c86 Moving the data model and collection to separate module for better code
handling.
2016-01-19 10:16:02 +05:30
Dave Page
694506453b Copyright updates for 2016. 2016-01-18 14:48:14 +00:00
Dave Page
94bed721bd Bump the version requirement for Flask-Gravatar to 0.4.2.
This version has been restructured and plays nicely with our runtime.
2016-01-18 13:27:40 +00:00
Ashesh Vashi
d9f349b60b Chagned the variable control to use the new format of
generateSchemaView(...) output. Also, set the value in proper format
before rendering them using DynamicVariableCell.
2016-01-18 14:49:40 +05:30
Ashesh Vashi
0edf29b534 Fixed the missing translation in the 'Connetion' group, while defining
the schema.
2016-01-17 22:21:59 +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
Ashesh Vashi
e7bcba0050 Send the consistent data from both menus and context menus. 2016-01-15 19:46:45 +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
Harshal Dhumal
1ce0db3b58 Introducing NodeAjaxOptionsCell, NodeListByNameCell, NodeListByIdCell
for using them with Backgrid.

It has similar functionality which we have done for fetching node
options for select2 cell using ajax at the time of initialization to use
it with Backgrid.
2016-01-15 18:25:34 +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
586b81b162 Data management within the properties dialog in Create/Edit mode is not
done using the Backbone event management.

Emitting 'pgadmin-session:*' for different operations, when we
create/modify the data within the properties dialog.

We will keep track of each child node using the handler object within
the Model, and Collection objects, also - provides them the name of the
attribute, it represents. It will be used to identify the invalid nested
objects within the existing object.

Also, provide the array of modified variables, which were modified in
the validation function to avoid checking each, and every thing in the
validation function. We will need to validate that particular and the
dependent attributes only.

Also - avoid multiple validation operations from the parent object to
improve performance. And, depends on the event based operations for
validation, instead of integrate the data operation and view operation
within one operation. We do maintain the invalid objects, and validate
them only from the collection objects, which also helps improve the
performance during validation.
2016-01-15 16:41:36 +05:30
Ashesh Vashi
eab12f21af Do proper validation in the server panel. 2016-01-12 22:21:33 +05:30
Ashesh Vashi
4feea580aa Using the events to track the session changes, and enable/disable Save,
Reset buttons.

Also - setting/reseting the error messages on status-bar when data are
not valid.
2016-01-12 22:21:33 +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
27040a22a7 Make the select2 control disabled (when required). 2016-01-12 12:08:18 +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
3887c84446 Update the server-information, when connected, and added. 2016-01-11 22:52:13 +05:30
Ashesh Vashi
932ed358e8 Adding the current user information in the server information (when
connected).
2016-01-11 22:11:10 +05:30
Ashesh Vashi
2bdd449bd0 Changed the way - we saw the title in the panel to allow the node to
decide, what to saw.
2016-01-11 21:30:46 +05:30
Ashesh Vashi
ca2c693ce4 Renamed the macro DROP to RESET for variables (configuration
parameters).
2016-01-11 13:06:45 +05:30
Ashesh Vashi
97cf27c6b0 Added new custom template hasAny to check if the request has one of the
given key in it or not.
2016-01-11 13:05:35 +05:30
Ashesh Vashi
65f70b46ce Remove the objects from the session while JSONify the objects, sent to
the server.

Also - set width of the select2 container to 100% under backgrid.
2016-01-09 21:55:21 +05:30
Ashesh Vashi
429f585a62 Resolved an issue found generating the URL for some other node from some
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.
2016-01-09 19:54:53 +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
30a316ad09 Use the new functionality to add 'Drop' node in server node, and set
minimum, maximum value for the port.
2016-01-07 18:52:12 +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
Ashesh Vashi
5e67ca959d JSONinfy all data in new mode for the Backbone.Model.
Also, takes care about not quoting the identifier, when found any digit
in the name (except it starts with a digit).
2016-01-07 09:40:45 +05:30
Ashesh Vashi
ee3efc369d Stringify the data only during GET mode. 2016-01-07 08:37:14 +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
Ashesh Vashi
456f5bc5b7 Making minor changes:
* Start tracking changes immediatedly depends on the handler.
* Attaching control with the filter in the NodeListByNameControl.
* Generating proper data for the NodeListByNameControl.
2016-01-06 02:25:13 +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
d498b473c7 Changing the caching mechanism to allow it to store at particular level.
Some data will be applicable to parent level, even though - it has
been fetched it from a particular node.

i.e.
roles will be applicable to server level (not particular role level).
2016-01-05 14:36:33 +05:30
Ashesh Vashi
aec96b4933 Adding the node at correct place in the browser tree after creating new object. 2016-01-05 13:02:00 +05:30
Ashesh Vashi
7beaefd1c6 Resolving few issues with the drop/drop cascade object function at front-end.
Also, modified the translation messages as per Dave (Thanks Akshay Joshi for the patch).

Modified the way, we show the error message dialog.
2016-01-05 12:36:33 +05:30
Ashesh Vashi
faa984debc Append the new node under the collection, when it should be. 2016-01-05 02:15:22 +05:30
Ashesh Vashi
8cd0fda406 Pass the data of the parent, not type, while checking in the isParent(..) function 2016-01-04 23:25:21 +05:30
Ashesh Vashi
6b0f4790da Show the menus "Delete/Drop", and "Drop Cascade", when defined respective functions canDrop(..), and canDropCascade(..) for the node. 2016-01-04 21:57:18 +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
84843f8c37 Pass the tree item object to the menu objects, which could be used by
the disabled function to make it enable/disable based on the current
selected item.
2016-01-04 17:22:06 +05:30
Harshal Dhumal
eed1590a51 Do not close the privilege cell editor, when clicked one of its own
children.

Also, resolved an issue related showing 'unknown' instead of privileges,
when loading existing privileges.
2016-01-04 16:59:47 +05:30
Harshal Dhumal
9d9f17c163 Clear the status-bar on the 'on-status-clear' event of the model 2016-01-04 16:54:06 +05:30
Harshal Dhumal
6057259bdc Create the status-bar in the properties dialog, and it will listen for
on-status event from the model.
2016-01-04 13:35:11 +05:30
Ashesh Vashi
613be3b6fe Resolved a typo introduced in the previous commit. 2016-01-04 12:58:29 +05:30
Ashesh Vashi
aedf970748 Allow to use the url with/without the node id in the node ajax options
control, also - allow to specify the filter function in the nodes-by-id,
and nodes-by-name control.
2016-01-04 12:43:27 +05:30
Surinder Kumar
f451bd0a83 Set options fetched from the server as it is only when transform function is not provided. 2016-01-04 12:19:00 +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
Murtuza Zabuawala
cf802cb23f Resolved an issue in the node control related using existing cached data 2016-01-04 11:12:03 +05:30