Commit Graph

57 Commits

Author SHA1 Message Date
Libor M
94864104e4 Added and fixed gettext usage for better translation coverage. Fixes #5284
1) Fixed usage gettext('') instead of _('') in javascript files.
  2) Fixed usage gettext('') instead of `${gettext('')}` in javascript files,
     because "pybabel extract" not support extracting from this syntax.
2020-03-24 11:14:05 +05:30
Aditya Toshniwal
fde8e4054a Fixed an issue where Grant wizard unable to handle multiple objects when the query string parameter exceeds its limit. Fixes #4511 2020-01-20 17:53:21 +05:30
Aditya Toshniwal
d4ee869281 Fixed broken tags and tokenizer options of select2. Regression of #5038
With the change of data adapter, we have configured adapters for tags and tokenizers.
We also renamed the method onDemandLoad to showOnScroll to avoid confusion.
2020-01-06 12:47:56 +05:30
Dave Page
01c7636c75 Update copyright notices for 2020. 2020-01-02 14:43:50 +00:00
Aditya Toshniwal
febbd729ec Ensure that constraints, indexes, rules, triggers, and compound triggers should be created on partitions. Fixes #4842. 2020-01-01 12:59:48 +05:30
Aditya Toshniwal
737f8375fb Added support for on-demand loading of items in Select2. Fixes #5038. 2020-01-01 11:24:16 +05:30
Aditya Toshniwal
f1a18749f6 1) Allow screen-reader to read relationship attributes for tab, tabpanels and tables under it. Similar changes are done for subnode controls.
2) Add role="img" for font icons.

Fixes #4764
2019-12-17 13:22:36 +05:30
Khushboo Vashi
74af8976c9 Ensure that newly added row in backgrid should be visible. 2019-04-23 17:32:00 +05:30
Khushboo Vashi
e4417229aa Update all Python and JS dependencies. Fixes #4019 2019-03-14 15:11:16 +00:00
Dave Page
d7bf6ec69f String review and subsequent cleanup
Ashesh Vashi
Abhilasha Narendra
Karen Blatchley
Susan Douglas
Dave Page
2019-03-05 14:08:16 +00:00
Murtuza Zabuawala
e23d307c56 Update copyright notices for 2019 2019-01-02 15:54:12 +05:30
Ashesh Vashi
5799ac14ba Improvement in the look and feel of the whole application
Changed the SCSS/CSS for the below third party libraries to adopt the
new look 'n' feel:
- wcDocker
- Alertify dialogs, and notifications
- AciTree
- Bootstrap Navbar
- Bootstrap Tabs
- Bootstrap Drop-Down menu
- Backgrid
- Select2

Adopated the new the look 'n' feel for the dialogs, wizard, properties,
tab panels, tabs, fieldset, subnode control, spinner control, HTML
table, and other form controls.

- Font is changed to Roboto
- Using SCSS variables to define the look 'n' feel
- Designer background images for the Login, and Forget password pages in
  'web' mode
- Improved the look 'n' feel for the key selection in the preferences
  dialog
- Table classes consistency changes across the application
- File Open and Save dialog list view changes

Author(s): Aditya Toshniwal & Khushboo Vashi
2018-12-21 17:14:55 +05:30
Murtuza Zabuawala
04735e631e Minor bootstrap 4 fixes:
- Removed 'collapse in' css from wizard as we have 'collapse show' in Bootstrap-4
- Fixed 'Select/Unselect All' button layout for Select2 control used in pgAgent.
2018-12-13 10:28:58 +00:00
Murtuza Zabuawala
c66840bc8e Fix some styling regressed in #2927. 2018-10-09 11:22:54 +01:00
Aditya Toshniwal
82c9cca683 Move all CSS into SCSS files for consistency and ease of colour maintenance etc. Fixes #2927 2018-09-04 11:24:51 +01:00
Murtuza Zabuawala
0f17b4f738 Ensure 'select all' and 'unselect all' working properly for pgAgent schedule. Fixes #3313. 2018-08-22 15:13:40 +05:30
Aditya Toshniwal
41a8333145 Replace deprecated success, error callbacks in $.ajax call with new functions .done and .fail. 2018-07-09 13:54:00 +01:00
Ashesh Vashi
c32eb6bd37 Fixed the warnings/errors reported by eslint for all the static
javascripts.
2018-01-12 13:00:14 +05:30
Murtuza Zabuawala
c5d1fc8189 Ensure the datatype cache is updated when a domain is added. Fixes #2778 2017-12-13 15:17:17 +00:00
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
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
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
Murtuza Zabuawala
95f763463f Fix an issue in NodeAjaxControl caching with cache-node field and add cache-node field in Trigger & Event trigger node so that whenever the user creates new Trigger Function we get new data from server in NodeAjaxControl. . Fixes #2242 2017-05-04 16:02:28 +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
Ashesh Vashi
2c6ca7d82c Changed the Select2Control to work more consistently. 2016-05-21 15:41:38 +05:30
Sanket Mehta
6895da9cbc Added support for FTS configuration node 2016-05-19 21:04:07 +05:30
Harshal Dhumal
585daddce2 Destroy the existing Select2 object before rerendering the control. 2016-05-12 16:14:06 +05:30
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
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
Surinder Kumar
40c592a988 Grant wizard. 2016-04-13 16:11:43 +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
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
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
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
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
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
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
Khushboo Vashi
637a5838a8 Resolved a typo in variable name 'version_compatible' 2016-02-10 12:12:06 +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
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
Surinder Kumar
4f4ce74518 Setting a missing parameter - 'empty_value' in NodeAjaxOptionsControl 2016-01-19 19:20:14 +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
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
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
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