diff --git a/buildVersion.py b/buildVersion.py
index d52c188ce03b4090d6fda631e7014bfc8b6e471d..41677e009fa5079dc9650255f9f31a41570057ac 100755
--- a/buildVersion.py
+++ b/buildVersion.py
@@ -45,6 +45,7 @@ import urllib
 APP = os.path.basename(os.getcwd())
 CHANGELOG = 'static/plugin_dbui/CHANGELOG'
 DBUI_W2P = 'web2py.plugin.dbui.%s.w2p'
+EXTJSSRC = 'static/plugin_extjs/src'
 JSBASE = 'static/plugin_dbui/src/base.js'
 JSDOC = 'static/plugin_dbui/docs/jsduck'
 JSLIBDEBUG = 'static/plugin_dbui/dbui-debug.js'
@@ -176,7 +177,11 @@ def jsduck():
     subprocess.call(cmd)
 
     # run JsDuck
-    cmd = ["jsduck", JSLIBSRC, "--output", JSDOC, "--title", "plugin_dbui"]
+    cmd = ["jsduck", EXTJSSRC, JSLIBSRC, \
+           "--output", JSDOC, \
+           "--title", "plugin_dbui", \
+           "--warnings=-all:"+EXTJSSRC]
+    
     subprocess.call(cmd)
 
     print "JavaScript documentation in", JSDOC
diff --git a/static/plugin_dbui/CHANGELOG b/static/plugin_dbui/CHANGELOG
index d9c31275f7744ad320ca848298a8adc296e13c51..f355adc7063057d7e6c3f00bd3f89d8fa94f4cf3 100644
--- a/static/plugin_dbui/CHANGELOG
+++ b/static/plugin_dbui/CHANGELOG
@@ -1,7 +1,7 @@
 --------------------------------- CHANGE LOG ----------------------------------
 
 HEAD
-  - Improve the Selector.select method to handle field with operator.
+  - Release Candidate running with ExtJS 4.2.1
 
 0.4.15.2 (Oct 2013)
   - Release only compatible with ExtJS 3.4.1.1 but identical to 0.4.15.1.
diff --git a/static/plugin_dbui/src/base.js b/static/plugin_dbui/src/base.js
index 4975cc650b1c2c679003567c718d17e8c756a1b7..ec25efa77d41157d212b041ba7ba75505db3ea5a 100644
--- a/static/plugin_dbui/src/base.js
+++ b/static/plugin_dbui/src/base.js
@@ -1,7 +1,6 @@
 /**
  * Core utilities and functions.
  */
-/*global App, Dbui */
 Ext.define('App', {
 
     singleton: true,
@@ -104,13 +103,13 @@ Ext.define('App', {
         }
     },
     /**
-     * Return the Ext.dsata.Store identifies by its id.
+     * Return the Ext.data.Store identifies by its id.
      * If the store does not exit it is created and register in the store manager.
      *
      * **Note:** The storeId is defined by the server.
      * The syntax of the storeId is *nameStore* where *name* corresponds
      * to a database table.
-     * The store configuration is extract from the array App#storeCfgs.
+     * The store configuration is extract from the array App#config.stores.
      *
      * In the current framework, this function associates a unique store
      * to a database table. Therefore it can be shared by different widgets.
diff --git a/static/plugin_dbui/src/basepanelwithselector.js b/static/plugin_dbui/src/basepanelwithselector.js
index 5ae42943ec874271d6dd00d94ad087d7b06c4f86..44d5eb520e99b5dd1eb0f8b0cd0b18ff7f739ae4 100644
--- a/static/plugin_dbui/src/basepanelwithselector.js
+++ b/static/plugin_dbui/src/basepanelwithselector.js
@@ -1,19 +1,21 @@
 /**
- *  A border layout with a panel and a selector.
+ *  A {@link Ext.layout.container.Border border} layout with a panel
+ * and a selector.
  *
- *  The selector is a collapsible panel appearing on the
- *  left/right/top/bottom side of the central panel.
- *  The selector contains a set of Fields usually organized in field sets.
- *  and two buttons Go and Reset.
+ * The selector is a collapsible panel appearing on the
+ * left/right/top/bottom side of the central panel.
+ * The selector contains a set of {@link Ext.form.Field fields} usually
+ * organized in {@link Ext.form.FieldSet field sets}
+ * and two {@link Ext.button.Button buttons} Go and Reset.
  *
- *  The configuration parameter **selectorRegion** defined the position
+ *  The configuration parameter #selectorRegion defined the position
  *  of the selector with respect to the central panel. Value are those
- *  of the border layout: east, west, south and north.
+ *  of the border layout: *east*, *west*, *south* and *north*.
  *  By default the selector is on the east side (right).
  *
- *  The size of the selector is determined by selectorHeight and selectorWidth.
- *  The former works when the selectorRegion is north and south while
- *  the latter is for region west and east.
+ *  The size of the selector is determined by #selectorHeight and #selectorWidth.
+ *  The former works when the #selectorRegion is *north* and *south* while
+ *  the latter is for region *west* and *east*.
  *
  *  The logic between the panel, the selector and the buttons
  *  is defined in inherited class.
diff --git a/static/plugin_dbui/src/combobox.js b/static/plugin_dbui/src/combobox.js
index 0270584f2ae6daf7decf207b0d9bf4f6f5fa3575..5bd07465feaf8ba44cfb9e35a7a0e7cb6ccdfef0 100644
--- a/static/plugin_dbui/src/combobox.js
+++ b/static/plugin_dbui/src/combobox.js
@@ -2,7 +2,7 @@
  * This is Ext.form.field.ComboBox linked to a database table.
  *
  * The store attribute is equal the table name when the widget
- * is configured. It is replaced by an Ext.data.store.Direct
+ * is configured. It is replaced by an App.data.DirectStore
  * in the initialization phase of the component.
  *
  */
diff --git a/static/plugin_dbui/src/comboboxmaster.js b/static/plugin_dbui/src/comboboxmaster.js
index 8306a07744f59754ecdb5dcf7661f572394d8007..beffe515ddb78bb985c78bd3757f7281c03b1b9d 100644
--- a/static/plugin_dbui/src/comboboxmaster.js
+++ b/static/plugin_dbui/src/comboboxmaster.js
@@ -1,24 +1,28 @@
 /**
- * The #ComboBoxMaster and the #ComboBoxSlave are two standard ComboBoxes
+ * The App.form.field.ComboBoxMaster and the App.form.field.ComboBoxSlave
+ * are two standard Ext.form.field.ComboBox.
  * linked together in such a way that the values available in the slave
  * depends on the selected value in the master.
  *
- * Both are bind to the unique store, the #refStore. It defines the
- * relation between master and slave values. It has to contain the
+ * Both are bind to the unique store, the
+ * {@link App.form.field.ComboBoxMaster#refStore refStore}.
+ * It defines the relation between master and slave values. It has to contain the
  * displayField and the valueField for the master and for the slave.
  *
  * The slave ComboBox has two additional configuration parameters:
  *
- *      - ComboBoxSlave#masterItemId.
- *        It is the itemId of the master widget.
- *        It is required to link the slave and the master widget in order to
- *        implement the logic between them.
+ * - {@link App.form.field.ComboBoxSlave#masterItemId masterItemId}.
+ *   It is the itemId of the master widget.
+ *   It is required to link the slave and the master widget in order to
+ *   implement the logic between them.
  *
- *      - ComboBoxSlave@masterValueField.
- *        The field name containing the valueField used by the master.
+ * - {@link App.form.field.ComboBoxSlave#masterValueField masterValueField}.
+ *   The field name containing the valueField used by the master.
  *
  * Several slaves can be bind to the same master.
  *
+ * @since 0.6.0.0
+ *
  */
 Ext.define('App.form.field.ComboBoxMaster', {
 
@@ -26,7 +30,7 @@ Ext.define('App.form.field.ComboBoxMaster', {
     alias: 'widget.xcomboboxmaster',
 
     /**
-     * @cfg {Ext.data.Store/String} [required]
+     * @cfg {Ext.data.Store/String} refStore (required)
      * The reference store shared by the master and by the slave.
      * It contains the relation between the master and slave values.
      * It has to contain the displayField and the valueField for the master
diff --git a/static/plugin_dbui/src/comboboxslave.js b/static/plugin_dbui/src/comboboxslave.js
index 4fef13b43bf9d5291f6b9c6a1415edaacc99b3d5..48fd2e321cab547353ec43e56a2225090affca56 100644
--- a/static/plugin_dbui/src/comboboxslave.js
+++ b/static/plugin_dbui/src/comboboxslave.js
@@ -1,5 +1,7 @@
 /**
- * The counter part of the EXt.form.field.ComboBoxMaster.
+ * The counter part of the App.form.field.ComboBoxMaster.
+ *
+ * @since 0.6.0.0
  *
  */
 Ext.define('App.form.field.ComboBoxSlave', {
@@ -8,19 +10,19 @@ Ext.define('App.form.field.ComboBoxSlave', {
     alias: 'widget.xcomboboxslave',
 
     /**
-     * @cfg {String} [required]
+     * @cfg {String} masterValueField (required)
      * The name of field containing master values.
      */
     masterValueField: undefined,
 
     /**
-     * @cfg {String} [required]
+     * @cfg {String} masterItemId (required)
      * The itemId of the master ComboBox.
      */
     masterItemId: undefined,
 
     /**
-     * @cfg {Ext.data.Store/String} [required]
+     * @cfg {Ext.data.Store/String} refStore (required)
      * The reference store shared by the master and by the slave.
      * It contains the relation between the master and slave values.
      * It has to contain the displayField and the valueField for the master
diff --git a/static/plugin_dbui/src/directproxy.js b/static/plugin_dbui/src/directproxy.js
index d48e525575233dacc161d43838ea9ae713cd796b..053b9261e8e7eb4b146895f478a357b5066b713d 100644
--- a/static/plugin_dbui/src/directproxy.js
+++ b/static/plugin_dbui/src/directproxy.js
@@ -21,16 +21,15 @@
  *      - records {Array}
  *        The content of the records depend of the operation.
  *        For create or update operation, the record is an Object containing
- *        the fields and their values. the field is encoded TableField.
- *        Fot a destroy operation it is just a list of ids.
+ *        the fields and their values. the field is encoded *TableField*.
+ *        For a destroy operation it is just a list of *ids*.
  *
- * the first two parameters are defined in the #extraParams attribute.
+ * the first two parameters are defined in the
+ * {@link Ext.data.proxy.Direct#extraParams extraParams} attribute.
  *
- * This method is a copy of the Ext.data.proxy.Direct.doRequest method
- * adapted to the create, update and destroy operation.
+ * @since 0.6.0.0
  *
  */
-/*global App */
 Ext.define('App.data.proxy.Direct', {
 
     extend: 'Ext.data.proxy.Direct',
@@ -78,6 +77,9 @@ Ext.define('App.data.proxy.Direct', {
      * Implement the server protocol for the create, read, update and
      * destroy operation.
      *
+     * **Note**: This method is a copy of the Ext.data.proxy.Direct.doRequest method
+     * adapted to the create, update and destroy operations.
+     *
      * @param {Ext.data.Operation} operation
      * @param {Object} callback
      * @param {Object} scope
diff --git a/static/plugin_dbui/src/fielddict.js b/static/plugin_dbui/src/fielddict.js
index 97a87c131531e89eef23649ac3f275c0b8087853..3a84a293f2b32203aef6bcd467b5c36c60d07f8b 100644
--- a/static/plugin_dbui/src/fielddict.js
+++ b/static/plugin_dbui/src/fielddict.js
@@ -24,7 +24,8 @@ Ext.define('Ext.grid.JsonColumn', {
  * date, float and string objects.
  *
  * The default structure of the dictionary can be defined via
- * the property dictCfg. It is possible to add / delete key value pairs.
+ * the configuration option #dictCfg.
+ * It is possible to add / delete key value pairs.
  *
  * @experimental
  * @since 0.4.15.0
diff --git a/static/plugin_dbui/src/fieldeditor.js b/static/plugin_dbui/src/fieldeditor.js
index deddad36ee6a4af67f684a271861c87ce75644ce..fa7b733246840dcc5b97e780d761ae790d88e04c 100644
--- a/static/plugin_dbui/src/fieldeditor.js
+++ b/static/plugin_dbui/src/fieldeditor.js
@@ -25,7 +25,7 @@ Ext.define('App.form.AceEditorField', {
     language: 'python',
 
     /**
-     * @cfg {Number} [required]
+     * @cfg {Number} editorHeight (required)
      * The height of the editor widget
      */
     editorHeight: 150,
diff --git a/static/plugin_dbui/src/fieldlist.js b/static/plugin_dbui/src/fieldlist.js
index 294263c3c530b5cef06d607850f157fa36197d28..07a41a5cc39c44783ca59aaf675d5b97ebc58d96 100644
--- a/static/plugin_dbui/src/fieldlist.js
+++ b/static/plugin_dbui/src/fieldlist.js
@@ -5,8 +5,9 @@
  * **Note** :The list can only contains string.
  *
  * **Note** : The onRender handle can be removed using the approach
- * describe in the url (see rixo):
- * http://stackoverflow.com/questions/6153362/how-to-create-custom-extjs-form-field-component
+ * describe
+ * [here](http://stackoverflow.com/questions/6153362/how-to-create-custom-extjs-form-field-component)
+ * (see rixo)
  *
  * @experimental
  * @since 0.4.15.0
diff --git a/static/plugin_dbui/src/form.js b/static/plugin_dbui/src/form.js
index c51ef7e82636001ba7c610bee147ee5b5b29929a..fe3809bc61977f328d9b6f3631344d340abdb629 100644
--- a/static/plugin_dbui/src/form.js
+++ b/static/plugin_dbui/src/form.js
@@ -5,18 +5,17 @@
  * two buttons *Action* and *Reset*.
  *
  * The store attribute is equal the table name when the widget
- * is configured. It is replaced by an Ext.data.store.Direct
+ * is configured. It is replaced by an App.data.DirectStore
  * in the initialization phase of the component.
  *
  * It also comes with a set of methods to
- * create, duplicate, destroy and update record in the databaase table.
+ * create, duplicate, destroy and update record in the database table.
  * Therefore this component can be used as a classic form, a row editor
  * for a grid, a record browser, ....
  *
  * The action associated to the button is set via the #setAction method.
  *
  */
-/*global App */
 Ext.define('App.form.FormPanel', {
 
     extend: 'Ext.form.Panel',
diff --git a/static/plugin_dbui/src/grid.js b/static/plugin_dbui/src/grid.js
index f84fe055b72babfda0b7fd5e297c7ec67cd4d9a2..56ea97983aefc9a8f9fe71070a4d634334410560 100644
--- a/static/plugin_dbui/src/grid.js
+++ b/static/plugin_dbui/src/grid.js
@@ -2,7 +2,7 @@
  * The Grid is an Ext.grid.Panel links to a database table.
  *
  * The store attribute is equal the table name when the widget is configured.
- * It is replaced by the Ext.data.store.Direct associated to the database
+ * It is replaced by the App.data.DirectStore associated to the database
  * table in the initialization phase of the component.
  *
  * Many functionality can be added through plugins like the
diff --git a/static/plugin_dbui/src/panelwithurlselector.js b/static/plugin_dbui/src/panelwithurlselector.js
index aabf7f0754fa79d7b79bea6d3e97f3189771e564..bd12da4325907844f455fc233212474382abb8bd 100644
--- a/static/plugin_dbui/src/panelwithurlselector.js
+++ b/static/plugin_dbui/src/panelwithurlselector.js
@@ -1,23 +1,20 @@
 /**
  * The Panel with URL selector is split in two parts a main panel and a selector.
- * The selector display a list of fields organized in Ext.form.Fieldset.
- * There values define the URL parameters. The main panel displays
- * the URL content.
+ * The selector display a list of {@link Ext.form.Field fields} organized in
+ * {@link Ext.form.FieldSet field set}.
+ * The URL content is displayed in the main panel.
  *
- * Configuration for the main panel and the selector are set via
- * the option panelCfg and selectorCfg.
- *
- * The URL display in the main panel is defined by the baseUrl option.
+ * The URL display in the main panel is defined by the #baseUrl option.
  * It can be modified dynamically by extracting the name of the
- * controller, function and/or  extension from the selector fields.
- * The options ctrlField, extField and funcField are used to determine
+ * *controller*, *function* and/or *extension* from the selector fields.
+ * The options #ctrlField, #extField and #funcField are used to determine
  * the associated fields.
  *
  * Mathematical symbols will be interpreted when the javascript library
- * mathjax is load and when the isMathJax property is true.
+ * [MathJax](http://www.mathjax.org/) is load and when the #isMathJax
+ * property is true.
  *
  */
-/*global MathJax */
 Ext.define('App.PanelWithUrlSelector', {
 
     extend: 'App.BasePanelWithSelector',
@@ -32,21 +29,21 @@ Ext.define('App.PanelWithUrlSelector', {
     /**
      * @cfg {String}
      * The name of the field defining the controller.
-     * The URL becomes baseUrl/ctrlFieldValue
+     * The URL becomes **baseUrl/ctrlFieldValue**.
      */
     ctrlField: undefined,
 
     /**
      * @cfg {String}
      * The name of the field defining the extension.
-     * The URL becomes baseUrl.extFieldValue
+     * The URL becomes **baseUrl.extFieldValue**.
      */
     extField: undefined,
 
     /**
      * @cfg {String}
      * The name of the field defining the function.
-     * The URL become baseUrl/funcFieldValue
+     * The URL becomes **baseUrl/funcFieldValue**.
      */
     funcField: undefined,
 
@@ -58,7 +55,7 @@ Ext.define('App.PanelWithUrlSelector', {
 
     /**
      * @cfg {Number}
-     * The time out for the Ajax request in millisecond.
+     * The time out for the {@link Ext.Ajax Ajax request} in millisecond.
      */
     timeout: 30000,
 
diff --git a/static/plugin_dbui/src/pformtooltip.js b/static/plugin_dbui/src/pformtooltip.js
index 15f085b8f60393653bcdba20d3f26df4c55349a7..8917ee07b7b92e7799491be616c0b3a492b6e001 100644
--- a/static/plugin_dbui/src/pformtooltip.js
+++ b/static/plugin_dbui/src/pformtooltip.js
@@ -2,9 +2,9 @@
  * The tooltip plugin for App.form.FormPanel.
  *
  * Activate tooltip associated to each field.
- * It can be used with App.form.FormPanel and Ext.form.Fieldset.
+ * It can be used with App.form.FormPanel and Ext.form.FieldSet.
  *
- * **Note**: It used the dedicated Field configuration option: *tipText*.
+ * **Note**: It used the custom Field configuration option: *tipText*.
  *
  */
 Ext.define('App.form.ToolTip', {
diff --git a/static/plugin_dbui/src/pgridexpertmenu.js b/static/plugin_dbui/src/pgridexpertmenu.js
index 6bbde7f2ddbfe073f26ef05aed90549308f9b7fe..db2bffe3d9210ab5597bbda9556953dd30beb651 100644
--- a/static/plugin_dbui/src/pgridexpertmenu.js
+++ b/static/plugin_dbui/src/pgridexpertmenu.js
@@ -16,7 +16,7 @@ Ext.define('App.grid.ExpertMenu', {
     textReset: 'Reset',
 
     /**
-     * The plugin initialization
+     * Initialize the plugin
      *
      * @param {App.grid.Grid} grid
      *
diff --git a/static/plugin_dbui/src/pgridmathjax.js b/static/plugin_dbui/src/pgridmathjax.js
index 71667a91ad364afe4fd42e955c09cf5ae3aacd3f..fb2a83959e14c89f0c02262696526b72f80f8c8e 100644
--- a/static/plugin_dbui/src/pgridmathjax.js
+++ b/static/plugin_dbui/src/pgridmathjax.js
@@ -1,10 +1,9 @@
 /**
  * The plugin to render mathematics formula embedded in grid content.
- * The processing is performed by MathJax.
+ * The processing is performed by [MathJax](http://www.mathjax.org/).
  * The MathJax library is loaded by the framework
  *
  */
-/*global MathJax */
 Ext.define('App.grid.MathJax', {
 
     extend: 'Ext.AbstractPlugin',
diff --git a/static/plugin_dbui/src/pgridroweditorbase.js b/static/plugin_dbui/src/pgridroweditorbase.js
index 998b9ecebde469913d3dde547362246387afb1e9..d7cef43b530624f9f1de8c00972bc3d81bfe6e4c 100644
--- a/static/plugin_dbui/src/pgridroweditorbase.js
+++ b/static/plugin_dbui/src/pgridroweditorbase.js
@@ -7,7 +7,6 @@
  * **Note**: This plugin limits the number of selected row to one.
  *
  */
-/*global App, Dbui */
 Ext.define('App.grid.RowEditor',  {
 
     extend: 'Ext.AbstractPlugin',
@@ -225,7 +224,7 @@ Ext.define('App.grid.RowEditor',  {
      * Fire when the write transaction is successful.
      * Its main action is to hide the window.
      *
-     * @param {Ext.data.store} store
+     * @param {Ext.data.Store} store
      *
      * @param {String} action
      *
@@ -243,7 +242,7 @@ Ext.define('App.grid.RowEditor',  {
 
     /**
      * Get the index of the selected record and fill
-     * the property #formPanel.indexSelectedRecord
+     * the property #formPanel.indexSelectedRecord.
      */
     setCurrentIndex: function () {
 
diff --git a/static/plugin_dbui/src/pgridroweditorcontextmenu.js b/static/plugin_dbui/src/pgridroweditorcontextmenu.js
index 305277795b1cdf0273cee62ee8c9a4ece2edea89..1a33274469321c77fc18bb133be181f8285f3288 100644
--- a/static/plugin_dbui/src/pgridroweditorcontextmenu.js
+++ b/static/plugin_dbui/src/pgridroweditorcontextmenu.js
@@ -130,7 +130,7 @@ Ext.define('App.grid.RowEditorContextMenu',  {
     /**
      * Show the context menu when right clicking in the non-empty grid.
      *
-     * @param {Ext.view.view} view
+     * @param {Ext.view.View} view
      * @param {Ext.data.Model} record
      * @param {HTMLElement} item
      * @param {Ext.EventObject} event
diff --git a/static/plugin_dbui/src/pgridroweditortoolbar.js b/static/plugin_dbui/src/pgridroweditortoolbar.js
index c8eb9ddb3f558a48f44972fe98d02977ac504a86..da3bf78ae51a4a28ed2b39a285024819c92218f3 100644
--- a/static/plugin_dbui/src/pgridroweditortoolbar.js
+++ b/static/plugin_dbui/src/pgridroweditortoolbar.js
@@ -11,7 +11,7 @@ Ext.define('App.grid.RowEditorToolbar',  {
     alias: 'plugin.pGridRowEditorToolbar',
 
     /**
-     * Plugin initialization.
+     * Initailize the plugin.
      *
      * @param {App.grid.Grid} grid
      */
diff --git a/static/plugin_dbui/src/ppanelloaderexceptionl.js b/static/plugin_dbui/src/ppanelloaderexception.js
similarity index 94%
rename from static/plugin_dbui/src/ppanelloaderexceptionl.js
rename to static/plugin_dbui/src/ppanelloaderexception.js
index f455779ab16baec41caafe823ad5953cbcf67e02..642c34032f8916c3a856efba90d29899a365ab01 100644
--- a/static/plugin_dbui/src/ppanelloaderexceptionl.js
+++ b/static/plugin_dbui/src/ppanelloaderexception.js
@@ -1,5 +1,8 @@
 /**
  * Panel plugin to handle Ext.ComponentLoader exception
+ *
+ * @since 0.6.0.0
+ *
  */
 Ext.define('App.panel.plugin.LoaderException', {
 
@@ -34,7 +37,7 @@ Ext.define('App.panel.plugin.LoaderException', {
     /**
      * Handler call when the procedure loading the panel failed.
      *
-     * @param {Ext.ComponentLaoder} loader
+     * @param {Ext.ComponentLoader} loader
      * @param {Object} response
      * @param {Object} options
      */
diff --git a/static/plugin_dbui/src/ppanelmathjax.js b/static/plugin_dbui/src/ppanelmathjax.js
index b915258e9a11d57807d0bdfa0b7ddbf079f5d213..4c1c454083f30f30a10ff90fd024ee34726e36a2 100644
--- a/static/plugin_dbui/src/ppanelmathjax.js
+++ b/static/plugin_dbui/src/ppanelmathjax.js
@@ -3,7 +3,6 @@
  * The processing is performed by the [MathJax](http://www.mathjax.org/) library.
  *
  */
-/*global MathJax */
 Ext.define('App.panel.MathJax',  {
 
     extend: 'Ext.AbstractPlugin',
diff --git a/static/plugin_dbui/src/pviewportlogin.js b/static/plugin_dbui/src/pviewportlogin.js
index d6dd262657d15dd652f54dfd532bb38560294920..c3feca714df9e46fa92b45d4fa8242799520a2a8 100644
--- a/static/plugin_dbui/src/pviewportlogin.js
+++ b/static/plugin_dbui/src/pviewportlogin.js
@@ -10,7 +10,6 @@
  * @uses App.Viewport
  *
  */
-/*global App */
 Ext.define('App.ViewportLogin', {
 
     extend: 'Ext.AbstractPlugin',
@@ -75,6 +74,7 @@ Ext.define('App.ViewportLogin', {
     /**
      * Open the URL in a new window.
      *
+     * @param {Ext.button.Button} button
      * @param {String} button.href
      * The URL is relative to the application, e.g. "controller/function"
      *
diff --git a/static/plugin_dbui/src/viewport.js b/static/plugin_dbui/src/viewport.js
index 10e56abf4eea3d2712606958961cfa895dcd731f..aef920bd03f1a26ad5c57a459633b1df4c9c0791 100644
--- a/static/plugin_dbui/src/viewport.js
+++ b/static/plugin_dbui/src/viewport.js
@@ -2,15 +2,16 @@
  * The ViewPort component is the main interface expose to the user.
  * It contains the Ext.tree.TreePanel, on the left side and the
  * Ext.TabPanel on the right side.
- * The TreePanel lists Ext.TreeNodes.
- * An action is triggered by clicking on a leaf.
+ * The TreePanel lists {@link Ext.data.NodeInterface node}.
+ * Actions are triggered by clicking on a node.
  *
- * Two actions are possible. In the first one a new Tab is create in the
+ * Two actions are possible when a leaf node is clicked.
+ * In the first case a new Tab is create in the
  * TabPanel displaying configuration parameters and the results of the operation.
  * In the second case a window pop-up containing information, wizard, ....
  *
- * The choice between the two action is determined by the component configuration
- * embedded in the TreeNode (TreeNode#text).
+ * The choice between the two action is determined by the xtype of the
+ * component configuration embedded in the node.
  * In the first case the xtype is *panel* while in the second one is *window*.
  *
  */
@@ -20,9 +21,9 @@ Ext.define('App.Viewport', {
     alias: 'widget.xviewport',
 
     /**
-     * @property {Ext.tree.TreeNode.text[]}
-     * The list of node.text attribute defining the path of the node
-     * to be opened at start up.
+     * @property {String[]}
+     * The list of {@link Ext.data.NodeInterface#text text} attribute
+     * defining the path of the nodes to be opened at start up.
      */
     defaultTabPath: null,