From 2c92a181d600b513e707f1103a1fb65682cb35c7 Mon Sep 17 00:00:00 2001
From: Romain Courteaud <romain@nexedi.com>
Date: Mon, 27 Jun 2016 13:49:48 +0000
Subject: [PATCH] [erp5_web_renderjs_ui] Drop jquery/jquerymobile dependencies

Implement an ad-hoc responsive CSS for ERP5.
This CSS is generated with the LESS compiler (http://less2css.org/).

Create new ERP5 launcher, to break compatibility with officejs.
OfficeJS apps will be migrated one by one to the new CSS.
---
 .../rjs_gadget_erp5_appcache.xml              |   15 +-
 .../web_page_module/rjs_gadget_erp5_css.xml   |    6 +-
 .../rjs_gadget_erp5_editor_panel_js.js        |   27 +-
 .../rjs_gadget_erp5_editor_panel_js.xml       |    4 +-
 .../web_page_module/rjs_gadget_erp5_html.xml  |    8 +-
 .../web_page_module/rjs_gadget_erp5_js.xml    |    6 +-
 .../rjs_gadget_erp5_latest_css.css            | 1211 -------
 .../rjs_gadget_erp5_launcher_html.html        |   63 +
 ....xml => rjs_gadget_erp5_launcher_html.xml} |   34 +-
 .../rjs_gadget_erp5_launcher_js.js            |  562 ++++
 ...js.xml => rjs_gadget_erp5_launcher_js.xml} |   33 +-
 .../rjs_gadget_erp5_listbox_html.html         |   16 +-
 .../rjs_gadget_erp5_listbox_html.xml          |    4 +-
 .../rjs_gadget_erp5_listbox_js.js             |    4 +-
 .../rjs_gadget_erp5_listbox_js.xml            |    4 +-
 .../rjs_gadget_erp5_nojqm_css.css             | 2649 +++++++++++++++
 ..._css.xml => rjs_gadget_erp5_nojqm_css.xml} |   30 +-
 ..._gadget_erp5_panel_configuration_html.html |  127 -
 .../rjs_gadget_erp5_panel_configuration_js.js |  201 --
 .../rjs_gadget_erp5_panel_html.html           |   15 +-
 .../rjs_gadget_erp5_panel_html.xml            |    4 +-
 .../rjs_gadget_erp5_panel_js.js               |   29 +-
 .../rjs_gadget_erp5_panel_js.xml              |    4 +-
 .../rjs_gadget_erp5_pt_formpage_js.js         |    9 +-
 .../rjs_gadget_erp5_pt_formpage_js.xml        |    4 +-
 .../rjs_gadget_erp5_pt_frontpage_html.html    |   20 +-
 .../rjs_gadget_erp5_pt_frontpage_html.xml     |    8 +-
 .../rjs_gadget_erp5_pt_frontpage_js.js        |  169 +-
 .../rjs_gadget_erp5_pt_frontpage_js.xml       |    4 +-
 .../rjs_gadget_erp5_pt_logoutform_html.html   |    3 -
 .../rjs_gadget_erp5_pt_logoutform_html.xml    |    4 +-
 .../rjs_gadget_erp5_pt_logoutform_js.js       |    4 +
 .../rjs_gadget_erp5_pt_logoutform_js.xml      |    4 +-
 .../rjs_gadget_erp5_relation_input_html.html  |   18 +-
 .../rjs_gadget_erp5_relation_input_html.xml   |    4 +-
 .../rjs_gadget_erp5_relation_input_js.js      |   15 +-
 .../rjs_gadget_erp5_relation_input_js.xml     |    4 +-
 .../rjs_gadget_erp5_searcheditor_html.html    |   19 +-
 .../rjs_gadget_erp5_searcheditor_html.xml     |    4 +-
 .../rjs_gadget_erp5_searcheditor_js.js        |   48 +-
 .../rjs_gadget_erp5_searcheditor_js.xml       |    4 +-
 .../rjs_gadget_erp5_searchfield_html.html     |   23 +-
 .../rjs_gadget_erp5_searchfield_html.xml      |    4 +-
 .../rjs_gadget_erp5_searchfield_js.js         |   14 -
 .../rjs_gadget_erp5_searchfield_js.xml        |    4 +-
 .../rjs_gadget_erp5_serviceworker.js          |    7 +-
 .../rjs_gadget_erp5_serviceworker.xml         |    4 +-
 .../rjs_gadget_erp5_sorteditor_html.html      |    2 +-
 .../rjs_gadget_erp5_sorteditor_html.xml       |    4 +-
 .../rjs_gadget_erp5_sorteditor_js.js          |   29 +-
 .../rjs_gadget_erp5_sorteditor_js.xml         |    4 +-
 .../rjs_gadget_erp5_textareafield_js.js       |   24 +-
 .../rjs_gadget_erp5_textareafield_js.xml      |    4 +-
 .../web_site_module/renderjs_runner.xml       |    2 +-
 .../WebSite_viewRecoverAccount.zpt            |   57 +-
 .../WebSite_viewResetPassword.zpt             |   58 +-
 .../erp5_web_renderjs_ui/erp5css.less.txt     | 2846 +++++++++++++++++
 .../erp5_web_renderjs_ui/erp5css.less.xml     |   28 +
 .../erp5_web_renderjs_ui/login_form.zpt       |   63 +-
 .../testComplexFilter.zpt                     |   22 +-
 .../renderjs_ui_listbox_zuite/testFilter.zpt  |   12 +-
 .../testFilterItemAutoBuild.zpt               |   34 +-
 .../testFilterItemDelete.zpt                  |   22 +-
 .../testFilterWithPager.zpt                   |   12 +-
 .../testFilterWithPreviousNext.zpt            |    6 +-
 .../testHideItem.zpt                          |    2 +-
 .../testListboxResetParameter.zpt             |    6 +-
 .../renderjs_ui_listbox_zuite/testSort.zpt    |    4 +-
 .../testSortItemAutoBuild.zpt                 |   12 +-
 .../testSortWithPager.zpt                     |    2 +-
 .../testSortWithPreviousNext.zpt              |    2 +-
 .../testFormDialogMenuAction.zpt              |    6 +-
 .../testFormListMenuAction.zpt                |    6 +-
 .../testFormListSearchAction.zpt              |    6 +-
 .../testFormListSearchResetsPagination.zpt    |    2 +-
 .../testFormListSortStoreState.zpt            |    2 +-
 .../testFormViewEditableMenuAction.zpt        |    6 +-
 .../testFormViewMenuAction.zpt                |    6 +-
 .../testPageActionMenuAction.zpt              |    6 +-
 .../testPageFrontMenuAction.zpt               |    6 +-
 .../testPageFrontModuleList.zpt               |    9 +-
 ...DocumentListOnlyShowModuleSubDocuments.zpt |   14 +-
 ...HistoryDocumentListOrderedByAccessTime.zpt |    8 +-
 .../testPageHistoryMenuAction.zpt             |    6 +-
 .../testPageJumpMenuAction.zpt                |    6 +-
 .../testPagePreferenceMenuAction.zpt          |    6 +-
 .../testPageSearchMenuAction.zpt              |    6 +-
 .../testPageTabMenuAction.zpt                 |    6 +-
 .../testPageWorklistMenuAction.zpt            |    6 +-
 .../testPageWorklistNoLocalRoles.zpt          |    2 +-
 ...StoredStateJumpToLatestDocumentContext.zpt |   23 +-
 ...ndHistoryPreviousJumpToPreviousContext.zpt |    4 +-
 ...CommandSelectionNextJumpToNextDocument.zpt |    4 +-
 .../testCommandSelectionNextLastElement.zpt   |    4 +-
 ...stCommandSelectionPreviousFirstElement.zpt |    4 +-
 ...electionPreviousJumpToPreviousDocument.zpt |    4 +-
 ...eadcrumbCanNotAccessRelationSearchPage.zpt |    2 +-
 ...estMultiRelationFieldSearchWithListbox.zpt |    2 +-
 ...tiRelationFieldWithNonSavedPageContent.zpt |    9 +-
 .../relationfield_zuite/testProxyListBox.zpt  |    4 +-
 .../testRelationFieldSearchWithListbox.zpt    |    2 +-
 ...stRelationFieldWithNonSavedPageContent.zpt |   10 +-
 .../testRenderjsBasicNavigation.zpt           |   16 +-
 .../testRenderjsRecoverPassword.zpt           |    4 +-
 .../Zuite_CommonTemplateForRenderjsUi.zpt     |    2 +-
 105 files changed, 6685 insertions(+), 2238 deletions(-)
 delete mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.css
 create mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
 rename bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/{rjs_gadget_erp5_panel_configuration_html.xml => rjs_gadget_erp5_launcher_html.xml} (90%)
 create mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
 rename bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/{rjs_gadget_erp5_panel_configuration_js.xml => rjs_gadget_erp5_launcher_js.xml} (90%)
 create mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css
 rename bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/{rjs_gadget_erp5_latest_css.xml => rjs_gadget_erp5_nojqm_css.xml} (92%)
 delete mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.html
 delete mode 100644 bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.js
 create mode 100644 bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt
 create mode 100644 bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.xml

diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
index 4695d483fb..d0e8e90e58 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_appcache.xml
@@ -108,7 +108,7 @@
             <value> <string encoding="cdata"><![CDATA[
 
 CACHE MANIFEST\n
-# generated on Tue, 12 July 2016 12:00:00 GMT\n
+# generated on Tue, 24 Jun 2016 16:00:00 GMT .\n
 # XXX + fonts\n
 # images/ajax-loader.gif\n
 CACHE:\n
@@ -119,8 +119,8 @@ https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.wof
 https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf?v=4.2.0\n
 https://netdna.bootstrapcdn.com/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular\n
 URI.js\n
-erp5_launcher.js\n
-gadget_erp5.css\n
+erp5_launcher_nojqm.js\n
+gadget_erp5_nojqm.css\n
 gadget_erp5_editor_panel.html\n
 gadget_erp5_editor_panel.js\n
 gadget_erp5_field_checkbox.html\n
@@ -167,7 +167,6 @@ gadget_erp5_header.html\n
 gadget_erp5_header.js\n
 gadget_erp5_jio.html\n
 gadget_erp5_jio.js\n
-gadget_erp5_latest.css\n
 gadget_erp5_page_action.html\n
 gadget_erp5_page_action.js\n
 gadget_erp5_page_form.html\n
@@ -192,7 +191,6 @@ gadget_erp5_page_worklist.html\n
 gadget_erp5_page_worklist.js\n
 gadget_erp5_panel.html\n
 gadget_erp5_panel.js\n
-gadget_erp5_panel_configuration.html\n
 gadget_erp5_pt_form_dialog.html\n
 gadget_erp5_pt_form_dialog.js\n
 gadget_erp5_pt_form_list.html\n
@@ -223,9 +221,6 @@ gadget_translation_data.js\n
 handlebars.js\n
 i18next.js\n
 jiodev.js\n
-jquery.js\n
-jquerymobile.css\n
-jquerymobile.js\n
 renderjs.js\n
 rsvp.js\n
 NETWORK:\n
@@ -360,7 +355,7 @@ NETWORK:\n
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.33120.45206.6075</string> </value>
+                <value> <string>952.54415.21673.50380</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -378,7 +373,7 @@ NETWORK:\n
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1468331792.72</float>
+                        <float>1469697772.13</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
index 11cdf6fa21..1dc188a1c5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_css.xml
@@ -99,7 +99,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>RenderJS Gadget ERP5 CSS</string> </value>
+            <value> <string>RenderJS Gadget OfficeJS CSS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -224,7 +224,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.4548.25239.8192</string> </value>
+                <value> <string>952.55927.14574.22152</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -242,7 +242,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1466779724.5</float>
+                        <float>1469701062.53</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.js
index d1063cac6f..efcd0fa3e1 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.js
@@ -1,6 +1,6 @@
 /*jslint indent: 2, maxerr: 3, nomen: true */
-/*global window, rJS, RSVP, $ */
-(function (window, rJS, RSVP, $) {
+/*global window, rJS, RSVP */
+(function (window, rJS, RSVP) {
   "use strict";
   rJS(window)
     /////////////////////////////////////////////////////////////////
@@ -15,20 +15,12 @@
         .push(function (element) {
           g.props.element = element;
           g.props.container = element.querySelector(".jqm-navmenu-panel");
-          g.props.jelement = $(g.props.container);
         });
     })
-    .ready(function (g) {
-      g.props.jelement.panel({
-        display: "overlay",
-        position: "right",
-        theme: "c"
-      });
-    })
-
 
     .allowPublicAcquisition('trigger', function () {
-      return this.props.jelement.panel("toggle");
+      this.props.element.classList.toggle('visible');
+      // return this.props.jelement.panel("toggle");
     })
     //////////////////////////////////////////////
     // acquired method
@@ -36,10 +28,12 @@
     //local method
     .declareMethod('close', function () {
       var container = this.props.container;
-      this.props.jelement.panel("close");
       while (container.firstChild) {
         container.removeChild(container.firstChild);
       }
+      if (this.props.element.classList.contains('visible')) {
+        this.props.element.classList.remove('visible');
+      }
     })
     .declareMethod('render', function (url, options) {
       var gadget = this,
@@ -63,10 +57,9 @@
           .push(function (result) {
             var fragment = result[1];
             gadget.props.container.appendChild(fragment);
-            gadget.props.jelement.trigger("create");
-            gadget.props.jelement.panel("toggle");
+            gadget.props.element.classList.toggle('visible');
           });
       }
-      gadget.props.jelement.panel("toggle");
+      gadget.props.element.classList.toggle('visible');
     });
-}(window, rJS, RSVP, $));
\ No newline at end of file
+}(window, rJS, RSVP));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.xml
index d1500835b8..56b49502ae 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_editor_panel_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.64723.57071.20616</string> </value>
+                <value> <string>952.10013.10460.65075</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447071678.82</float>
+                        <float>1467031522.89</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_html.xml
index 15f258c09b..4839d89e6f 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_html.xml
@@ -75,7 +75,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>erp5_launcher.html</string> </value>
+            <value> <string>officejs_launcher.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -105,7 +105,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>ERP5 Application Launcher</string> </value>
+            <value> <string>OfficeJS Application Launcher</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -236,7 +236,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.64733.4438.11997</string> </value>
+                <value> <string>952.55927.14574.22152</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -254,7 +254,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447067588.44</float>
+                        <float>1469701010.97</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
index 51090454fb..822cac9885 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_js.xml
@@ -99,7 +99,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>ERP5 Launcher JS</string> </value>
+            <value> <string>OfficeJS Launcher JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>950.1266.16388.62907</string> </value>
+                <value> <string>952.55927.14574.22152</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1458731136.97</float>
+                        <float>1469701036.4</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.css b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.css
deleted file mode 100644
index bc4c209596..0000000000
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.css
+++ /dev/null
@@ -1,1211 +0,0 @@
-/* ------------------------------ Global Font  ---------------------------- */
-/* NOTE: family/size should only be set here! */
-input, select, textarea, button, p, h1, h2, h3, h4, h5, h6, table,
-.ui-header h1.ui-title,
-html.ui-mobile legend, .ui-btn, .ui-li-static, html.ui-mobile body form label {
-  font-family: Helvetica, Arial, sans-serif;
-  font-size: 90%;
-}
-html body .ui-controlgroup.ui-btn-right,
-html body .ui-header .ui-btn,
-html body .ui-navbar li .ui-btn {
-  font-size: 90%;
-}
-/* fix font-size on notext buttons, so icons don't zoom, JQMs-px font-size */
-html body .ui-header .ui-controlgroup .ui-btn,
-html body .ui-footer .ui-controlgroup .ui-btn {
-  font-size: 100%;
-}
-
-
-/* ========================== Overrides Themes ============================ */
-/* JQM custom themes */
-/* a */
-/*--------------------------------------------------------------------------*/
-
-/* Bar: Toolbars, dividers, slider track */
-.ui-bar-a,
-.ui-page-theme-a .ui-bar-inherit,
-html .ui-bar-a .ui-bar-inherit,
-html .ui-body-a .ui-bar-inherit,
-html body .ui-group-theme-a .ui-bar-inherit {
-  background: 0 none;
-  background-color: #fff;
-  color: rgb(115, 115, 115); /* IE8 */
-  color: rgba(0, 0, 0, 0.55);
-  text-shadow: none;
-  border-color: #aaa;
-  font-weight: normal;
-}
-.ui-bar-a {
-  border-width: 1px;
-  border-style: solid;
-}
-/* tables & controlbar & tabs & labels */
-html .ui-overlay-a fieldset label,
-html .ui-overlay-a fieldset legend,
-html .ui-page-theme-a .ui-collapsible h1 a.ui-btn,
-html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn,
-html .ui-page-theme-a .document-table thead a.ui-btn,
-html .ui-page-theme-a .document-table thead label,
-html .ui-page-theme-a .document-table thead tr th {
-  color: rgb(115, 115, 115); /* IE8 */
-  color: rgba(0, 0, 0, 0.55);
-  text-shadow: #FFFFFF 0px 1px 0px;
-}
-html body .ui-page-theme-a table.document-table,
-html .document-table thead tr th {
-  background-color: #fff;
-  border-color: #aaa;
-}
-html .ui-page-theme-a .ui-popup .ui-header,
-html .ui-page-theme-a .ui-popup .ui-footer,
-html .ui-page-theme-a .ui-collapsible h1 a.ui-btn,
-html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn {
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #fff ), to( #f1f1f1 ));
-  background-image: -webkit-linear-gradient( #fff , #f1f1f1 );
-  background-image:    -moz-linear-gradient( #fff , #f1f1f1 );
-  background-image:     -ms-linear-gradient( #fff , #f1f1f1 );
-  background-image:      -o-linear-gradient( #fff , #f1f1f1 );
-  background-image:         linear-gradient( #fff , #f1f1f1 );
-  border-color: #aaa;
-}
-
-/* Page: background */
-.ui-page-theme-a,
-.ui-page-theme-a .ui-panel-wrapper {
-  color: #333;
-  text-shadow: none;
-  background: #f9f9f9;
-  background-image:  -webkit-gradient(linear, left top, left bottom, from( #f9f9f9), to( #eee ));
-  background-image:  -webkit-linear-gradient( #f9f9f9, #eee );
-  background-image:    -moz-linear-gradient( #f9f9f9, #eee );
-  background-image:     -ms-linear-gradient( #f9f9f9, #eee );
-  background-image:      -o-linear-gradient( #f9f9f9, #eee );
-  background-image:         linear-gradient( #f9f9f9, #eee );
-}
-/* Body: Read-only lists, text inputs, collapsible content */
-.ui-body-a,
-.ui-page-theme-a .ui-body-inherit,
-.ui-page-theme-a .ui-content-element,
-html .ui-bar-a .ui-body-inherit,
-html .ui-body-a .ui-body-inherit,
-html body .ui-group-theme-a .ui-body-inherit,
-.ui-overlay-a {
-  background-image: none;
-  background: #fff;
-  border-color:  #aaa;
-  color: #111;
-  text-shadow: none;
-}
-.ui-body-a {
-  border-width: 1px;
-  border-style: solid;
-}
-
-/* Links */
-.ui-page-theme-a a,
-html .ui-bar-a a,
-html .ui-body-a a
-/* visited */
-.ui-page-theme-a a:visited,
-html body.ui-overlay-a .ui-btn:visited,
-html body.ui-overlay-a a:visited,
-html .ui-bar-a a:visited,
-html .ui-body-a a:visited,
-html body .ui-group-theme-a a:visited,
-/* hover */
-html body.ui-overlay-a a:hover,
-html body.ui-overlay-a .ui-btn:hover,
-.ui-page-theme-a a:hover,
-html .ui-bar-a a:hover,
-html .ui-body-a a:hover,
-html body .ui-group-theme-a a:hover,
-html body.ui-overlay-a .ui-btn:hover,
-.ui-page-theme-a .ui-btn:hover,
-html .ui-bar-a .ui-btn:hover,
-html .ui-body-a .ui-btn:hover,
-html body .ui-group-theme-a .ui-btn:hover,
-/* texts */
-html body .ui-group-theme-a p, /* overwritten by ui-btn */
-html body .ui-group-theme-a h1,
-html body .ui-group-theme-a h2,
-html body .ui-group-theme-a h3,
-html body .ui-group-theme-a h4,
-html body .ui-group-theme-a h5,
-html body .ui-group-theme-a h6,
-html .ui-page-theme-a .ui-content-element {
-  color: rgb(115, 115, 115); /* IE8 */
-  color: rgba(0, 0, 0, 0.55);
-  border-color: #aaa;
-  text-shadow: none;
-}
-
-.ui-page-theme-a .ui-btn:active,
-html .ui-bar-a .ui-btn:active,
-html .ui-body-a .ui-btn:active,
-html body .ui-group-theme-a .ui-btn:active {
-  color: #fff;
-}
-
-/* Button up */
-.ui-page-theme-a .ui-btn,
-html .ui-bar-a .ui-btn,
-html .ui-body-a .ui-btn,
-html body .ui-btn.ui-btn-a,
-html body .ui-group-theme-a .ui-btn,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-a,
-.ui-page-theme-a .ui-bar-plain,
-/* Button visited */
-.ui-page-theme-a .ui-btn:visited,
-html .ui-bar-a .ui-btn:visited,
-html .ui-body-a .ui-btn:visited,
-html body .ui-btn.ui-btn-a:visited,
-html body .ui-group-theme-a .ui-btn:visited,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-a:visited,
-/* table */
-html .ui-page-theme-a .document-table tr td a:visited {
-  background: #fff;
-  color: rgb(115, 115, 115); /* IE8 */
-  color: rgba(0, 0, 0, 0.55);
-  text-shadow: none;
-  border-color: #aaa;
-}
-html .ui-page-theme-a .ui-input-clear:active,
-html .ui-page-theme-a .ui-input-clear.ui-btn-active,
-html .ui-page-theme-a .ui-input-action:active,
-html .ui-page-theme-a .ui-input-action.ui-btn-active {
-  background: #fff !important;
-}
-
-/* ------------------------- Header Buttons ------------------------------- */
-.ui-page-theme-a .ui-header .ui-btn,
-html .ui-bar-a .ui-header .ui-btn,
-html .ui-bar-a.ui-header .ui-btn,
-html .ui-body-a  .ui-header .ui-btn,
-html body  .ui-header .ui-btn.ui-btn-a,
-html body  .ui-header .ui-group-theme-a .ui-btn,
- .ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-a,
-/* Button visited */
-.ui-page-theme-a  .ui-header  .ui-btn:visited,
-html .ui-bar-a  .ui-header .ui-btn:visited,
-html .ui-body-a  .ui-header .ui-btn:visited,
-html body .ui-header .ui-btn.ui-btn-a:visited,
-html body .ui-header .ui-group-theme-a .ui-btn:visited,
-.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-a:visited,
-.ui-page-theme-a  .ui-header  a:visited,
-html .ui-bar-a  .ui-header a:visited,
-html .ui-body-a  .ui-header a:visited,
-html body .ui-header a.ui-btn-a:visited,
-html body .ui-header .ui-group-theme-a a:visited,
-.ui-header [class*="ui-group-theme-"] a.ui-btn-a:visited {
-  background: none repeat scroll 0 center transparent;
-  border: 0 none;
-  -webkit-border-radius: 0 0 0 0  /* iOS3 */ !important;
-  border-radius: 0 0 0 0  /* iOS3 */ !important;
-  -webkit-box-shadow: none /* iOS3 */ !important;
-  box-shadow: none /* iOS3 */ !important;
-  color: rgb(115, 115, 115); /* IE8 */
-  color: rgba(0, 0, 0, 0.55);
-  text-shadow: none;
-  font-weight: normal;
-  line-height: 3em; /* IE cannot take 300% */
-}
-/* Button special handling: panel listitems */
-.ui-page-theme-a .ui-panel-inner li .ui-btn,
-html .ui-bar-a .ui-panel-inner li .ui-btn,
-html .ui-body-a .ui-panel-inner li .ui-btn,
-html .ui-body-a .ui-panel-inner li.ui-li-static,
-html body .ui-panel-inner li .ui-btn.ui-btn-a,
-html body .ui-panel-inner li .ui-group-theme-a .ui-btn,
-[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-a,
-/* Button visited */
-.ui-page-theme-a .ui-panel-inner li .ui-btn:visited,
-html .ui-bar-a .ui-panel-inner li .ui-btn:visited,
-html .ui-body-a .ui-panel-inner li .ui-btn:visited,
-html body .ui-panel-inner li .ui-btn.ui-btn-a:visited,
-html body .ui-panel-inner li .ui-group-theme-a .ui-btn:visited,
-[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-a:visited,
-/* table */
-html .ui-page-theme-a .document-table,
-html .ui-page-theme-a .document-table {
-  background: none repeat scroll 0 0 transparent;
-  border-color: rgb(232, 232, 232);
-  border-color: rgba(255,255,255,.3);
-}
-/* dropshadow */
-html body .ui-group-theme-a li {
-  border-top: 1px solid #111;
-}
-html body .ui-group-theme-a li.ui-last-child {
-  border-top: 1px solid #111;
-  border-bottom: 1px solid #111;
-}
-html body .ui-group-theme-b li.ui-last-child a.ui-btn {
-  border-bottom: none
-}
-/* Button background hover */
-.ui-page-theme-a .ui-btn:hover,
-html .ui-bar-a .ui-btn:hover,
-html .ui-body-a .ui-btn:hover,
-html body .ui-btn.ui-btn-a:hover,
-html body .ui-group-theme-a .ui-btn:hover,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-a:hover,
-/* table rows */
-html .ui-page-theme-a .document-table tr th:hover ~ td,
-/* controlbars */
-html .ui-page-theme-a .ui-controlbar .ui-btn:hover,
-/* tabs */
-html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn:hover,
-html .ui-page-theme-a .ui-collapsible h1 a.ui-btn:hover{
-  background-color: #e8e8e8;
-  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#fff), to(#e8e8e8));
-  background:        -webkit-linear-gradient(bottom, #fff, #e8e8e8);
-  background:           -moz-linear-gradient(bottom, #fff, #e8e8e8);
-  background:             -o-linear-gradient(bottom, #fff, #e8e8e8);
-  background:            -ms-linear-gradient(bottom, #fff, #e8e8e8);
-  background:                linear-gradient(bottom, #fff, #e8e8e8);
-}
-
-/* b */
-/*--------------------------------------------------------------------------*/
-/* Bar: Toolbars, dividers, slider track */
-.ui-bar-b,
-.ui-page-theme-b .ui-bar-inherit,
-html .ui-bar-b .ui-bar-inherit,
-html .ui-body-b .ui-bar-inherit,
-html body .ui-group-theme-b .ui-bar-inherit {
-  background: 0 none;
-  background: #222;
-  color: #fff;
-  text-shadow: 0 1px 0 #111111;
-  font-weight: normal;
-}
-.ui-bar-b {
-  border-width: 1px;
-  border-style: solid;
-}
-/* tables & controlbar & tabs & labels */
-html .ui-overlay-b fieldset label,
-html .ui-overlay-b fieldset legend,
-html .ui-page-theme-b .ui-controlbar .ui-btn,
-html .ui-page-theme-b .ui-controlbar ~ .ui-controlgroup .ui-btn,
-html .ui-page-theme-b .ui-collapsible h1 a.ui-btn,
-html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn,
-html .ui-page-theme-b .document-table thead a.ui-btn,
-html .ui-page-theme-b .document-table thead label {
-  color: #444;
-  text-shadow: 0 1px 0 #111111;
-}
-/* tables & controlbars */
-.ui-page-theme-b .document-table {
-  background-color: #222;
-  border-color: rgb(232, 232, 232); /* IE8 */
-  border-color: rgba(255,255,255,.3);
-}
-html .ui-page-theme-b .ui-popup .ui-header,
-html .ui-page-theme-b .ui-popup .ui-footer,
-html .ui-page-theme-b .ui-collapsible h1 a.ui-btn
-html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn {
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));
-  background-image: -webkit-linear-gradient( #444 , #222 );
-  background-image:    -moz-linear-gradient( #444 , #222 );
-  background-image:     -ms-linear-gradient( #444 , #222 );
-  background-image:      -o-linear-gradient( #444 , #222 );
-  background-image:         linear-gradient( #444 , #222 );
-  border-color: #444;
-}
-
-/* Page background */
-.ui-page-theme-b,
-.ui-page-theme-b .ui-panel-wrapper {
-  color: #fff;
-  text-shadow: 0 1px 0 #111111;
-  background: #222;
-  border-color:  #444;
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));
-  background-image: -webkit-linear-gradient( #444 , #222 );
-  background-image:    -moz-linear-gradient( #444 , #222 );
-  background-image:     -ms-linear-gradient( #444 , #222 );
-  background-image:      -o-linear-gradient( #444 , #222 );
-  background-image:         linear-gradient( #444 , #222 );
-}
-/* Body: Read-only lists, text inputs, collapsible content */
-.ui-body-b,
-.ui-page-theme-b .ui-body-inherit,
-.ui-page-theme-b .ui-content-element,
-html .ui-bar-b .ui-body-inherit,
-html .ui-body-b .ui-body-inherit,
-html body .ui-group-theme-b .ui-body-inherit,
-.ui-overlay-b {
-  color: #fff;
-  text-shadow: 0 1px 0 #111111;
-  background: #222;
-  border-color:  #444;
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));
-  background-image: -webkit-linear-gradient( #444 , #222 );
-  background-image:    -moz-linear-gradient( #444 , #222 );
-  background-image:     -ms-linear-gradient( #444 , #222 );
-  background-image:      -o-linear-gradient( #444 , #222 );
-  background-image:         linear-gradient( #444 , #222 );
-}
-.ui-body-b {
-  border-width: 1px;
-  border-style: solid;
-}
-/* Input filterable */
-html .ui-body-b .ui-body-inherit.ui-input-search {
-  background-image: none;
-}
-
-/* Links */
-.ui-page-theme-b a,
-html .ui-bar-b a,
-html .ui-body-b a,
-html body .ui-group-theme-b a,
-/* visited */
-.ui-page-theme-b a:visited,
-html body.ui-overlay-b a:visited,
-html body.ui-overlay-b .ui-btn:visited,
-html .ui-bar-b a:visited,
-html .ui-body-b a:visited,
-html body .ui-group-theme-b a:visited,
-/* hover */
-html body.ui-overlay-b .ui-btn:hover,
-html body.ui-overlay-b a:hover,
-.ui-page-theme-b a:hover,
-html .ui-bar-b a:hover,
-html .ui-body-b a:hover,
-html body .ui-group-theme-a a:hover,
-.ui-overlay-b .ui-btn:hover,
-.ui-page-theme-b .ui-btn:hover,
-html .ui-page-theme-b .ui-btn:hover,
-html .ui-page-theme-b .ui-btn:hover,
-html body .ui-group-theme-b .ui-btn:hover,
-/* active */
-.ui-page-theme-b .ui-btn:active,
-html .ui-bar-b .ui-btn:active,
-html .ui-body-b .ui-btn:active,
-html body .ui-group-theme-b .ui-btn:active,
-/* Texts */
-html body .ui-group-theme-b p,
-html body .ui-group-theme-b h1,
-html body .ui-group-theme-b h2,
-html body .ui-group-theme-b h3,
-html body .ui-group-theme-b h4,
-html body .ui-group-theme-b h5,
-html body .ui-group-theme-b h6,
-html .ui-page-theme-b .ui-content-element {
-  color: #fff;
-  border-color: auto;
-  text-shadow: none;
-}
-/* Button up */
-.ui-page-theme-b .ui-btn,
-html .ui-bar-b .ui-btn,
-html .ui-body-b .ui-btn,
-html body .ui-btn.ui-btn-b,
-html body .ui-group-theme-b .ui-btn,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-b,
-.ui-page-theme-b .ui-bar-plain,
-/* Button visited */
-.ui-page-theme-b .ui-btn:visited,
-html .ui-bar-b .ui-btn:visited,
-html .ui-body-b .ui-btn:visited,
-html body .ui-btn.ui-btn-b:visited,
-html body .ui-group-theme-b .ui-btn:visited,
-[class*="ui-group-theme-"] a.ui-btn-b:visited,
-.ui-page-theme-b a:visited,
-html .ui-bar-b a:visited,
-html .ui-body-b a:visited,
-html body a.ui-btn-b:visited,
-html body .ui-group-theme-b a:visited,
-[class*="ui-group-theme-"] a.ui-btn-b:visited,
-html .ui-page-theme-b table tr td a:visited,
-/* table */
-html .ui-page-theme-b .document-table,
-html .ui-page-theme-b .document-table {
-  background: #222;
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));
-  background-image: -webkit-linear-gradient( #444 , #222 );
-  background-image:    -moz-linear-gradient( #444 , #222 );
-  background-image:     -ms-linear-gradient( #444 , #222 );
-  background-image:      -o-linear-gradient( #444 , #222 );
-  background-image:         linear-gradient( #444 , #222 );
-  border-color: #444;
-  color: #fff;
-  text-shadow: 0px 1px 0px #111;
-}
-html .ui-page-theme-b .ui-input-clear:active,
-html .ui-page-theme-b .ui-input-clear.ui-btn-active,
-html .ui-page-theme-b .ui-input-action:active,
-html .ui-page-theme-b .ui-input-action.ui-btn-active {
-  background: #222 !important;
-}
-/* Header Buttons */
-.ui-page-theme-b .ui-header .ui-btn,
-html .ui-bar-b.ui-header .ui-btn,
-html .ui-bar-b  .ui-header .ui-btn,
-html .ui-body-b  .ui-header .ui-btn,
-html body  .ui-header .ui-btn.ui-btn-b,
-html body  .ui-header .ui-group-theme-b .ui-btn,
- .ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-b,
-/* Button visited */
-.ui-page-theme-b  .ui-header  .ui-btn:visited,
-html .ui-bar-b  .ui-header .ui-btn:visited,
-html .ui-body-b  .ui-header .ui-btn:visited,
-html body .ui-header .ui-btn.ui-btn-b:visited,
-html body .ui-header .ui-group-theme-b .ui-btn:visited,
-.ui-header [class*="ui-group-theme-"] .ui-btn.ui-btn-b:visited,
-/* ADD also not on :hover */
-.ui-page-theme-b .ui-header  .ui-btn:hover,
-html .ui-bar-b .ui-header  .ui-btn:hover,
-html .ui-body-b .ui-header  .ui-btn:hover,
-html body .ui-header .ui-btn.ui-btn-b:hover,
-html body .ui-header .ui-group-theme-b .ui-btn:hover,
-.ui-header  [class*="ui-group-theme-"] .ui-btn.ui-btn-b:hover {
-  background: none repeat scroll 0 center transparent;
-  -webkit-border-radius: 0 0 0 0  /* iOS3 */ !important;
-  border-radius: 0 0 0 0  /* iOS3 */ !important;
-  -webkit-box-shadow: none /* iOS3 */ !important;
-  box-shadow: none /* iOS3 */ !important;
-  color: #fff;
-  text-shadow: none;
-  font-weight: normal;
-  line-height: 3.25em; /* IE cannot take 325% */
-}
-/* Button special handling: listitem , collapsibles */
-.ui-page-theme-b .ui-panel-inner li .ui-btn,
-html .ui-bar-b .ui-panel-inner li .ui-btn,
-html .ui-body-b .ui-panel-inner li .ui-btn,
-html .ui-body-b .ui-panel-inner li.ui-li-static,
-html body .ui-panel-inner .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle,
-html body .ui-panel-inner .ui-group-theme-b .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle,
-html body .ui-panel-inner li .ui-btn.ui-btn-b,
-html body .ui-panel-inner li .ui-group-theme-b .ui-btn,
-[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-b,
-/* Button visited */
-.ui-page-theme-b .ui-panel-inner li .ui-btn:visited,
-html .ui-bar-b .ui-panel-inner li .ui-btn:visited,
-html .ui-body-b .ui-panel-inner li .ui-btn:visited,
-html body .ui-panel-inner .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle:visited,
-html body .ui-panel-inner .ui-group-theme-b .ui-collapsible .ui-collapsible-heading a.ui-btn.ui-collapsible-heading-toggle:visited
-html body .ui-panel-inner li .ui-btn.ui-btn-b:visited,
-html body .ui-panel-inner li .ui-group-theme-b .ui-btn:visited,
-[class*="ui-group-theme-"] .ui-panel-inner li .ui-btn.ui-btn-b:visited {
-  background: none repeat scroll 0 0 transparent;
-  border-color: rgb(232, 232, 232); /* IE8 */
-  border-color: rgba(255,255,255,.3);
-}
-/* dropshadow */
-html body .ui-group-theme-b li {
-  border-top: 1px solid #111;
-}
-html body .ui-group-theme-b li.ui-last-child {
-  border-bottom: 1px solid #111;
-}
-html body .ui-group-theme-b li.ui-last-child a.ui-btn {
-  border-bottom: none
-}
-
-/* Button hover */
-.ui-page-theme-b .ui-btn:hover,
-html .ui-bar-b .ui-btn:hover,
-html .ui-body-b .ui-btn:hover,
-html body .ui-btn.ui-btn-b:hover,
-html body .ui-group-theme-b .ui-btn:hover,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-b:hover,
-/* table rows */
-html .ui-page-theme-b .document-table tr th:hover ~ td,
-/* controlbars */
-html .ui-page-theme-b .ui-controlbar .ui-btn:hover,
-/* tabs */
-html .ui-page-theme-b .ui-collapsible h1 a.ui-btn:hover
-html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn:hover {
-  background: #222;
-  background-image: -webkit-gradient(linear, left top, left bottom, from( #444 ), to( #222 ));
-  background-image: -webkit-linear-gradient( #444 , #222 );
-  background-image:    -moz-linear-gradient( #444 , #222 );
-  background-image:     -ms-linear-gradient( #444 , #222 );
-  background-image:      -o-linear-gradient( #444 , #222 );
-  background-image:         linear-gradient( #444 , #222 );
-  border-color: rgb(232, 232, 232); /* IE8 */
-  border-color: rgba(255,255,255,.3);
-  /* border-color: #444 */
-  color: #fff;
-  text-shadow: 0px 1px 0px #111;
-}
-
-
-
-
-
-/* swatch "active" - need this for every swatch!!! */
-/*--------------------------------------------------------------------------*/
-
-/* Button down */
-html .ui-page-theme-a .ui-bar-active, /* if we do more like this, we need to have a proper theme */
-.ui-page-theme-a .ui-btn:active,
-html .ui-bar-a .ui-btn:active,
-html .ui-body-a .ui-btn:active,
-html body .ui-btn.ui-btn-a:active,
-html body .ui-group-theme-a .ui-btn:active,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-a:active,
-/* Active button */
-.ui-page-theme-a .ui-btn.ui-btn-active,
-html .ui-bar-a .ui-btn.ui-btn-active,
-html .ui-body-a .ui-btn.ui-btn-active,
-html body .ui-btn.ui-btn-a.ui-btn-active,
-html body .ui-group-theme-a .ui-btn.ui-btn-active,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-a.ui-btn-active,
-/* radio button */
-.ui-page-theme-a .ui-btn.ui-radio-on,
-html .ui-bar-a .ui-btn.ui-radio-on,
-html .ui-body-a .ui-btn.ui-radio-on,
-html body .ui-group-theme-a .ui-btn.ui-radio-on,
-.ui-btn.ui-radio-on.ui-btn-a,
-/* Active flipswitch background */
-.ui-page-theme-a .ui-flipswitch-active,
-html .ui-bar-a .ui-flipswitch-active,
-html .ui-body-a .ui-flipswitch-active,
-html body .ui-group-theme-a .ui-flipswitch-active,
-html body .ui-flipswitch.ui-bar-a.ui-flipswitch-active,
-/* Active slider track */
-.ui-page-theme-a .ui-slider-track .ui-btn-active,
-html .ui-bar-a .ui-slider-track .ui-btn-active,
-html .ui-body-a .ui-slider-track .ui-btn-active,
-html body .ui-group-theme-a .ui-slider-track .ui-btn-active,
-html body div.ui-slider-track.ui-body-a .ui-btn-active,
-/* Controlbar */
-html .ui-page-theme-a .ui-controlbar .ui-btn:active,
-html .ui-page-theme-a .ui-controlbar .ui-btn.ui-btn-active,
-/* Tab Buttons */
-html .ui-page-theme-a .ui-collapsible h1 a.ui-btn:active,
-html .ui-page-theme-a .ui-collapsible h1 a.ui-btn.ui-btn-active,
-html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn:active,
-html .ui-page-theme-a .ui-collapsible-set .ui-collapsible h1 a.ui-btn.ui-btn-active,
-/* black */
-html .ui-page-theme-b .ui-bar-active,
-.ui-page-theme-b .ui-btn:active,
-html .ui-bar-b .ui-btn:active,
-html .ui-body-b .ui-btn:active,
-html body .ui-btn.ui-btn-b:active,
-html body .ui-group-theme-b .ui-btn:active,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-b:active,
-/* Active button */
-.ui-page-theme-b .ui-btn.ui-btn-active,
-html .ui-bar-b .ui-btn.ui-btn-active,
-html .ui-body-b .ui-btn.ui-btn-active,
-html body .ui-btn.ui-btn-b.ui-btn-active,
-html body .ui-group-theme-b .ui-btn.ui-btn-active,
-[class*="ui-group-theme-"] .ui-btn.ui-btn-b.ui-btn-active,
-/* radio on */
-.ui-page-theme-b .ui-btn.ui-radio-on,
-html .ui-bar-b .ui-btn.ui-radio-on,
-html .ui-body-b .ui-btn.ui-radio-on,
-html body .ui-group-theme-b .ui-btn.ui-radio-on,
-.ui-btn.ui-radio-on.ui-btn-b ,
-/* Active flipswitch background */
-.ui-page-theme-b .ui-flipswitch-active,
-html .ui-bar-b .ui-flipswitch-active,
-html .ui-body-b .ui-flipswitch-active,
-html body .ui-group-theme-b .ui-flipswitch-active,
-html body .ui-flipswitch.ui-bar-b.ui-flipswitch-active,
-/* Active slider track */
-.ui-page-theme-b .ui-slider-track .ui-btn-active,
-html .ui-bar-b .ui-slider-track .ui-btn-active,
-html .ui-body-b .ui-slider-track .ui-btn-active,
-html body .ui-group-theme-b .ui-slider-track .ui-btn-active,
-html body div.ui-slider-track.ui-body-b .ui-btn-active,
-/* Table rows on hover */
-html .document-table tbody tr.linkable:hover td:not(.ui-no-result),
-html .document-table tbody tr.linkable:hover th:not(.ui-no-result),
-/* Controlbar */
-html .ui-page-theme-b .ui-controlbar .ui-btn:active,
-html .ui-page-theme-b .ui-controlbar .ui-btn.ui-btn-active,
-/* Tab Buttons */
-html .ui-page-theme-b .ui-collapsible h1 a.ui-btn:active,
-html .ui-page-theme-b .ui-collapsible h1 a.ui-btn.ui-btn-active
-html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn:active,
-html .ui-page-theme-b .ui-collapsible-set .ui-collapsible h1 a.ui-btn.ui-btn-active,
-/* LOADER */
-html .ui-loader.ui-body-loader-active {
-  background-color: #94f2f1;
-  background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0fbabd), to(#94f2f1));
-  background:        -webkit-linear-gradient(bottom, #0fbabd, #94f2f1);
-  background:           -moz-linear-gradient(bottom, #0fbabd, #94f2f1);
-  background:             -o-linear-gradient(bottom, #0fbabd, #94f2f1);
-  background:            -ms-linear-gradient(bottom, #0fbabd, #94f2f1);
-  background:                linear-gradient(bottom, #0fbabd, #94f2f1);
-  color: #fff !important;
-  text-shadow: none;
-  cursor: pointer;
-}
-/* Table rows ,no pointer... */
-html .document-table tbody tr:hover td {
-  cursor: default;
-}
-
-/* Active radio button */
-/* white */
-.ui-page-theme-a .ui-btn.ui-radio-on:after,
-html .ui-bar-a .ui-btn.ui-radio-on:after,
-html .ui-body-a .ui-btn.ui-radio-on:after,
-html body .ui-group-theme-a .ui-btn.ui-radio-on:after,
-.ui-btn.ui-radio-on.ui-btn-a:after,
-/* black */
-.ui-page-theme-b .ui-btn.ui-radio-on:after,
-html .ui-bar-b .ui-btn.ui-radio-on:after,
-html .ui-body-b .ui-btn.ui-radio-on:after,
-html body .ui-group-theme-b .ui-btn.ui-radio-on:after,
-.ui-btn.ui-radio-on.ui-btn-b:after {
-  border-color:     #fff;
-}
-
-/* Focus */
-/* white */
-.ui-overlay-a .ui-btn:focus,
-.ui-page-theme-a .ui-btn:focus,
-html .ui-bar-a .ui-btn:focus,
-html .ui-body-a .ui-btn:focus,
-html body .ui-group-theme-a .ui-btn:focus,
-html head + body .ui-btn.ui-btn-a:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-overlay-a .ui-focus,
-.ui-page-theme-a .ui-focus,
-html .ui-bar-a .ui-focus,
-html .ui-body-a .ui-focus,
-html body .ui-group-theme-a .ui-focus,
-html head + body .ui-btn-a.ui-focus,
-html head + body .ui-body-a.ui-focus,
-/* black */
-.ui-overlay-b .ui-btn:focus,
-.ui-page-theme-b .ui-btn:focus,
-html .ui-bar-b .ui-btn:focus,
-html .ui-body-b .ui-btn:focus,
-html body .ui-group-theme-b .ui-btn:focus,
-html head + body .ui-btn.ui-btn-b:focus,
-/* Focus buttons and text inputs with div wrap */
-.ui-overlay-b .ui-focus,
-.ui-page-theme-b .ui-focus,
-html .ui-bar-b .ui-focus,
-html .ui-body-b .ui-focus,
-html body .ui-group-theme-b .ui-focus,
-html head + body .ui-btn-b.ui-focus,
-html head + body .ui-body-b.ui-focus{
-  -webkit-box-shadow: 0 0 6px #0fbabd;
-  box-shadow: 0 0 6px #0fbabd;
-}
-
-
-/* =========================== Override Widgets =========================== */
-
-/* ------------------------ Toolbar (header/footer) ----------------------- */
-.ui-header, .ui-footer {
-  border-width: 1px 0;
-}
-/* position */
-.ui-header .ui-btn-left,
-.ui-header .ui-btn-right {
-  top: 0;
-  position: absolute;
-  bottom: 0;
-}
-.ui-header .ui-btn-left {
-  left: 0;
-}
-.ui-header .ui-btn-right {
-  right: 0;
-}
-/* fix controlgroups in header font-size */
-.ui-header .ui-controlgroup.ui-btn-left,
-.ui-header .ui-controlgroup.ui-btn-right {
-  font-size: auto;
-}
-/* double borders */
-html .ui-header .ui-btn-left.ui-btn,
-html .ui-header .ui-btn-left .ui-btn {
-  border-right: 1px solid rgb(232, 232, 232); /* IE8 */
-  border-right: 1px solid rgba(232, 232, 232, 0.5);
-}
-html .ui-header .ui-btn-right.ui-btn,
-html .ui-header .ui-btn-right .ui-btn {
-  border-left: 1px solid rgb(115, 115, 115); /* IE8 */
-  border-left: 1px solid rgba(0, 0, 0, 0.55);
-}
-/* blank JQM icons for font-awesome, remove icon borders/background */
-.ui-header .ui-btn:before {
-  content: "";
-  height: 100%;
-  position: absolute;
-  width: 0;
-  bottom: 0;
-  top: 0;
-}
-.ui-header .ui-btn-left .ui-btn:before,
-.ui-header .ui-btn-left.ui-btn:before {
-  right: 0px;
-  border-right: 1px solid rgb(115, 115, 115); /* IE8 */
-  border-right: 1px solid rgba(0, 0, 0, 0.55);
-}
-.ui-header .ui-btn-right .ui-btn:before,
-.ui-header .ui-btn-right.ui-btn:before {
-  left: 0px;
-  border-left: 1px solid rgb(232, 232, 232); /* IE8 */
-  border-left: 1px solid rgba(232, 232, 232, 0.5);
-}
-
-/* hide button text on small screens, if button has class "responsive" */
-@media (max-width: 40em) {
-  .responsive.ui-btn,
-  .ui-select span.responsive {
-    text-indent: -9999px;
-    white-space: nowrap !important;
-  }
-  .responsive.ui-btn:after {
-    text-indent: 0px;
-    left: .6em;
-  }
-  /* center select(!) icons on responsive layouts */
-  .ui-mini.ui-btn-icon-left:after,
-  .ui-mini .ui-btn-icon-left:after,
-  .ui-header .ui-btn-icon-left:after,
-  .ui-footer .ui-btn-icon-left:after {
-    left: .6em;
-  }
-}
-/* stretch */
-html body .ui-header a.ui-btn,
-html body .ui-header .ui-controlgroup div.ui-select .ui-btn {
-  -webkit-border-radius: 0;
-  border-radius: 0;
-  -webkit-box-shadow: none;
-  box-shadow: none;
-  height: 100%;
-  margin: 0;
-  padding-bottom: 0;
-  padding-top: 0;
-}
-/* =============================== SELECT ================================= */
-/* align with height of inputs */
-html body div.ui-select div {
-    height: 22px;
-    line-height: 1.7em;
-    padding-bottom: 5px;
-    padding-top: 5px;
-}
-html body div.ui-select div span {
-   color: #000;
-}
-/* =============================== BUTTON ================================= */
-/* unbold */
-html .ui-btn, label.ui-btn {
-    font-weight: normal;
-}
-/* fix svg icon positioning */
-.ui-btn-icon-notext:after,
-.ui-btn-icon-left:after,
-.ui-btn-icon-top:after,
-.ui.btn-icon-bottom:after,
-.ui-btn-icon-right:after,
-.ui-listview > li > .ui-btn[class*="ui-icon-"]:after {
-    margin-top: -11px;
-    top: 50%;
-}
-
-/* fix text-indent when trying to use custom icons on iconpos-notext buttons */
-.ui-btn-icon-notext {
-  text-indent: -9999px;
-}
-.ui-btn-icon-notext:after {
-  text-indent: 0;
-}
-
-/* ---------------------------- TABLE  ------------------------------------ */
-/* NOTE: since the table widget is not used, JQM CSS is added hard coded */
-/* default table styles */
-.document-table {
-  border-collapse: separate;
-  border-spacing: 0;
-  padding: 0;
-  width: 100%;
-}
-.document-table th,
-.document-table td {
-  line-height: 1.5em;
-  text-align: left;
-  padding: .4em .5em;
-  vertical-align:top;
-}
-.document-table th .ui-btn,
-.document-table td .ui-btn {
-  line-height: normal;
-}
-.document-table th {
-  font-weight: bold;
-}
-.document-table caption {
-  text-align: left;
-  margin-bottom: 1.4em;
-  opacity: .5;
-}
-
-/* radius */
-.ui-table-inset {
-  -webkit-border-radius: .3125em;
-  border-radius: .3125em;
-}
-.ui-table-inset thead,
-.ui-table-inset thead tr:first-child {
-  -webkit-border-top-left-radius: inherit;
-  border-top-left-radius: inherit;
-  -webkit-border-top-right-radius: inherit;
-  border-top-right-radius: inherit;
-}
-.ui-table-inset thead tr:first-child td:first-child,
-.ui-table-inset thead tr:first-child th:first-child{
-  -webkit-border-top-left-radius: inherit;
-  border-top-left-radius: inherit;
-}
-.ui-table-inset thead tr:first-child td:last-child,
-.ui-table-inset thead tr:first-child th:last-child{
-  -webkit-border-top-right-radius: inherit;
-  border-top-right-radius: inherit;
-}
-.ui-table-inset tbody tr:last-child td:first-child,
-.ui-table-inset tbody tr:last-child th:first-child {
-  -webkit-border-bottom-left-radius: inherit;
-  border-bottom-left-radius: inherit;
-}
-.ui-table-inset tbody tr:last-child td:last-child,
-.ui-table-inset tbody tr:last-child th:last-child {
-  -webkit-border-bottom-right-radius: inherit;
-  border-bottom-right-radius: inherit;
-}
-
-/* format header cells (partially overwriting theme css) */
-html .document-table thead th,
-html .document-table thead td {
-  padding: 0;
-  text-shadow: none;
-  font-weight: normal;
-  vertical-align: middle;
-  text-align: center;
-  padding: 0 .25em;
-  -webkit-box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  box-sizing: border-box;
-}
-/* set same padding everywhere */
-html .document-table tbdoy th,
-html .document-table tbody td {
-  padding: 0 1em;
-  vertical-align: middle;
-}
-@media (max-width: 20em) {
-  html .document-table tbdoy th,
-  html .document-table tbody td {
-    padding: 0;
-    height: 2.125em; /* mh... */
-  }
-}
-/* uncss table body links */
-html .document-table tbody td a,
-html .document-table tbody th a {
-  text-decoration: none;
-  font-weight: normal;
-}
-html .document-table tbody td:hover a,
-html .document-table tbody th:hover a {
-  text-decoration: none;
-}
-
-/* override JQM default format */
-html .document-table {
-  border: 1px solid;
-}
-/* alignment */
-html .document-table thead th .ui-btn,
-html .document-table thead td .ui-btn {
-  text-align: left;
-}
-/* table strokes/stripe */
-html .document-table thead th,
-html .document-table thead th,
-html .document-table tbody tr:last-child {
-  border-bottom: 1px solid #d6d6d6; /* non-RGBA fallback */
-  border-bottom: 1px solid rgba(0,0,0,.1);
-}
-html .document-table tbody th,
-html .document-table tbody td {
-  border-bottom: 1px solid #e6e6e6; /* non-RGBA fallback  */
-  border-bottom: 1px solid rgba(0,0,0,.05);
-}
-html .document-table tbody tr:last-child th,
-html .document-table tbody tr:last-child td {
-  border-bottom: 0;
-}
-html .document-table tbody tr:nth-child(odd) td,
-html .document-table tbody tr:nth-child(odd) th {
-  background-color: #eeeeee; /* non-RGBA fallback  */
-  background-color: rgba(0,0,0,.04);
-}
-
-/* ------------------------ TABS/GRID ------------------------------------ */
-/* copy JQM grid CSS without width (set below) */
-ul.grid-items, ul.grid-items li {
-    list-style: none outside none;
-    margin-left: 0;
-    margin-right: 0;
-    padding: 0;
-}
-ul.grid-items {
-    overflow: hidden;
-}
-ul.grid-items li {
-  float: left;
-}
-.grid-container ul li:first-child {
-  clear: left;
-}
-/*
- * Width:
- * default all in one line (as for tabs)
- * > add .line-[x] to .grid-container = force [x] items/line
- * > add .ui-responsive to .grid-container = force ONE item/line on smartphone
- */
-
-/* thx: Lea Verou - http://bit.ly/1rAhqzm */
-.grid-container li a {
-  border-top: 0px;
-}
-.grid-container li.ui-block-a,
-.grid-container li.ui-block-b {
-  clear: none;
-}
-.grid-container ul li:first-child:nth-last-child(1),
-div.grid-container ul.grid-items.line-1 li,
-div.grid-container ul.grid-items.line-1 li ~ li {
-  width: 100%;
-}
-.grid-container ul li:first-child:nth-last-child(2),
-.grid-container ul li:first-child:nth-last-child(2) ~ li,
-div.grid-container ul.grid-items.line-2 li,
-div.grid-container ul.grid-items.line-2 li ~ li {
-  width: 50%;
-}
-.grid-container ul li:first-child:nth-last-child(3),
-.grid-container ul li:first-child:nth-last-child(3) ~ li,
-div.grid-container ul.grid-items.line-3 li,
-div.grid-container ul.grid-items.line-3 li ~ li {
-  width: 33.3333%;
-}
-.grid-container ul li:first-child:nth-last-child(4),
-.grid-container ul li:first-child:nth-last-child(4) ~ li,
-div.grid-container ul.grid-items.line-4 li,
-div.grid-container ul.grid-items.line-4 li ~ li {
-  width: 25%;
-}
-.grid-container ul li:first-child:nth-last-child(5),
-.grid-container ul li:first-child:nth-last-child(5) ~ li,
-div.grid-container ul.grid-items.line-5 li,
-div.grid-container ul.grid-items.line-5 li ~ li {
-  width: 20%;
-}
-.grid-container ul li:first-child:nth-last-child(6),
-.grid-container ul li:first-child:nth-last-child(6) ~ li,
-div.grid-container ul.grid-items.line-6 li,
-div.grid-container ul.grid-items.line-6 li ~ li {
-  width: 16.667%;
-}
-.grid-container ul li:first-child:nth-last-child(7),
-.grid-container ul li:first-child:nth-last-child(7) ~ li,
-div.grid-container ul.grid-items.line-7 li,
-div.grid-container ul.grid-items.line-7 li ~ li {
-  width: 14,285714286%;
-}
-.grid-container ul li:first-child:nth-last-child(8),
-.grid-container ul li:first-child:nth-last-child(8) ~ li,
-div.grid-container ul.grid-items.line-8 li,
-div.grid-container ul.grid-items.line-8 li ~ li {
-  width: 12.5%;
-}
-.grid-container ul li:first-child:nth-last-child(9),
-.grid-container ul li:first-child:nth-last-child(9) ~ li,
-div.grid-container ul.grid-items.line-9 li,
-div.grid-container ul.grid-items.line-9 li ~ li {
-  width: 11.112%;
-}
-.grid-container ul li:first-child:nth-last-child(10),
-.grid-container ul li:first-child:nth-last-child(10) ~ li,
-div.grid-container ul.grid-items.line-10 li,
-div.grid-container ul.grid-items.line-10 li ~ li {
-  width: 10%;
-}
-
-@media (max-width: 40em) {
-  div.grid-container.ui-responsive ul.grid-items li,
-  div.grid-container.ui-responsive ul.grid-items li ~ li {
-    width: 100%;
-  }
-}
-/* ----------------------------- FORM LAYOUT ------------------------------ */
-/* Romain */
-iframe {
-  width: 95%;
-  height: 500px;
-}
-
-/* XXX still terrilble */
-/* mimic ui-content */
-section.document_list,
-section.document_table,
-form.save_form {
-  border-width: 0;
-  overflow: visible;
-  overflow-x: hidden;
-  padding: 1em;
-}
-form.save_form section.document_table {
-  padding: 0;
-}
-section.document_table thead tr th {
-  height: 2.25em;
-}
-/* inset + listview|table|form */
-.document-listview,
-.document-table {
-  margin: -1em;
-}
-.document-listview.ui-listview-inset,
-.document-table.ui-table-inset {
-  margin: 1em 0;
-}
-
-/* action menu */
-.action_list {
-  display: inline-block;
-}
-/* override default page wrapping */
-.ui-mobile .ui-page-active {
-  overflow: hidden;
-}
-
-/* readonly */
-.custom-readonly {
-  opacity: 1;
-}
-/* padding and overall width */
-html .left, html .right, html .center, html .bottom {
-  vertical-align: top;
-  padding: 0 2%;
-}
-html .center, html .bottom {
-  display: block;
-  width: 96%;
-}
-html .left, html .right {
-  display: inline-block;
-  width: 45%;
-}
-html .left textarea, html .right textarea {
-  width: 100%;
-  display: inline-block;
-  vertical-align: midle;
-}
-/* override border-radius for all inputs to match buttons */
-html form .ui-input-text.ui-corner-all {
-  -webkit-border-radius: .325em;
-  border-radius: .325em;
-}
-
-/* set line height on forms*/
-html.ui-mobile body form label {
-  line-height: 1em;
-}
-
-/* fix relation of label/legend to input to display side-by-side */
-.field_container fieldset label:not(.ui-btn),
-.field_container fieldset div.ui-controlgroup-label {
-    max-width: 30%;
-    min-width: 30%;
-}
-.field_container .left label:not(.ui-btn) ~ *,
-.field_container .left div.ui-controlgroup-label ~ *,
-.field_container .right label:not(.ui-btn) ~ * ,
-.field_container .right div.ui-controlgroup-label ~ * {
-  width: 70%;
-}
-.field_container .center label:not(.ui-btn) ~ *,
-.field_container .center div.ui-controlgroup-label ~ * {
-  width: 68%;
-}
-
-@media (max-width: 40em) {
-  html .center, html .bottom, html .left, html .right {
-    width: auto;
-    display: block;
-  }
-
-  html .left textarea,
-  html .right textarea,
-  html.ui-mobile body .field_container fieldset.left div label,
-  html.ui-mobile body .field_container fieldset.left div label ~ *,
-  html.ui-mobile body .field_container fieldset.right div label,
-  html.ui-mobile body .field_container fieldset.right div label ~ *,
-  html.ui-mobile body .field_container fieldset.center div label,
-  html.ui-mobile body .field_container fieldset.center div label ~ * {
-    width: auto;
-  }
-  html.ui-mobile body .field_container fieldset.left div label,
-  html.ui-mobile body .field_container fieldset.right div label,
-  html.ui-mobile body .field_container fieldset.center div label {
-    min-width: none;
-    max-width: none;
-    margin-bottom: -.5em;
-  }
-  html .left textarea,
-  html .right textarea {
-    min-width: 100%;
-  }
-}
-/* --------------------------- FORM INPUTS -------------------------------- */
-
-/* set field and input side by side */
-.field_container fieldset label:not(.ui-btn),
-.field_container fieldset div.ui-controlgroup-label,
-.field_container fieldset label:not(.ui-btn) ~ *,
-.field_container fieldset div.ui-controlgroup-label ~ * {
-    display: inline-block;
-    vertical-align: middle;
-}
-@media (max-width: 40em) {
-  .field_container fieldset label:not(.ui-btn),
-  .field_container fieldset div.ui-controlgroup-label,
-  .field_container fieldset label:not(.ui-btn) ~ *,
-  .field_container fieldset div.ui-controlgroup-label ~ * {
-      display: block;
-      vertical-align: top;
-  }
-}
-/* --------------------------- CARD -------------------------------- */
-html .ui-card {
-  border: 1px solid;
-  max-width: 35%;
-  margin-left: auto;
-  margin-right: auto;
-  margin-top: 10%;
-}
-@media (max-width: 40em) {
-  html .ui-card {
-    max-width: none;
-    margin-top: 30%;
-  }
-}
-/* -------------------- BREADCRUMB ----------------------------- */
-html.ui-mobile body nav.ui-title {
-    padding: 0;
-}
-.breadcrumb_container {
-    float: left;
-}
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
new file mode 100644
index 0000000000..bc97644165
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html manifest="${manifest_url}">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <link rel="shortcut icon" href="favicon.ico">
+
+    <title>${application_title}</title>
+
+    <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
+    <link rel="stylesheet" href="gadget_erp5_nojqm.css">
+
+    <script data-renderjs-configuration="application_title" type="text/x-renderjs-configuration">${application_title}</script>
+    <script data-renderjs-configuration="panel_gadget" type="text/x-renderjs-configuration">${panel_gadget}</script>
+    <script data-renderjs-configuration="action_view" type="text/x-renderjs-configuration">${action_view}</script>
+    <script data-renderjs-configuration="default_view_reference" type="text/x-renderjs-configuration">${default_view_reference}</script>
+    <script data-renderjs-configuration="hateoas_url" type="text/x-renderjs-configuration">${hateoas_url}</script>
+    <script data-renderjs-configuration="frontpage_gadget" type="text/x-renderjs-configuration">${frontpage_gadget}</script>
+
+    <script src="rsvp.js"></script>
+    <script src="renderjs.js"></script>
+    <script src="gadget_global.js" ></script>
+    <script src="erp5_launcher_nojqm.js"></script>
+
+  </head>
+
+  <body>
+    <div data-role="page">
+
+      <div data-gadget-url="gadget_jio.html"
+          data-gadget-scope="setting_gadget"
+          data-gadget-sandbox="public"></div>
+
+      <div data-gadget-url="${router_gadget}"
+          data-gadget-scope="router"
+          data-gadget-sandbox="public"></div>
+
+      <div data-gadget-url="${translation_gadget}"
+          data-gadget-scope="translation_gadget"
+          data-gadget-sandbox="public"></div>
+
+      <div data-gadget-url="${header_gadget}"
+          data-gadget-scope="header"
+          data-gadget-sandbox="public"></div>
+
+      <div data-gadget-url="${jio_gadget}"
+          data-gadget-scope="jio_gadget"
+          data-gadget-sandbox="public"></div>
+
+
+      <div data-gadget-url="gadget_erp5_editor_panel.html"
+          data-gadget-scope="editor_panel"
+          data-gadget-sandbox="public"></div>
+
+      <div data-gadget-url="${panel_gadget}"
+          data-gadget-scope="panel"
+          data-gadget-sandbox="public"></div>
+
+      <div role="main" class="ui-content gadget-content"></div>
+    </div>
+
+  </body>
+</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.xml
similarity index 90%
rename from bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.xml
rename to bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.xml
index c591b68622..cd218b8cde 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_html.xml
@@ -75,17 +75,15 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_erp5_panel_configuration.html</string> </value>
+            <value> <string>erp5_launcher.html</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
-            <value>
-              <none/>
-            </value>
+            <value> <string>Starting Point</string> </value>
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_erp5_panel_configuration_html</string> </value>
+            <value> <string>rjs_gadget_erp5_launcher_html</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -101,9 +99,13 @@
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>text_content_substitution_mapping_method_id</string> </key>
+            <value> <string>WebPage_getRenderJSSubstitutionMappingDict</string> </value>
+        </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Gadget ERP5 Panel Configuration</string> </value>
+            <value> <string>ERP5 Application Launcher</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -167,7 +169,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>romain</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -189,8 +191,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1429254840.51</float>
-                        <string>GMT</string>
+                        <float>1469697538.23</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -220,7 +222,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -234,7 +236,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>942.62057.14260.21691</string> </value>
+                <value> <string>952.55888.33090.2730</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,8 +254,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1431351348.13</float>
-                        <string>GMT</string>
+                        <float>1469697640.18</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -279,7 +281,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -309,8 +311,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1429106531.32</float>
-                        <string>GMT</string>
+                        <float>1469697401.23</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
new file mode 100644
index 0000000000..ef2febf3be
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.js
@@ -0,0 +1,562 @@
+/*globals window, document, RSVP, rJS,
+          loopEventListener, URI, location, XMLHttpRequest, console*/
+/*jslint indent: 2, maxlen: 80*/
+(function (window, document, RSVP, rJS, loopEventListener,
+           XMLHttpRequest, location, console) {
+  "use strict";
+
+  /*
+  if (navigator.hasOwnProperty('serviceWorker')) {
+    // Check if a ServiceWorker already controls the site on load
+    if (!navigator.serviceWorker.controller) {
+      // Register the ServiceWorker
+      navigator.serviceWorker.register('gadget_erp5_serviceworker.js');
+    }
+  }
+  */
+  var MAIN_SCOPE = "m";
+
+  function renderMainGadget(gadget, url, options) {
+    return gadget.declareGadget(url, {
+      scope: MAIN_SCOPE
+    })
+      .push(function (page_gadget) {
+        gadget.props.m_options_string = JSON.stringify(options);
+        if (page_gadget.render === undefined) {
+          return [page_gadget];
+        }
+        return RSVP.all([
+          page_gadget,
+          page_gadget.render(options)
+        ]);
+      })
+      .push(function (all_result) {
+        return all_result[0];
+      });
+  }
+
+  function initHeaderOptions(gadget) {
+    gadget.props.header_argument_list = {
+      panel_action: true,
+      title: gadget.props.application_title || "OfficeJS"
+    };
+  }
+
+  function route(my_root_gadget, my_scope, my_method, my_param_list) {
+    return RSVP.Queue()
+      .push(function () {
+        return my_root_gadget.getDeclaredGadget(my_scope);
+      })
+      .push(function (my_gadget) {
+        if (my_param_list) {
+          return my_gadget[my_method].apply(my_gadget, my_param_list);
+        }
+        return my_gadget[my_method]();
+      });
+  }
+
+  function updateHeader(gadget) {
+    return gadget.getDeclaredGadget("header")
+      .push(function (header_gadget) {
+        return header_gadget.render(gadget.props.header_argument_list);
+      });
+  }
+
+  function increaseLoadingCounter(gadget) {
+    return new RSVP.Queue()
+      .push(function () {
+        gadget.props.loading_counter += 1;
+        if (gadget.props.loading_counter === 1) {
+          return gadget.getDeclaredGadget("header")
+            .push(function (header_gadget) {
+              return header_gadget.notifyLoading();
+            });
+        }
+      });
+  }
+
+  function decreaseLoadingCounter(gadget) {
+    return new RSVP.Queue()
+      .push(function () {
+        gadget.props.loading_counter -= 1;
+        if (gadget.props.loading_counter < 0) {
+          gadget.props.loading_counter = 0;
+          // throw new Error("Unexpected negative loading counter");
+        }
+        if (gadget.props.loading_counter === 0) {
+          return gadget.getDeclaredGadget("header")
+            .push(function (header_gadget) {
+              return header_gadget.notifyLoaded();
+            });
+        }
+      });
+  }
+
+  function callJioGadget(gadget, method, param_list) {
+    var called = false;
+    return new RSVP.Queue()
+      .push(function () {
+        called = true;
+        return increaseLoadingCounter(gadget);
+      })
+      .push(function () {
+        return gadget.getDeclaredGadget("jio_gadget");
+      })
+      .push(function (jio_gadget) {
+        return jio_gadget[method].apply(jio_gadget, param_list);
+      })
+      .push(function (result) {
+        return decreaseLoadingCounter(gadget)
+          .push(function () {
+            return result;
+          });
+      }, function (error) {
+        if (called) {
+          return decreaseLoadingCounter(gadget)
+            .push(function () {
+              throw error;
+            });
+        }
+        throw error;
+      });
+  }
+
+  function displayErrorContent(gadget, error) {
+    // Do not break the application in case of errors.
+    // Display it to the user for now,
+    // and allow user to go back to the frontpage
+    var error_text = "";
+    if (error instanceof RSVP.CancellationError) {
+      return;
+    }
+
+    if (error.target instanceof XMLHttpRequest) {
+      error_text = error.target.toString() + " " +
+        error.target.status + " " +
+        error.target.statusText + "\n" +
+        error.target.responseURL + "\n\n" +
+        error.target.getAllResponseHeaders();
+    } else if (error instanceof Error) {
+      error_text = error.toString();
+    } else {
+      error_text = JSON.stringify(error);
+    }
+
+    console.error(error);
+    if (error instanceof Error) {
+      console.error(error.stack);
+    }
+    // XXX Improve error rendering
+    gadget.props.content_element.innerHTML = "<br/><br/><br/><pre></pre>";
+    gadget.props.content_element.querySelector('pre').textContent =
+      "Error: " + error_text;
+    // XXX Notify error
+  }
+
+  function displayError(gadget, error) {
+    return new RSVP.Queue()
+      .push(function () {
+        return displayErrorContent(gadget, error);
+      })
+      .push(function () {
+        return gadget.dropGadget(MAIN_SCOPE)
+          .push(undefined, function () {
+            // Do not crash the app if the pg gadget in not defined
+            // ie, keep the original error on screen
+            return;
+          });
+      });
+  }
+
+  function getSetting(gadget, key, default_value) {
+    return gadget.getDeclaredGadget("setting_gadget")
+      .push(function (jio_gadget) {
+        return jio_gadget.get("setting");
+      })
+      .push(function (doc) {
+        return doc[key] || default_value;
+      }, function (error) {
+        if (error.status_code === 404) {
+          return default_value;
+        }
+        throw error;
+      });
+  }
+
+  function setSetting(gadget, key, value) {
+    var jio_gadget;
+    return gadget.getDeclaredGadget("setting_gadget")
+      .push(function (result) {
+        jio_gadget = result;
+        return jio_gadget.get("setting");
+      })
+      .push(undefined, function (error) {
+        if (error.status_code === 404) {
+          return {};
+        }
+        throw error;
+      })
+      .push(function (doc) {
+        doc[key] = value;
+        return jio_gadget.put('setting', doc);
+      });
+  }
+
+  //////////////////////////////////////////
+  // Page rendering
+  //////////////////////////////////////////
+  rJS(window)
+    .ready(function (g) {
+      g.props = {};
+      return g.getElement()
+        .push(function (element) {
+          g.props.loading_counter = 0;
+          g.props.element = element;
+          g.props.content_element = element.querySelector('.gadget-content');
+        });
+    })
+    // Configure setting storage
+    .ready(function (g) {
+      return g.getDeclaredGadget("setting_gadget")
+        .push(function (jio_gadget) {
+          return jio_gadget.createJio({
+            type: "indexeddb",
+            database: "setting"
+          });
+        });
+    })
+    .ready(function (g) {
+      // Extract configuration parameters stored in HTML
+      // XXX Will work only if top gadget...
+      var element_list =
+        document.querySelectorAll("[data-renderjs-configuration]"),
+        len = element_list.length,
+        key,
+        value,
+        i,
+        queue = new RSVP.Queue();
+
+      function push(a, b) {
+        queue.push(function () {
+          return setSetting(g, a, b);
+        });
+      }
+
+      for (i = 0; i < len; i += 1) {
+        key = element_list[i].getAttribute('data-renderjs-configuration');
+        value = element_list[i].textContent;
+        g.props[key] = value;
+        push(key, value);
+      }
+      return queue;
+    })
+    .ready(function (g) {
+      return setSetting(g, 'hateoas_url',
+          (new URI(g.props.hateoas_url))
+            .absoluteTo(location.href)
+            .toString()
+        );
+    })
+    // Configure jIO storage
+    .ready(function (g) {
+      var jio_gadget;
+      return g.getDeclaredGadget("jio_gadget")
+        .push(function (result) {
+          jio_gadget = result;
+          return getSetting(g, 'jio_storage_description');
+        })
+        .push(function (result) {
+          return jio_gadget.createJio(result);
+        });
+    })
+    .ready(function (g) {
+      return g.getDeclaredGadget('panel')
+        .push(function (panel_gadget) {
+          return panel_gadget.render();
+        });
+    })
+    .ready(function (g) {
+      return g.getDeclaredGadget('router')
+        .push(function (router_gadget) {
+          return router_gadget.start();
+        });
+    })
+
+    //////////////////////////////////////////
+    // Allow Acquisition
+    //////////////////////////////////////////
+    .allowPublicAcquisition("getSetting", function (argument_list) {
+      return getSetting(this, argument_list[0], argument_list[1]);
+    })
+    .allowPublicAcquisition("setSetting", function (argument_list) {
+      return setSetting(this, argument_list[0], argument_list[1]);
+    })
+    .allowPublicAcquisition("translateHtml", function (argument_list) {
+      return this.getDeclaredGadget("translation_gadget")
+        .push(function (translation_gadget) {
+          return translation_gadget.translateHtml(argument_list[0]);
+        });
+    })
+
+    // XXX Those methods may be directly integrated into the header,
+    // as it handles the submit triggering
+    .allowPublicAcquisition('notifySubmitting', function () {
+      return route(this, "header", 'notifySubmitting');
+    })
+    .allowPublicAcquisition('notifySubmitted', function () {
+      return route(this, "header", "notifySubmitted");
+    })
+    .allowPublicAcquisition('notifyChange', function () {
+      return route(this, "header", 'notifyChange');
+    })
+
+    .allowPublicAcquisition('refresh', function () {
+      var gadget = this;
+      return gadget.getDeclaredGadget(MAIN_SCOPE)
+        .push(function (main) {
+          if (main.render !== undefined) {
+            return main.render(JSON.parse(gadget.props.m_options_string));
+          }
+        }, function () {
+          return;
+        });
+    })
+
+    .allowPublicAcquisition("translate", function (argument_list) {
+      return this.getDeclaredGadget("translation_gadget")
+        .push(function (translation_gadget) {
+          return translation_gadget.translate(argument_list[0]);
+        });
+    })
+
+    .allowPublicAcquisition("redirect", function (param_list) {
+      return this.getDeclaredGadget('router')
+        .push(function (router_gadget) {
+          return router_gadget.redirect.apply(router_gadget, param_list);
+        });
+    })
+    .allowPublicAcquisition('reload', function () {
+      return location.reload();
+    })
+    .allowPublicAcquisition("getUrlParameter", function (param_list) {
+      return this.getDeclaredGadget('router')
+        .push(function (router_gadget) {
+          return router_gadget.getUrlParameter.apply(router_gadget, param_list);
+        });
+    })
+    .allowPublicAcquisition("getUrlFor", function (param_list) {
+      return this.getDeclaredGadget('router')
+        .push(function (router_gadget) {
+          return router_gadget.getCommandUrlFor.apply(router_gadget,
+                                                      param_list);
+        });
+    })
+
+    .allowPublicAcquisition("updateHeader", function (param_list) {
+      var gadget = this;
+      initHeaderOptions(gadget);
+      return this.getDeclaredGadget("translation_gadget")
+        .push(function (translation_gadget) {
+          var promise_list = [],
+            key;
+          for (key in param_list[0]) {
+            if (param_list[0].hasOwnProperty(key)) {
+              gadget.props.header_argument_list[key] = param_list[0][key];
+            }
+          }
+
+          promise_list.push(translation_gadget.translate(
+            gadget.props.header_argument_list.title
+          ));
+          if (gadget.props.header_argument_list.hasOwnProperty('right_title')) {
+            promise_list.push(translation_gadget.translate(
+              gadget.props.header_argument_list.right_title
+            ));
+          }
+          return RSVP.all(promise_list);
+        })
+        .push(function (result_list) {
+          gadget.props.header_argument_list.title = result_list[0];
+          if (result_list.length === 2) {
+            gadget.props.header_argument_list.right_title = result_list[1];
+          }
+
+          // XXX Sven hack: number of _url determine padding for
+          // subheader on ui-content
+          var key,
+            count = 0;
+          for (key in gadget.props.header_argument_list) {
+            if (gadget.props.header_argument_list.hasOwnProperty(key)) {
+              if (key.indexOf('_url') > -1) {
+                count += 1;
+              }
+            }
+          }
+          if (count > 2) {
+            gadget.props.sub_header_class = "ui-has-subheader";
+          }
+        });
+    })
+
+    .allowPublicAcquisition('triggerPanel', function () {
+      return route(this, "panel", "toggle");
+    })
+    .allowPublicAcquisition('renderEditorPanel', function (param_list) {
+      return route(this, "editor_panel", 'render', param_list);
+    })
+    .allowPublicAcquisition("jio_allDocs", function (param_list) {
+      return callJioGadget(this, "allDocs", param_list);
+    })
+    .allowPublicAcquisition("jio_remove", function (param_list) {
+      return callJioGadget(this, "remove", param_list);
+    })
+    .allowPublicAcquisition("jio_post", function (param_list) {
+      return callJioGadget(this, "post", param_list);
+    })
+    .allowPublicAcquisition("jio_put", function (param_list) {
+      return callJioGadget(this, "put", param_list);
+    })
+    .allowPublicAcquisition("jio_get", function (param_list) {
+      return callJioGadget(this, "get", param_list);
+    })
+    .allowPublicAcquisition("jio_allAttachments", function (param_list) {
+      return callJioGadget(this, "allAttachments", param_list);
+    })
+    .allowPublicAcquisition("jio_getAttachment", function (param_list) {
+      return callJioGadget(this, "getAttachment", param_list);
+    })
+    .allowPublicAcquisition("jio_putAttachment", function (param_list) {
+      return callJioGadget(this, "putAttachment", param_list);
+    })
+    .allowPublicAcquisition("jio_removeAttachment", function (param_list) {
+      return callJioGadget(this, "removeAttachment", param_list);
+    })
+    .allowPublicAcquisition("jio_repair", function (param_list) {
+      return callJioGadget(this, "repair", param_list);
+    })
+    .allowPublicAcquisition("triggerSubmit", function (param_list) {
+      return this.getDeclaredGadget(MAIN_SCOPE)
+        .push(function (main_gadget) {
+          return main_gadget.triggerSubmit(param_list);
+        });
+    })
+    /////////////////////////////////////////////////////////////////
+    // declared methods
+    /////////////////////////////////////////////////////////////////
+    .allowPublicAcquisition("renderApplication", function (param_list) {
+      return this.renderXXX.apply(this, param_list);
+    })
+    // Render the page
+    .declareMethod('renderXXX', function (options) {
+      var gadget = this;
+
+      gadget.props.options = options;
+      // Reinitialize the loading counter
+      gadget.props.loading_counter = 0;
+      // By default, init the header options to be empty
+      // (ERP5 title by default + sidebar)
+      initHeaderOptions(gadget);
+      return new RSVP.Queue()
+        .push(function () {
+          return increaseLoadingCounter(gadget);
+        })
+        .push(function () {
+          return gadget.getDeclaredGadget('panel');
+        })
+        .push(function (panel_gadget) {
+          return panel_gadget.close();
+        })
+        .push(function () {
+          return gadget.getDeclaredGadget('editor_panel');
+        })
+        .push(function (editor_panel) {
+          return editor_panel.close();
+        })
+        .push(function () {
+          return gadget.getDeclaredGadget('router');
+        })
+        .push(function (router_gadget) {
+          return router_gadget.route(options);
+        })
+        .push(function (route_result) {
+          return renderMainGadget(
+            gadget,
+            route_result.url,
+            route_result.options
+          );
+        })
+        .push(function (main_gadget) {
+          // Append loaded gadget in the page
+          if (main_gadget !== undefined) {
+            return main_gadget.getElement()
+              .push(function (fragment) {
+                var element = gadget.props.content_element,
+                  content_container = document.createElement("div");
+                content_container.className = "ui-content " +
+                  (gadget.props.sub_header_class || "");
+                // reset subheader indicator
+                delete gadget.props.sub_header_class;
+
+                // go to the top of the page
+                window.scrollTo(0, 0);
+
+                // Clear first to DOM, append after to reduce flickering/manip
+                while (element.firstChild) {
+                  element.removeChild(element.firstChild);
+                }
+                content_container.appendChild(fragment);
+                element.appendChild(content_container);
+
+                return updateHeader(gadget);
+                // XXX Drop notification
+                // return header_gadget.notifyLoaded();
+              });
+          }
+        })
+        .push(function () {
+          return decreaseLoadingCounter(gadget);
+        }, function (error) {
+          return decreaseLoadingCounter(gadget)
+            .push(function () {
+              throw error;
+            });
+        })
+        .push(undefined, function (error) {
+          return displayError(gadget, error);
+        });
+    })
+
+    /////////////////////////////////
+    // Handle sub gadgets services
+    /////////////////////////////////
+    .allowPublicAcquisition('reportServiceError', function (param_list,
+                                                            gadget_scope) {
+      if (gadget_scope === undefined) {
+        // don't fail in case of dropped subgadget (like previous page)
+        return;
+      }
+      return displayError(this, param_list[0]);
+    })
+
+    .declareService(function () {
+      ////////////////////////////////////
+      // Form submit listening. Prevent browser to automatically
+      // handle the form submit in case of a bug
+      ////////////////////////////////////
+      var gadget = this;
+
+      function catchFormSubmit() {
+        return displayError(gadget, new Error("Unexpected form submit"));
+      }
+
+      // Listen to form submit
+      return loopEventListener(
+        gadget.props.element,
+        'submit',
+        false,
+        catchFormSubmit
+      );
+    });
+
+}(window, document, RSVP, rJS, loopEventListener,
+  XMLHttpRequest, location, console));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
similarity index 90%
rename from bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.xml
rename to bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
index 7674088d25..7507cbfb06 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_launcher_js.xml
@@ -24,6 +24,7 @@
             <key> <string>_Add_portal_content_Permission</string> </key>
             <value>
               <tuple>
+                <string>Assignee</string>
                 <string>Assignor</string>
                 <string>Manager</string>
               </tuple>
@@ -42,6 +43,8 @@
             <key> <string>_Modify_portal_content_Permission</string> </key>
             <value>
               <tuple>
+                <string>Assignee</string>
+                <string>Assignor</string>
                 <string>Manager</string>
               </tuple>
             </value>
@@ -68,7 +71,7 @@
         </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_erp5_panel_configuration.js</string> </value>
+            <value> <string>erp5_launcher_nojqm.js</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -78,7 +81,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_erp5_panel_configuration_js</string> </value>
+            <value> <string>rjs_gadget_erp5_launcher_js</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -96,7 +99,7 @@
         </item>
         <item>
             <key> <string>title</string> </key>
-            <value> <string>Gadget ERP5 Panel Configuration JS</string> </value>
+            <value> <string>ERP5 Launcher JS</string> </value>
         </item>
         <item>
             <key> <string>version</string> </key>
@@ -156,11 +159,11 @@
           <dictionary>
             <item>
                 <key> <string>action</string> </key>
-                <value> <string>publish</string> </value>
+                <value> <string>publish_alive</string> </value>
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -182,8 +185,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1429106462.69</float>
-                        <string>GMT</string>
+                        <float>1469697528.36</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -191,7 +194,7 @@
             </item>
             <item>
                 <key> <string>validation_state</string> </key>
-                <value> <string>published</string> </value>
+                <value> <string>published_alive</string> </value>
             </item>
           </dictionary>
         </list>
@@ -213,7 +216,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -227,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>942.62105.59106.27904</string> </value>
+                <value> <string>952.55886.52877.43281</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -245,8 +248,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1431354245.91</float>
-                        <string>GMT</string>
+                        <float>1469697595.92</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -272,7 +275,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -302,8 +305,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1429105919.74</float>
-                        <string>GMT</string>
+                        <float>1469697401.26</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html
index 5c348dff03..78ed2417c5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.html
@@ -136,8 +136,8 @@
           <div class="ui-controlgroup ui-controlgroup-horizontal ui-corner-all ui-paging-menu">
             <div class="ui-controlgroup-controls">
               <a class="{{previous_classname}}" data-i18n="Previous" href="{{previous_url}}">Previous</a>
-              <span class="ui-btn ui-disabled" data-i18n="{{record}}">{{record}}</span>
               <a class="{{next_classname}}" data-i18n="Next" href="{{next_url}}">Next</a>
+              <span class="ui-btn ui-disabled" data-i18n="{{record}}">{{record}}</span>
             </div>
           </div>
         </th>
@@ -147,17 +147,17 @@
 
     <script id="listbox-template" type="text/x-handlebars-template">
       <div class="ui-table-header ui-header ui-bar-c ui-corner-all">
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
-          <div class="ui-controlgroup-controls">
+        <h1 data-i18n="{{title}}" class="ui-title ui-override-theme">{{title}}</h1>
+        <!--div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
+          <div class="ui-controlgroup-controls"-->
             <button data-rel="hide" data-i18n="Hide Rows" name="Hide" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-eye ui-btn-icon-left {{hide_class}}">Hide Rows</button>
-          </div>
+          <!--/div>
         </div>
-        <h1 data-i18n="{{title}}" class="ui-title ui-override-theme">{{title}}</h1>
         <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-          <div class="ui-controlgroup-controls">
+          <div class="ui-controlgroup-controls"-->
             <button data-rel="Sort" data-i18n="Sort" name="Sort" type="submit" class="submit responsive ui-last-child ui-btn ui-icon-sort-amount-desc ui-btn-icon-left {{hide_sort}}">Sort</button>
-          </div>
-        </div>
+          <!--/div>
+        </div-->
       </div>
       <table class="ui-responsive ui-body-c ui-table-inset">
         <thead class="ui-bar-inherit thead"></thead>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml
index de857b3fda..a13d807e3e 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>951.48046.6494.25736</string> </value>
+                <value> <string>952.10020.33938.42018</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1468328152.64</float>
+                        <float>1467032548.63</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
index 5f47166df0..6e7ecb3ba0 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.js
@@ -292,9 +292,9 @@
               tmp = gadget.props.sort_list[j];
               if (tmp[0] === gadget.props.field_json.column_list[i][0]) {
                 if (tmp[1] === "ascending") {
-                  class_value = "ui-icon-arrow-up";
+                  class_value = "ui-icon ui-icon-arrow-up";
                 } else {
-                  class_value = "ui-icon-arrow-down";
+                  class_value = "ui-icon ui-icon-arrow-down";
                 }
                 break;
               }
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
index 559a110cf5..55e511f6f5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_listbox_js.xml
@@ -236,7 +236,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.4464.6775.58641</string> </value>
+                <value> <string>952.33120.49574.44270</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -254,7 +254,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1466702297.15</float>
+                        <float>1468331648.73</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css
new file mode 100644
index 0000000000..a12ac471f6
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.css
@@ -0,0 +1,2649 @@
+/**********************************************
+* Colors
+**********************************************/
+/**********************************************
+* Fonts (font-family)
+**********************************************/
+/**********************************************
+* Shared
+**********************************************/
+/**********************************************
+* http://meyerweb.com/eric/tools/css/reset/ 
+*   v2.0 | 20110126
+*   License: none (public domain)
+**********************************************/
+html,
+body,
+div,
+span,
+applet,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+a,
+abbr,
+acronym,
+address,
+big,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+s,
+samp,
+small,
+strike,
+strong,
+sub,
+sup,
+tt,
+var,
+b,
+u,
+i,
+center,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+canvas,
+details,
+embed,
+figure,
+figcaption,
+footer,
+header,
+hgroup,
+menu,
+nav,
+output,
+ruby,
+section,
+summary,
+time,
+mark,
+audio,
+video {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size: 100%;
+  font: inherit;
+  vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+  display: block;
+}
+body {
+  line-height: 1;
+}
+ol,
+ul {
+  list-style: none;
+}
+blockquote,
+q {
+  quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+  content: '';
+  content: none;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+/**********************************************
+* Default
+**********************************************/
+html {
+  height: 100%;
+  width: 100%;
+  display: block;
+  background-color: #FFFFFF;
+  box-sizing: border-box;
+}
+*,
+*:before,
+*:after {
+  box-sizing: inherit;
+}
+body {
+  height: 100%;
+  width: 100%;
+  display: block;
+  color: #1F1F1F;
+  word-wrap: break-word;
+}
+body,
+button,
+input,
+textarea,
+select {
+  font-family: 'Open Sans', Helvetica, Arial, sans-serif;
+  font-weight: 400;
+  line-height: 1.3;
+}
+@media only screen and (min-width: 62em), only screen and (min-width: 28em) and (max-width: 62em) {
+  body,
+  button,
+  input,
+  textarea,
+  select {
+    font-size: 11pt;
+  }
+}
+@media only screen and (max-width: 28em) {
+  body,
+  button,
+  input,
+  textarea,
+  select {
+    font-size: 12pt;
+  }
+}
+/**********************************************
+* Inline elements
+**********************************************/
+strong {
+  font-weight: bold;
+}
+i,
+cite,
+em,
+var,
+address,
+dfn {
+  font-style: italic;
+}
+strong,
+b {
+  font-weight: bold;
+}
+u,
+ins {
+  text-decoration: underline;
+}
+s,
+strike,
+del {
+  text-decoration: line-through;
+}
+sup {
+  vertical-align: super;
+  font-size: smaller;
+}
+sub {
+  vertical-align: sub;
+  font-size: smaller;
+}
+small {
+  font-size: smaller;
+}
+tt,
+code,
+kbd,
+samp {
+  font-family: "Courier New", Courier, monospace;
+}
+q {
+  display: inline;
+  quotes: initial;
+}
+q:before {
+  content: open-quote;
+}
+q:after {
+  content: close-quote;
+}
+mark {
+  color: #22CC22;
+}
+/**********************************************
+* Link
+**********************************************/
+a {
+  color: #2FA2E4;
+  text-decoration: none;
+}
+a[href=""] {
+  color: #1F1F1F;
+}
+a:hover {
+  text-decoration: underline;
+}
+a:focus {
+  outline-offset: -2px;
+  outline: 2px solid #3388cc;
+}
+@media only screen and (min-width: 62em) {
+  a[accesskey]:after {
+    content: " [" attr(accesskey) "] ";
+  }
+}
+/**********************************************
+* Preformatted
+**********************************************/
+pre,
+xmp,
+plaintext,
+listing {
+  display: block;
+  white-space: pre-wrap;
+}
+/**********************************************
+* hr
+**********************************************/
+hr {
+  display: block;
+  border-style: inset;
+  border-width: 1pt;
+  border-color: #FF6600;
+}
+/**********************************************
+* Text fields
+**********************************************/
+label {
+  display: block;
+  color: #777777;
+}
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color]),
+textarea {
+  width: 100%;
+  margin: 0;
+  padding: 0.4em;
+  line-height: 1.4em;
+  border: none;
+  background-color: #FFFFFF;
+  color: #1F1F1F;
+  border-radius: 0.325em;
+  border-width: 1px;
+  border-style: solid;
+  border-color: rgba(0, 0, 0, 0.3);
+  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
+  outline-offset: 0;
+}
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color])[readonly="readonly"],
+textarea[readonly="readonly"] {
+  border: none;
+  box-shadow: none;
+  padding: 0;
+  line-height: 1em;
+}
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color]):active,
+textarea:active,
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color]):focus,
+textarea:focus {
+  outline-offset: 0;
+}
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color]):focus,
+textarea:focus {
+  box-shadow: 0 0 12px #3388cc;
+}
+select {
+  width: 100%;
+  margin: 0;
+  padding: 0.4em;
+  padding-right: 1.8em;
+  -webkit-appearance: none;
+  -moz-appearance: none;
+  appearance: none;
+  line-height: 1.4em;
+  cursor: pointer;
+  background-image: none;
+  background-color: #FFFFFF;
+  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='50px' height='50px'><polyline fill-opacity='0.5' points='46.139,15.518 25.166,36.49 4.193,15.519'/></svg>") right no-repeat;
+  background-position: right .5em top 50%;
+  background-size: 1em 1em;
+  color: #1F1F1F;
+  border-radius: 0.325em;
+  border-width: 1px;
+  border-style: solid;
+  border-color: rgba(0, 0, 0, 0.3);
+  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
+  outline-offset: 0;
+}
+select[readonly="readonly"] {
+  border: none;
+  background: none;
+  box-shadow: none;
+  padding: 0;
+  line-height: 1em;
+}
+select:not([readonly="readonly"]):hover,
+select:not([readonly="readonly"]):active {
+  background-color: #e0e0e0;
+}
+select:-moz-focusring {
+  color: transparent;
+}
+textarea {
+  height: 15em;
+  width: 100%;
+  margin: 0;
+}
+::-webkit-input-placeholder {
+  color: #575757;
+}
+:-moz-placeholder {
+  /* Firefox 18- */
+  color: #575757;
+}
+::-moz-placeholder {
+  /* Firefox 19+ */
+  color: #575757;
+}
+:-ms-input-placeholder {
+  color: #575757;
+}
+input[type=submit],
+button {
+  margin: 0;
+  padding: 0;
+  border: none;
+  background-image: none;
+  background-color: #FFFFFF;
+  color: #1F1F1F;
+  transition: background-color 0.2s ease-out;
+  cursor: pointer;
+}
+input[type=submit]::-moz-focus-inner,
+button::-moz-focus-inner {
+  border: 0px;
+  padding: 0px;
+}
+input[type=submit]:hover,
+button:hover,
+input[type=submit]:focus,
+button:focus {
+  outline: none;
+  background-color: #e0e0e0;
+}
+input[type=submit]:active,
+button:active {
+  background-color: #adadad;
+}
+/**********************************************
+* Media
+**********************************************/
+img,
+canvas,
+iframe,
+video,
+svg {
+  max-width: 100%;
+}
+svg polyline {
+  stroke: #1F1F1F;
+  fill: none;
+}
+svg text {
+  stroke: #1F1F1F;
+  fill: #1F1F1F;
+}
+iframe {
+  width: 100%;
+  height: 25em;
+  background-color: white;
+}
+img {
+  image-orientation: from-image;
+}
+/**********************************************
+* Gadget: panel
+**********************************************/
+div[data-gadget-scope='panel'] {
+  background-color: #444444;
+  color: #FFFFFF;
+  width: 17em;
+  min-height: 100%;
+  max-height: none;
+  position: fixed;
+  top: 0;
+  left: 0;
+  display: block;
+  z-index: 2000;
+}
+@media only screen and (max-width: 28em), only screen and (min-width: 28em) and (max-width: 62em) {
+  div[data-gadget-scope='panel'] {
+    box-shadow: 5px 0 5px rgba(0, 0, 0, 0.15);
+  }
+}
+@media only screen and (max-width: 28em), only screen and (min-width: 28em) and (max-width: 62em) {
+  div[data-gadget-scope='panel'] {
+    left: -18em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+  }
+  div[data-gadget-scope='panel'].visible {
+    transform: translate3d(18em, 0, 0);
+  }
+}
+div[data-gadget-scope='panel'] div[data-role="header"] {
+  display: flex;
+  justify-content: flex-start;
+}
+div[data-gadget-scope='panel'] div[data-role="header"] .panel_img {
+  text-align: center;
+  flex: 1;
+  height: 2.6em;
+}
+div[data-gadget-scope='panel'] div[data-role="header"] button,
+div[data-gadget-scope='panel'] div[data-role="header"] a {
+  width: 3em;
+  overflow: hidden;
+  text-indent: -9999px;
+  white-space: nowrap;
+  background-color: #444444;
+  display: block;
+  line-height: 2.6em;
+  color: #FFFFFF;
+}
+div[data-gadget-scope='panel'] div[data-role="header"] button::before,
+div[data-gadget-scope='panel'] div[data-role="header"] a::before {
+  float: left;
+  text-indent: 0;
+  margin-left: 1em;
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='panel'] div[data-role="header"] button[data-i18n="Close"],
+  div[data-gadget-scope='panel'] div[data-role="header"] a[data-i18n="Close"] {
+    display: none;
+  }
+}
+div[data-gadget-scope='panel'] img {
+  text-align: left;
+  height: 100%;
+}
+div[data-gadget-scope='panel'] ul {
+  margin-top: 2.6em;
+}
+div[data-gadget-scope='panel'] ul li a {
+  color: #FFFFFF;
+  padding: .4em;
+  padding-left: 1em;
+  display: block;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+}
+div[data-gadget-scope='panel'] ul li a::before {
+  width: 2em;
+}
+div[data-gadget-scope='panel'] ul li a:hover,
+div[data-gadget-scope='panel'] ul li a:active {
+  background-color: #2b2b2b;
+}
+/**********************************************
+* Gadget: editor panel
+**********************************************/
+div[data-gadget-scope='editor_panel'] {
+  background-color: #FFFFFF;
+  width: 17em;
+  min-height: 100%;
+  max-height: none;
+  position: fixed;
+  top: 0;
+  display: block;
+  z-index: 3000;
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='editor_panel'] {
+    left: -18em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+    box-shadow: 5px 0 5px rgba(0, 0, 0, 0.15);
+  }
+  div[data-gadget-scope='editor_panel'].visible {
+    transform: translate3d(18em, 0, 0);
+  }
+}
+@media only screen and (max-width: 28em), only screen and (min-width: 28em) and (max-width: 62em) {
+  div[data-gadget-scope='editor_panel'] {
+    right: -18em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+    box-shadow: -5px 0 5px rgba(0, 0, 0, 0.15);
+  }
+  div[data-gadget-scope='editor_panel'].visible {
+    transform: translate3d(-18em, 0, 0);
+  }
+}
+div[data-gadget-scope='editor_panel'] div[data-role="header"] {
+  display: flex;
+  justify-content: space-between;
+}
+div[data-gadget-scope='editor_panel'] div[data-role="header"] h1 {
+  text-align: left;
+  line-height: 2.6em;
+  max-height: 2.6em;
+}
+div[data-gadget-scope='editor_panel'] div[data-role="header"] button,
+div[data-gadget-scope='editor_panel'] div[data-role="header"] a {
+  width: 3em;
+  overflow: hidden;
+  text-indent: -9999px;
+  white-space: nowrap;
+  display: block;
+  line-height: 2.6em;
+}
+div[data-gadget-scope='editor_panel'] div[data-role="header"] button::before,
+div[data-gadget-scope='editor_panel'] div[data-role="header"] a::before {
+  float: left;
+  text-indent: 0;
+  margin-left: 1em;
+}
+div[data-gadget-scope='editor_panel'] section {
+  padding: 1em;
+}
+div[data-gadget-scope='editor_panel'] section fieldset > div {
+  display: inline-block;
+}
+div[data-gadget-scope='editor_panel'] section fieldset label {
+  display: inline-block;
+  text-align: center;
+  font-size: 0.8em;
+}
+div[data-gadget-scope='editor_panel'] section fieldset input[type="radio"] {
+  display: inline-block;
+}
+div[data-gadget-scope='editor_panel'] section .filter_item_container > div,
+div[data-gadget-scope='editor_panel'] section .sort_item_container > div {
+  display: flex;
+  align-items: flex-start;
+  padding: 0.5em 0;
+}
+div[data-gadget-scope='editor_panel'] section .filter_item_container > div .filter_item,
+div[data-gadget-scope='editor_panel'] section .sort_item_container > div .filter_item,
+div[data-gadget-scope='editor_panel'] section .filter_item_container > div .sort_item,
+div[data-gadget-scope='editor_panel'] section .sort_item_container > div .sort_item {
+  flex: 1;
+}
+div[data-gadget-scope='editor_panel'] section button {
+  padding: 0.5em;
+  border: 1px solid rgba(0, 0, 0, 0.14);
+  border-radius: 0.325em;
+  margin-right: 0.5em;
+  width: 2em;
+  overflow: hidden;
+  text-indent: -9999px;
+  white-space: nowrap;
+}
+div[data-gadget-scope='editor_panel'] section button:last-of-type {
+  margin-right: 0;
+}
+div[data-gadget-scope='editor_panel'] section button::before {
+  margin-right: 0.4em;
+  float: left;
+  text-indent: 0;
+}
+/**********************************************
+* Gadget: header
+**********************************************/
+div[data-gadget-scope='header'] .ui-header {
+  position: fixed;
+  z-index: 1000;
+  text-align: center;
+  width: 100%;
+  color: #FFFFFF;
+}
+@media only screen and (min-width: 28em) and (max-width: 62em), only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header {
+    display: flex;
+    flex-flow: row wrap;
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header {
+    display: table;
+    margin-left: 17em;
+  }
+}
+div[data-gadget-scope='header'] .ui-header button,
+div[data-gadget-scope='header'] .ui-header a {
+  color: #FFFFFF;
+  background-color: #085078;
+}
+div[data-gadget-scope='header'] .ui-header button:hover,
+div[data-gadget-scope='header'] .ui-header a:hover,
+div[data-gadget-scope='header'] .ui-header button:active,
+div[data-gadget-scope='header'] .ui-header a:active {
+  background-color: #0e90d8;
+}
+div[data-gadget-scope='header'] .ui-header > .ui-btn-left button,
+div[data-gadget-scope='header'] .ui-header > .ui-btn-left a {
+  border-right: 1px solid rgba(255, 255, 255, 0.55);
+}
+div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls button,
+div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls a {
+  display: block;
+  line-height: 2.6em;
+  width: 8em;
+}
+@media only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls button,
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls a {
+    width: 3em;
+    overflow: hidden;
+    text-indent: -9999px;
+    white-space: nowrap;
+  }
+}
+div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls button::before,
+div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls a::before {
+  margin-right: 0.4em;
+}
+@media only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls button::before,
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls a::before {
+    float: left;
+    text-indent: 0;
+    margin-left: 1em;
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls button[name="panel"],
+  div[data-gadget-scope='header'] .ui-header .ui-controlgroup-controls a[name="panel"] {
+    display: none;
+  }
+}
+div[data-gadget-scope='header'] .ui-header > .ui-btn-right button,
+div[data-gadget-scope='header'] .ui-header > .ui-btn-right a {
+  background-color: #F60;
+}
+@media only screen and (max-width: 28em), only screen and (min-width: 28em) and (max-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header > .ui-btn-right button,
+  div[data-gadget-scope='header'] .ui-header > .ui-btn-right a {
+    border-left: 1px solid rgba(255, 255, 255, 0.55);
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header > .ui-btn-right {
+    display: table-footer-group;
+  }
+  div[data-gadget-scope='header'] .ui-header > .ui-btn-right button,
+  div[data-gadget-scope='header'] .ui-header > .ui-btn-right a {
+    margin: 0.5em;
+    margin-left: 2em;
+  }
+}
+div[data-gadget-scope='header'] .ui-header h1 {
+  text-align: left;
+  line-height: 2.6em;
+  flex: 1;
+  background-color: #085078;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+div[data-gadget-scope='header'] .ui-header h1 > span {
+  padding-left: 4em;
+}
+@media only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header h1 > span {
+    padding-left: 2em;
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header h1 > span {
+    padding-left: 2em;
+  }
+}
+div[data-gadget-scope='header'] .ui-header h1 a {
+  display: block;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+div[data-gadget-scope='header'] .ui-header h1 a::before {
+  display: inline-block;
+  width: 4em;
+}
+@media only screen and (min-width: 28em) and (max-width: 62em), only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header h1 a::before {
+    text-align: center;
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header h1 a::before {
+    padding-left: 2em;
+  }
+}
+@media only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header h1 a::before {
+    width: 2em;
+  }
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header .ui-subheader {
+    text-align: left;
+  }
+}
+div[data-gadget-scope='header'] .ui-header ul {
+  width: 100%;
+  background-color: #0E81C2;
+  display: table;
+  table-layout: fixed;
+}
+div[data-gadget-scope='header'] .ui-header ul a {
+  background-color: #0E81C2;
+}
+@media only screen and (min-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header ul {
+    height: 100%;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li {
+    display: inline-block;
+    height: 100%;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a {
+    display: block;
+    padding-left: 2em;
+    padding-right: 2em;
+    min-width: 5em;
+    line-height: 2.6em;
+    height: 100%;
+    white-space: nowrap;
+    overflow: hidden;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a::before {
+    display: none;
+  }
+}
+@media only screen and (min-width: 28em) and (max-width: 62em) {
+  div[data-gadget-scope='header'] .ui-header ul li {
+    display: table-cell;
+    border-left: 1px solid rgba(0, 0, 0, 0.55);
+  }
+  div[data-gadget-scope='header'] .ui-header ul li:first-child {
+    border-left: none;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a {
+    display: block;
+    padding-top: 0.4em;
+    padding-bottom: 0.4em;
+    white-space: nowrap;
+    overflow: hidden;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a::before {
+    font-size: 1.2em;
+    padding-bottom: 0.3em;
+    display: block;
+  }
+}
+@media only screen and (max-width: 28em) {
+  div[data-gadget-scope='header'] .ui-header ul li {
+    line-height: 2.6em;
+    display: table-cell;
+    border-left: 1px solid rgba(0, 0, 0, 0.55);
+  }
+  div[data-gadget-scope='header'] .ui-header ul li:first-child {
+    border-left: none;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a {
+    display: block;
+    text-align: center;
+    vertical-align: middle;
+    font-size: 1.5em;
+    padding-top: 0.4em;
+    padding-bottom: 0.4em;
+    overflow: hidden;
+    text-indent: -9999px;
+    white-space: nowrap;
+  }
+  div[data-gadget-scope='header'] .ui-header ul li a::before {
+    float: left;
+    text-indent: 0;
+    width: 100%;
+  }
+}
+/**********************************************
+* Gadget: main
+**********************************************/
+.gadget-content {
+  padding: 2em;
+  padding-top: 9em;
+  /* form validation (assuming label>span is used) */
+}
+.gadget-content input[type='submit'] {
+  padding: 0.4em;
+  line-height: 1.4em;
+  background-color: #444444;
+  color: #FFFFFF;
+  border-radius: 0.325em;
+  border-width: 1px;
+  border-style: solid;
+  min-width: 8em;
+}
+.gadget-content input[type='submit']:hover,
+.gadget-content input[type='submit']:focus {
+  background-color: #5e5e5e;
+}
+.gadget-content input[type='submit']:active {
+  background-color: #777777;
+}
+@media only screen and (min-width: 62em) {
+  .gadget-content {
+    margin-left: 17em;
+  }
+}
+@media only screen and (max-width: 28em) {
+  .gadget-content {
+    padding: 0.5em;
+    padding-top: 8em;
+  }
+}
+.gadget-content .ui-field-contain {
+  padding: 0.5em 0;
+}
+.gadget-content .ui-field-contain div {
+  width: 100%;
+}
+.gadget-content .ui-field-contain label {
+  margin: 0 0 0.4em;
+}
+.gadget-content .ui-content-title {
+  font-size: 150%;
+}
+.gadget-content ul.document-listview {
+  margin-bottom: 2em;
+}
+.gadget-content ul.document-listview li {
+  border-color: rgba(0, 0, 0, 0.3);
+  border-width: 1px;
+  border-style: solid;
+  border-bottom-style: none;
+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
+}
+.gadget-content ul.document-listview li:not(.ui-li-has-count) a:after {
+  font-family: FontAwesome;
+  content: "\f0da";
+  text-align: right;
+  float: right;
+  position: absolute;
+  right: 1.5em;
+}
+.gadget-content ul.document-listview li a {
+  display: block;
+  position: relative;
+  padding: 0.7em 1em;
+  padding-right: 2.5em;
+  color: #222222;
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+.gadget-content ul.document-listview li a:hover,
+.gadget-content ul.document-listview li a:active {
+  background-color: #e0e0e0;
+}
+.gadget-content ul.document-listview li:first-child {
+  border-top-left-radius: 0.325em;
+  border-top-right-radius: 0.325em;
+}
+.gadget-content ul.document-listview li:last-child {
+  border-bottom-left-radius: 0.325em;
+  border-bottom-right-radius: 0.325em;
+  border-bottom-style: solid;
+}
+.gadget-content ul.document-listview li .ui-li-count {
+  float: right;
+  padding: 0 0.5em;
+  border: 1px solid rgba(0, 0, 0, 0.14);
+  border-radius: 0.325em;
+  position: absolute;
+  right: .5em;
+}
+@media only screen and (min-width: 62em) {
+  .gadget-content .left,
+  .gadget-content .right {
+    vertical-align: top;
+    display: inline-block;
+    width: 50%;
+  }
+  .gadget-content .right {
+    padding-left: 2%;
+  }
+}
+@media only screen and (min-width: 28em) and (max-width: 62em), only screen and (min-width: 62em) {
+  .gadget-content .ui-field-contain {
+    display: flex;
+  }
+  .gadget-content .ui-field-contain label {
+    flex: 1;
+  }
+  .gadget-content .ui-field-contain label + div {
+    flex: 3;
+  }
+}
+@media only screen and (min-width: 62em) {
+  .gadget-content .center .ui-field-contain label + div {
+    flex: 7;
+  }
+}
+@media only screen and (max-width: 28em) {
+  .gadget-content .ui-field-contain {
+    padding: 0.8em 0;
+  }
+}
+.gadget-content form label span {
+  color: red;
+}
+/**********************************************
+* Gadget: relation field
+**********************************************/
+.relation-input {
+  display: flex;
+}
+.relation-input a {
+  width: 3em;
+  overflow: hidden;
+  text-indent: -9999px;
+  white-space: nowrap;
+  display: block;
+  line-height: 2.6em;
+}
+.relation-input a::before {
+  float: left;
+  text-indent: 0;
+  margin-left: 1em;
+}
+.relation-input div {
+  position: relative;
+}
+.relation-input ul {
+  position: absolute;
+  display: block;
+  width: 100%;
+  z-index: 501;
+}
+.relation-input ul li {
+  cursor: pointer;
+  background-color: #444444;
+  color: #FFFFFF;
+  padding: .4em;
+  padding-left: 1em;
+  display: block;
+  text-overflow: ellipsis;
+  overflow: hidden;
+  white-space: nowrap;
+}
+.relation-input ul li::before {
+  width: 2em;
+}
+.relation-input ul li:hover,
+.relation-input ul li:active {
+  background-color: #2b2b2b;
+}
+/**********************************************
+* Listbox
+**********************************************/
+div[data-gadget-scope='erp5_searchfield'] .ui-input-text {
+  display: flex;
+}
+div[data-gadget-scope='erp5_searchfield'] button {
+  margin-left: 0.5em;
+  padding: 0.5em;
+  padding-left: 0;
+}
+.document_table .ui-table-header {
+  display: flex;
+  padding-bottom: 0.5em;
+}
+@media only screen and (max-width: 28em) {
+  .document_table .ui-table-header {
+    border-bottom: 2px solid rgba(0, 0, 0, 0.14902);
+  }
+}
+.document_table .ui-table-header h1 {
+  color: #777777;
+  flex: 2;
+  align-self: flex-end;
+}
+.document_table .ui-table-header button {
+  padding: 0.5em;
+  border: 1px solid rgba(0, 0, 0, 0.14);
+  border-radius: 0.325em;
+  margin-right: 0.5em;
+}
+.document_table .ui-table-header button:last-of-type {
+  margin-right: 0;
+}
+@media only screen and (max-width: 28em) {
+  .document_table .ui-table-header button {
+    width: 2em;
+    overflow: hidden;
+    text-indent: -9999px;
+    white-space: nowrap;
+  }
+}
+.document_table .ui-table-header button::before {
+  margin-right: 0.4em;
+}
+@media only screen and (max-width: 28em) {
+  .document_table .ui-table-header button::before {
+    float: left;
+    text-indent: 0;
+  }
+}
+.document_table table {
+  width: 100%;
+  text-align: left;
+}
+.document_table table th,
+.document_table table td {
+  line-height: 1.5em;
+  vertical-align: middle;
+}
+.document_table table thead {
+  background-color: #0E81C2;
+  color: #FFFFFF;
+}
+.document_table table thead tr th {
+  padding: 0.4em 0.25em;
+}
+@media only screen and (max-width: 28em) {
+  .document_table table thead {
+    display: none;
+  }
+}
+.document_table table a {
+  color: #1F1F1F;
+}
+.document_table table tbody tr:nth-child(even) {
+  background-color: #f2f2f2;
+}
+.document_table table tbody tr:hover,
+.document_table table tbody tr:active {
+  background-color: #e0e0e0;
+}
+@media only screen and (min-width: 62em), only screen and (min-width: 28em) and (max-width: 62em) {
+  .document_table table tbody a {
+    display: block;
+    padding: 0.4em 0.25em;
+  }
+}
+@media only screen and (max-width: 28em) {
+  .document_table table tbody tr {
+    display: block;
+    overflow: hidden;
+    width: 100%;
+    height: 4em;
+    position: relative;
+  }
+  .document_table table tbody tr td,
+  .document_table table tbody tr th {
+    display: inline-block;
+  }
+  .document_table table tbody tr td:first-child,
+  .document_table table tbody tr th:first-child {
+    display: inline-block;
+    width: 100%;
+  }
+  .document_table table tbody tr td:first-child a,
+  .document_table table tbody tr th:first-child a {
+    position: absolute;
+    width: 100%;
+    top: 0;
+    bottom: 0;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+  }
+  .document_table table tbody tr td:first-child a:after,
+  .document_table table tbody tr th:first-child a:after {
+    font-family: FontAwesome;
+    content: "\f0da";
+    font-size: 1.25em;
+    position: absolute;
+    right: 0.5em;
+    top: 50%;
+    margin-top: -0.75em;
+    background-color: #FFFFFF;
+    border-radius: 0.5em;
+    width: 1em;
+    text-align: center;
+    line-height: 1em;
+  }
+  .document_table table tbody tr td:first-child ~ th,
+  .document_table table tbody tr th:first-child ~ th,
+  .document_table table tbody tr td:first-child ~ td,
+  .document_table table tbody tr th:first-child ~ td {
+    font-size: 0.8em;
+  }
+  .document_table table tbody tr td:first-child ~ th a,
+  .document_table table tbody tr th:first-child ~ th a,
+  .document_table table tbody tr td:first-child ~ td a,
+  .document_table table tbody tr th:first-child ~ td a {
+    pointer-events: none;
+  }
+  .document_table table tbody tr td:first-child ~ th:not(:last-child) a:not(:empty):after,
+  .document_table table tbody tr th:first-child ~ th:not(:last-child) a:not(:empty):after,
+  .document_table table tbody tr td:first-child ~ td:not(:last-child) a:not(:empty):after,
+  .document_table table tbody tr th:first-child ~ td:not(:last-child) a:not(:empty):after {
+    content: " ~ ";
+  }
+}
+.document_table table tfoot .ui-controlgroup-controls {
+  display: flex;
+  padding-top: 0.5em;
+  border-top: 2px solid rgba(0, 0, 0, 0.14902);
+}
+.document_table table tfoot .ui-controlgroup-controls span {
+  opacity: .3;
+  flex: 2;
+  text-align: right;
+}
+.document_table table tfoot .ui-controlgroup-controls a {
+  padding: 0.5em;
+  border: 1px solid rgba(0, 0, 0, 0.14);
+  border-radius: 0.325em;
+  margin-right: 0.5em;
+}
+.document_table table tfoot .ui-controlgroup-controls a:last-of-type {
+  margin-right: 0;
+}
+.document_table table tfoot .ui-controlgroup-controls a:hover,
+.document_table table tfoot .ui-controlgroup-controls a:active {
+  background-color: #e0e0e0;
+}
+@media only screen and (max-width: 28em) {
+  .document_table table tfoot .ui-controlgroup-controls a {
+    width: 2em;
+    overflow: hidden;
+    text-indent: -9999px;
+    white-space: nowrap;
+  }
+}
+.document_table table tfoot .ui-controlgroup-controls a::before {
+  margin-right: 0.4em;
+}
+@media only screen and (max-width: 28em) {
+  .document_table table tfoot .ui-controlgroup-controls a::before {
+    float: left;
+    text-indent: 0.3em;
+  }
+}
+/**********************************************
+* JQM
+**********************************************/
+.ui-disabled {
+  opacity: .3;
+  cursor: default;
+  pointer-events: none;
+}
+.ui-screen-hidden {
+  display: none;
+}
+/**********************************************
+* Keyframes
+**********************************************/
+@keyframes spin {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+/**********************************************
+* Icons
+**********************************************/
+.ui-btn-icon-top::before,
+.ui-btn-icon-left::before,
+.ui-btn-icon-right::before,
+.ui-icon::before,
+.ui-btn-icon-notext::before {
+  font-family: FontAwesome;
+  display: inline-block;
+  content: "";
+}
+.ui-icon-warning {
+  background: none repeat scroll 0 0 #e4ebf1;
+  border-color: rgba(0, 0, 0, 0.3);
+  color: #777;
+}
+.ui-icon-warning::before {
+  content: "\f071";
+}
+.ui-icon-spinner {
+  opacity: 1;
+}
+.ui-icon-spinner::before {
+  content: "\f110";
+  animation: spin .5s infinite linear;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.ui-icon-glass::before {
+  content: "\f000";
+}
+.ui-icon-music::before {
+  content: "\f001";
+}
+.ui-icon-search::before {
+  content: "\f002";
+}
+.ui-icon-envelope-o::before {
+  content: "\f003";
+}
+.ui-icon-heart::before {
+  content: "\f004";
+}
+.ui-icon-star::before {
+  content: "\f005";
+}
+.ui-icon-star-o::before {
+  content: "\f006";
+}
+.ui-icon-user::before {
+  content: "\f007";
+}
+.ui-icon-film::before {
+  content: "\f008";
+}
+.ui-icon-th-large::before {
+  content: "\f009";
+}
+.ui-icon-th::before {
+  content: "\f00a";
+}
+.ui-icon-th-list::before {
+  content: "\f00b";
+}
+.ui-icon-check::before {
+  content: "\f00c";
+}
+.ui-icon-times::before,
+.ui-icon-delete::before {
+  content: "\f00d";
+}
+.ui-icon-search-plus::before {
+  content: "\f00e";
+}
+.ui-icon-search-minus::before {
+  content: "\f010";
+}
+.ui-icon-power-off::before {
+  content: "\f011";
+}
+.ui-icon-signal::before {
+  content: "\f012";
+}
+.ui-icon-gear::before,
+.ui-icon-cog::before {
+  content: "\f013";
+}
+.ui-icon-trash-o::before {
+  content: "\f014";
+}
+.ui-icon-home::before {
+  content: "\f015";
+}
+.ui-icon-file-o::before {
+  content: "\f016";
+}
+.ui-icon-clock-o::before {
+  content: "\f017";
+}
+.ui-icon-road::before {
+  content: "\f018";
+}
+.ui-icon-download::before {
+  content: "\f019";
+}
+.ui-icon-arrow-circle-o-down::before {
+  content: "\f01a";
+}
+.ui-icon-arrow-circle-o-up::before {
+  content: "\f01b";
+}
+.ui-icon-inbox::before {
+  content: "\f01c";
+}
+.ui-icon-play-circle-o::before {
+  content: "\f01d";
+}
+.ui-icon-rotate-right::before,
+.ui-icon-repeat::before {
+  content: "\f01e";
+}
+.ui-icon-refresh::before {
+  content: "\f021";
+}
+.ui-icon-list-alt::before {
+  content: "\f022";
+}
+.ui-icon-lock::before {
+  content: "\f023";
+}
+.ui-icon-flag::before {
+  content: "\f024";
+}
+.ui-icon-headphones::before {
+  content: "\f025";
+}
+.ui-icon-volume-off::before {
+  content: "\f026";
+}
+.ui-icon-volume-down::before {
+  content: "\f027";
+}
+.ui-icon-volume-up::before {
+  content: "\f028";
+}
+.ui-icon-qrcode::before {
+  content: "\f029";
+}
+.ui-icon-barcode::before {
+  content: "\f02a";
+}
+.ui-icon-tag::before {
+  content: "\f02b";
+}
+.ui-icon-tags::before {
+  content: "\f02c";
+}
+.ui-icon-book::before {
+  content: "\f02d";
+}
+.ui-icon-bookmark::before {
+  content: "\f02e";
+}
+.ui-icon-print::before {
+  content: "\f02f";
+}
+.ui-icon-camera::before {
+  content: "\f030";
+}
+.ui-icon-font::before {
+  content: "\f031";
+}
+.ui-icon-bold::before {
+  content: "\f032";
+}
+.ui-icon-italic::before {
+  content: "\f033";
+}
+.ui-icon-text-height::before {
+  content: "\f034";
+}
+.ui-icon-text-width::before {
+  content: "\f035";
+}
+.ui-icon-align-left::before {
+  content: "\f036";
+}
+.ui-icon-align-center::before {
+  content: "\f037";
+}
+.ui-icon-align-right::before {
+  content: "\f038";
+}
+.ui-icon-align-justify::before {
+  content: "\f039";
+}
+.ui-icon-list::before {
+  content: "\f03a";
+}
+.ui-icon-dedent::before,
+.ui-icon-outdent::before {
+  content: "\f03b";
+}
+.ui-icon-indent::before {
+  content: "\f03c";
+}
+.ui-icon-video-camera::before {
+  content: "\f03d";
+}
+.ui-icon-photo::before,
+.ui-icon-image::before,
+.ui-icon-picture-o::before {
+  content: "\f03e";
+}
+.ui-icon-pencil::before {
+  content: "\f040";
+}
+.ui-icon-map-marker::before {
+  content: "\f041";
+}
+.ui-icon-adjust::before {
+  content: "\f042";
+}
+.ui-icon-tint::before {
+  content: "\f043";
+}
+.ui-icon-edit::before,
+.ui-icon-pencil-square-o::before {
+  content: "\f044";
+}
+.ui-icon-share-square-o::before {
+  content: "\f045";
+}
+.ui-icon-check-square-o::before,
+.ui-icon-checkbox-on::before,
+.ui-checkbox-on::before {
+  content: "\f046";
+}
+.ui-icon-arrows::before {
+  content: "\f047";
+}
+.ui-icon-step-backward::before {
+  content: "\f048";
+}
+.ui-icon-fast-backward::before {
+  content: "\f049";
+}
+.ui-icon-backward::before {
+  content: "\f04a";
+}
+.ui-icon-play::before {
+  content: "\f04b";
+}
+.ui-icon-pause::before {
+  content: "\f04c";
+}
+.ui-icon-stop::before {
+  content: "\f04d";
+}
+.ui-icon-forward::before {
+  content: "\f04e";
+}
+.ui-icon-fast-forward::before {
+  content: "\f050";
+}
+.ui-icon-step-forward::before {
+  content: "\f051";
+}
+.ui-icon-eject::before {
+  content: "\f052";
+}
+.ui-icon-chevron-left::before {
+  content: "\f053";
+}
+.ui-icon-chevron-right::before {
+  content: "\f054";
+}
+.ui-icon-plus-circle::before {
+  content: "\f055";
+}
+.ui-icon-minus-circle::before {
+  content: "\f056";
+}
+.ui-icon-times-circle::before {
+  content: "\f057";
+}
+.ui-icon-check-circle::before {
+  content: "\f058";
+}
+.ui-icon-question-circle::before {
+  content: "\f059";
+}
+.ui-icon-info-circle::before {
+  content: "\f05a";
+}
+.ui-icon-crosshairs::before {
+  content: "\f05b";
+}
+.ui-icon-times-circle-o::before {
+  content: "\f05c";
+}
+.ui-icon-check-circle-o::before,
+.ui-icon-radio-off::before,
+.ui-radio-on::before {
+  content: "\f05d";
+}
+.ui-icon-ban::before {
+  content: "\f05e";
+}
+.ui-icon-arrow-left::before {
+  content: "\f060";
+}
+.ui-icon-arrow-right::before {
+  content: "\f061";
+}
+.ui-icon-arrow-up::before {
+  content: "\f062";
+}
+.ui-icon-arrow-down::before {
+  content: "\f063";
+}
+.ui-icon-mail-forward::before,
+.ui-icon-share::before {
+  content: "\f064";
+}
+.ui-icon-expand::before {
+  content: "\f065";
+}
+.ui-icon-compress::before {
+  content: "\f066";
+}
+.ui-icon-plus::before {
+  content: "\f067";
+}
+.ui-icon-minus::before {
+  content: "\f068";
+}
+.ui-icon-asterisk::before {
+  content: "\f069";
+}
+.ui-icon-exclamation-circle::before {
+  content: "\f06a";
+}
+.ui-icon-gift::before {
+  content: "\f06b";
+}
+.ui-icon-leaf::before {
+  content: "\f06c";
+}
+.ui-icon-fire::before {
+  content: "\f06d";
+}
+.ui-icon-eye::before {
+  content: "\f06e";
+}
+.ui-icon-eye-slash::before {
+  content: "\f070";
+}
+.ui-icon-exclamation-triangle::before {
+  content: "\f071";
+}
+.ui-icon-plane::before {
+  content: "\f072";
+}
+.ui-icon-calendar::before {
+  content: "\f073";
+}
+.ui-icon-random::before {
+  content: "\f074";
+}
+.ui-icon-comment::before {
+  content: "\f075";
+}
+.ui-icon-magnet::before {
+  content: "\f076";
+}
+.ui-icon-chevron-up::before {
+  content: "\f077";
+}
+.ui-icon-chevron-down::before {
+  content: "\f078";
+}
+.ui-icon-retweet::before {
+  content: "\f079";
+}
+.ui-icon-shopping-cart::before {
+  content: "\f07a";
+}
+.ui-icon-folder::before {
+  content: "\f07b";
+}
+.ui-icon-folder-open::before {
+  content: "\f07c";
+}
+.ui-icon-arrows-v::before {
+  content: "\f07d";
+}
+.ui-icon-arrows-h::before {
+  content: "\f07e";
+}
+.ui-icon-bar-chart-o::before {
+  content: "\f080";
+}
+.ui-icon-twitter-square::before {
+  content: "\f081";
+}
+.ui-icon-facebook-square::before {
+  content: "\f082";
+}
+.ui-icon-camera-retro::before {
+  content: "\f083";
+}
+.ui-icon-key::before {
+  content: "\f084";
+}
+.ui-icon-gears::before,
+.ui-icon-cogs::before {
+  content: "\f085";
+}
+.ui-icon-comments::before {
+  content: "\f086";
+}
+.ui-icon-thumbs-o-up::before {
+  content: "\f087";
+}
+.ui-icon-thumbs-o-down::before {
+  content: "\f088";
+}
+.ui-icon-star-half::before {
+  content: "\f089";
+}
+.ui-icon-heart-o::before {
+  content: "\f08a";
+}
+.ui-icon-sign-out::before {
+  content: "\f08b";
+}
+.ui-icon-linkedin-square::before {
+  content: "\f08c";
+}
+.ui-icon-thumb-tack::before {
+  content: "\f08d";
+}
+.ui-icon-external-link::before {
+  content: "\f08e";
+}
+.ui-icon-sign-in::before {
+  content: "\f090";
+}
+.ui-icon-trophy::before {
+  content: "\f091";
+}
+.ui-icon-github-square::before {
+  content: "\f092";
+}
+.ui-icon-upload::before {
+  content: "\f093";
+}
+.ui-icon-lemon-o::before {
+  content: "\f094";
+}
+.ui-icon-phone::before {
+  content: "\f095";
+}
+.ui-icon-square-o::before,
+.ui-icon-checkbox-off::before,
+.ui-checkbox-off::before {
+  content: "\f096";
+}
+.ui-icon-bookmark-o::before {
+  content: "\f097";
+}
+.ui-icon-phone-square::before {
+  content: "\f098";
+}
+.ui-icon-twitter::before {
+  content: "\f099";
+}
+.ui-icon-facebook::before {
+  content: "\f09a";
+}
+.ui-icon-github::before {
+  content: "\f09b";
+}
+.ui-icon-unlock::before {
+  content: "\f09c";
+}
+.ui-icon-credit-card::before {
+  content: "\f09d";
+}
+.ui-icon-rss::before {
+  content: "\f09e";
+}
+.ui-icon-hdd-o::before {
+  content: "\f0a0";
+}
+.ui-icon-bullhorn::before {
+  content: "\f0a1";
+}
+.ui-icon-bell::before {
+  content: "\f0f3";
+}
+.ui-icon-certificate::before {
+  content: "\f0a3";
+}
+.ui-icon-hand-o-right::before {
+  content: "\f0a4";
+}
+.ui-icon-hand-o-left::before {
+  content: "\f0a5";
+}
+.ui-icon-hand-o-up::before {
+  content: "\f0a6";
+}
+.ui-icon-hand-o-down::before {
+  content: "\f0a7";
+}
+.ui-icon-arrow-circle-left::before {
+  content: "\f0a8";
+}
+.ui-icon-arrow-circle-right::before {
+  content: "\f0a9";
+}
+.ui-icon-arrow-circle-up::before {
+  content: "\f0aa";
+}
+.ui-icon-arrow-circle-down::before {
+  content: "\f0ab";
+}
+.ui-icon-globe::before {
+  content: "\f0ac";
+}
+.ui-icon-wrench::before {
+  content: "\f0ad";
+}
+.ui-icon-tasks::before {
+  content: "\f0ae";
+}
+.ui-icon-filter::before {
+  content: "\f0b0";
+}
+.ui-icon-briefcase::before {
+  content: "\f0b1";
+}
+.ui-icon-arrows-alt::before {
+  content: "\f0b2";
+}
+.ui-icon-group::before,
+.ui-icon-users::before {
+  content: "\f0c0";
+}
+.ui-icon-chain::before,
+.ui-icon-link::before {
+  content: "\f0c1";
+}
+.ui-icon-cloud::before {
+  content: "\f0c2";
+}
+.ui-icon-flask::before {
+  content: "\f0c3";
+}
+.ui-icon-cut::before,
+.ui-icon-scissors::before {
+  content: "\f0c4";
+}
+.ui-icon-copy::before,
+.ui-icon-files-o::before {
+  content: "\f0c5";
+}
+.ui-icon-paperclip::before {
+  content: "\f0c6";
+}
+.ui-icon-save::before,
+.ui-icon-floppy-o::before {
+  content: "\f0c7";
+}
+.ui-icon-square::before {
+  content: "\f0c8";
+}
+.ui-icon-navicon::before,
+.ui-icon-reorder::before,
+.ui-icon-bars::before {
+  content: "\f0c9";
+}
+.ui-icon-list-ul::before {
+  content: "\f0ca";
+}
+.ui-icon-list-ol::before {
+  content: "\f0cb";
+}
+.ui-icon-strikethrough::before {
+  content: "\f0cc";
+}
+.ui-icon-underline::before {
+  content: "\f0cd";
+}
+.ui-icon-table::before {
+  content: "\f0ce";
+}
+.ui-icon-magic::before {
+  content: "\f0d0";
+}
+.ui-icon-truck::before {
+  content: "\f0d1";
+}
+.ui-icon-pinterest::before {
+  content: "\f0d2";
+}
+.ui-icon-pinterest-square::before {
+  content: "\f0d3";
+}
+.ui-icon-google-plus-square::before {
+  content: "\f0d4";
+}
+.ui-icon-google-plus::before {
+  content: "\f0d5";
+}
+.ui-icon-money::before {
+  content: "\f0d6";
+}
+.ui-icon-caret-down::before,
+.ui-icon-carat-d::before {
+  content: "\f0d7";
+}
+.ui-icon-caret-up::before,
+hmtl .ui-icon-carat-u::before {
+  content: "\f0d8";
+}
+.ui-icon-caret-left::before,
+.ui-icon-carat-l::before {
+  content: "\f0d9";
+}
+.ui-icon-caret-right::before,
+.ui-icon-carat-r::before {
+  content: "\f0da";
+}
+.ui-icon-columns::before {
+  content: "\f0db";
+}
+.ui-icon-unsorted::before,
+.ui-icon-sort::before {
+  content: "\f0dc";
+}
+.ui-icon-sort-down::before,
+.ui-icon-sort-desc::before {
+  content: "\f0dd";
+}
+.ui-icon-sort-up::before,
+.ui-icon-sort-asc::before {
+  content: "\f0de";
+}
+.ui-icon-envelope::before {
+  content: "\f0e0";
+}
+.ui-icon-linkedin::before {
+  content: "\f0e1";
+}
+.ui-icon-rotate-left::before,
+.ui-icon-undo::before {
+  content: "\f0e2";
+}
+.ui-icon-legal::before,
+.ui-icon-gavel::before {
+  content: "\f0e3";
+}
+.ui-icon-dashboard::before,
+.ui-icon-tachometer::before {
+  content: "\f0e4";
+}
+.ui-icon-comment-o::before {
+  content: "\f0e5";
+}
+.ui-icon-comments-o::before {
+  content: "\f0e6";
+}
+.ui-icon-flash::before,
+.ui-icon-bolt::before {
+  content: "\f0e7";
+}
+.ui-icon-sitemap::before {
+  content: "\f0e8";
+}
+.ui-icon-umbrella::before {
+  content: "\f0e9";
+}
+.ui-icon-paste::before,
+.ui-icon-clipboard::before {
+  content: "\f0ea";
+}
+.ui-icon-lightbulb-o::before {
+  content: "\f0eb";
+}
+.ui-icon-exchange::before {
+  content: "\f0ec";
+}
+.ui-icon-cloud-download::before {
+  content: "\f0ed";
+}
+.ui-icon-cloud-upload::before {
+  content: "\f0ee";
+}
+.ui-icon-user-md::before {
+  content: "\f0f0";
+}
+.ui-icon-stethoscope::before {
+  content: "\f0f1";
+}
+.ui-icon-suitcase::before {
+  content: "\f0f2";
+}
+.ui-icon-bell-o::before {
+  content: "\f0a2";
+}
+.ui-icon-coffee::before {
+  content: "\f0f4";
+}
+.ui-icon-cutlery::before {
+  content: "\f0f5";
+}
+.ui-icon-file-text-o::before {
+  content: "\f0f6";
+}
+.ui-icon-building-o::before {
+  content: "\f0f7";
+}
+.ui-icon-hospital-o::before {
+  content: "\f0f8";
+}
+.ui-icon-ambulance::before {
+  content: "\f0f9";
+}
+.ui-icon-medkit::before {
+  content: "\f0fa";
+}
+.ui-icon-fighter-jet::before {
+  content: "\f0fb";
+}
+.ui-icon-beer::before {
+  content: "\f0fc";
+}
+.ui-icon-h-square::before {
+  content: "\f0fd";
+}
+.ui-icon-plus-square::before {
+  content: "\f0fe";
+}
+.ui-icon-angle-double-left::before {
+  content: "\f100";
+}
+.ui-icon-angle-double-right::before {
+  content: "\f101";
+}
+.ui-icon-angle-double-up::before {
+  content: "\f102";
+}
+.ui-icon-angle-double-down::before {
+  content: "\f103";
+}
+.ui-icon-angle-left::before {
+  content: "\f104";
+}
+.ui-icon-angle-right::before {
+  content: "\f105";
+}
+.ui-icon-angle-up::before {
+  content: "\f106";
+}
+.ui-icon-angle-down::before {
+  content: "\f107";
+}
+.ui-icon-desktop::before {
+  content: "\f108";
+}
+.ui-icon-laptop::before {
+  content: "\f109";
+}
+.ui-icon-tablet::before {
+  content: "\f10a";
+}
+.ui-icon-mobile-phone::before,
+.ui-icon-mobile::before {
+  content: "\f10b";
+}
+.ui-icon-circle-o::before,
+.ui-radio-off::before {
+  content: "\f10c";
+}
+.ui-icon-quote-left::before {
+  content: "\f10d";
+}
+.ui-icon-quote-right::before {
+  content: "\f10e";
+}
+.ui-icon-circle::before {
+  content: "\f111";
+}
+.ui-icon-mail-reply::before,
+.ui-icon-reply::before {
+  content: "\f112";
+}
+.ui-icon-github-alt::before {
+  content: "\f113";
+}
+.ui-icon-folder-o::before {
+  content: "\f114";
+}
+.ui-icon-folder-open-o::before {
+  content: "\f115";
+}
+.ui-icon-smile-o::before {
+  content: "\f118";
+}
+.ui-icon-frown-o::before {
+  content: "\f119";
+}
+.ui-icon-meh-o::before {
+  content: "\f11a";
+}
+.ui-icon-gamepad::before {
+  content: "\f11b";
+}
+.ui-icon-keyboard-o::before {
+  content: "\f11c";
+}
+.ui-icon-flag-o::before {
+  content: "\f11d";
+}
+.ui-icon-flag-checkered::before {
+  content: "\f11e";
+}
+.ui-icon-terminal::before {
+  content: "\f120";
+}
+.ui-icon-code::before {
+  content: "\f121";
+}
+.ui-icon-mail-reply-all::before,
+.ui-icon-reply-all::before {
+  content: "\f122";
+}
+.ui-icon-star-half-empty::before,
+.ui-icon-star-half-full::before,
+.ui-icon-star-half-o::before {
+  content: "\f123";
+}
+.ui-icon-location-arrow::before {
+  content: "\f124";
+}
+.ui-icon-crop::before {
+  content: "\f125";
+}
+.ui-icon-code-fork::before {
+  content: "\f126";
+}
+.ui-icon-unlink::before,
+.ui-icon-chain-broken::before {
+  content: "\f127";
+}
+.ui-icon-question::before {
+  content: "\f128";
+}
+.ui-icon-info::before {
+  content: "\f129";
+}
+.ui-icon-exclamation::before {
+  content: "\f12a";
+}
+.ui-icon-superscript::before {
+  content: "\f12b";
+}
+.ui-icon-subscript::before {
+  content: "\f12c";
+}
+.ui-icon-eraser::before {
+  content: "\f12d";
+}
+.ui-icon-puzzle-piece::before {
+  content: "\f12e";
+}
+.ui-icon-microphone::before {
+  content: "\f130";
+}
+.ui-icon-microphone-slash::before {
+  content: "\f131";
+}
+.ui-icon-shield::before {
+  content: "\f132";
+}
+.ui-icon-calendar-o::before {
+  content: "\f133";
+}
+.ui-icon-fire-extinguisher::before {
+  content: "\f134";
+}
+.ui-icon-rocket::before {
+  content: "\f135";
+}
+.ui-icon-maxcdn::before {
+  content: "\f136";
+}
+.ui-icon-chevron-circle-left::before {
+  content: "\f137";
+}
+.ui-icon-chevron-circle-right::before {
+  content: "\f138";
+}
+.ui-icon-chevron-circle-up::before {
+  content: "\f139";
+}
+.ui-icon-chevron-circle-down::before {
+  content: "\f13a";
+}
+.ui-icon-html5::before {
+  content: "\f13b";
+}
+.ui-icon-css3::before {
+  content: "\f13c";
+}
+.ui-icon-anchor::before {
+  content: "\f13d";
+}
+.ui-icon-unlock-alt::before {
+  content: "\f13e";
+}
+.ui-icon-bullseye::before {
+  content: "\f140";
+}
+.ui-icon-ellipsis-h::before {
+  content: "\f141";
+}
+.ui-icon-ellipsis-v::before {
+  content: "\f142";
+}
+.ui-icon-rss-square::before {
+  content: "\f143";
+}
+.ui-icon-play-circle::before {
+  content: "\f144";
+}
+.ui-icon-ticket::before {
+  content: "\f145";
+}
+.ui-icon-minus-square::before {
+  content: "\f146";
+}
+.ui-icon-minus-square-o::before {
+  content: "\f147";
+}
+.ui-icon-level-up::before {
+  content: "\f148";
+}
+.ui-icon-level-down::before {
+  content: "\f149";
+}
+.ui-icon-check-square::before {
+  content: "\f14a";
+}
+.ui-icon-pencil-square::before {
+  content: "\f14b";
+}
+.ui-icon-external-link-square::before {
+  content: "\f14c";
+}
+.ui-icon-share-square::before {
+  content: "\f14d";
+}
+.ui-icon-compass::before {
+  content: "\f14e";
+}
+.ui-icon-toggle-down::before,
+.ui-icon-caret-square-o-down::before {
+  content: "\f150";
+}
+.ui-icon-toggle-up::before,
+.ui-icon-caret-square-o-up::before {
+  content: "\f151";
+}
+.ui-icon-toggle-right::before,
+.ui-icon-caret-square-o-right::before {
+  content: "\f152";
+}
+.ui-icon-euro::before,
+.ui-icon-eur::before {
+  content: "\f153";
+}
+.ui-icon-gbp::before {
+  content: "\f154";
+}
+.ui-icon-dollar::before,
+.ui-icon-usd::before {
+  content: "\f155";
+}
+.ui-icon-rupee::before,
+.ui-icon-inr::before {
+  content: "\f156";
+}
+.ui-icon-cny::before,
+.ui-icon-rmb::before,
+.ui-icon-yen::before,
+.ui-icon-jpy::before {
+  content: "\f157";
+}
+.ui-icon-ruble::before,
+.ui-icon-rouble::before,
+.ui-icon-rub::before {
+  content: "\f158";
+}
+.ui-icon-won::before,
+.ui-icon-krw::before {
+  content: "\f159";
+}
+.ui-icon-bitcoin::before,
+.ui-icon-btc::before {
+  content: "\f15a";
+}
+.ui-icon-file::before {
+  content: "\f15b";
+}
+.ui-icon-file-text::before {
+  content: "\f15c";
+}
+.ui-icon-sort-alpha-asc::before {
+  content: "\f15d";
+}
+.ui-icon-sort-alpha-desc::before {
+  content: "\f15e";
+}
+.ui-icon-sort-amount-asc::before {
+  content: "\f160";
+}
+.ui-icon-sort-amount-desc::before {
+  content: "\f161";
+}
+.ui-icon-sort-numeric-asc::before {
+  content: "\f162";
+}
+.ui-icon-sort-numeric-desc::before {
+  content: "\f163";
+}
+.ui-icon-thumbs-up::before {
+  content: "\f164";
+}
+.ui-icon-thumbs-down::before {
+  content: "\f165";
+}
+.ui-icon-youtube-square::before {
+  content: "\f166";
+}
+.ui-icon-youtube::before {
+  content: "\f167";
+}
+.ui-icon-xing::before {
+  content: "\f168";
+}
+.ui-icon-xing-square::before {
+  content: "\f169";
+}
+.ui-icon-youtube-play::before {
+  content: "\f16a";
+}
+.ui-icon-dropbox::before {
+  content: "\f16b";
+}
+.ui-icon-stack-overflow::before {
+  content: "\f16c";
+}
+.ui-icon-instagram::before {
+  content: "\f16d";
+}
+.ui-icon-flickr::before {
+  content: "\f16e";
+}
+.ui-icon-adn::before {
+  content: "\f170";
+}
+.ui-icon-bitbucket::before {
+  content: "\f171";
+}
+.ui-icon-bitbucket-square::before {
+  content: "\f172";
+}
+.ui-icon-tumblr::before {
+  content: "\f173";
+}
+.ui-icon-tumblr-square::before {
+  content: "\f174";
+}
+.ui-icon-long-arrow-down::before {
+  content: "\f175";
+}
+.ui-icon-long-arrow-up::before {
+  content: "\f176";
+}
+.ui-icon-long-arrow-left::before {
+  content: "\f177";
+}
+.ui-icon-long-arrow-right::before {
+  content: "\f178";
+}
+.ui-icon-apple::before {
+  content: "\f179";
+}
+.ui-icon-windows::before {
+  content: "\f17a";
+}
+.ui-icon-android::before {
+  content: "\f17b";
+}
+.ui-icon-linux::before {
+  content: "\f17c";
+}
+.ui-icon-dribbble::before {
+  content: "\f17d";
+}
+.ui-icon-skype::before {
+  content: "\f17e";
+}
+.ui-icon-foursquare::before {
+  content: "\f180";
+}
+.ui-icon-trello::before {
+  content: "\f181";
+}
+.ui-icon-female::before {
+  content: "\f182";
+}
+.ui-icon-male::before {
+  content: "\f183";
+}
+.ui-icon-gittip::before {
+  content: "\f184";
+}
+.ui-icon-sun-o::before {
+  content: "\f185";
+}
+.ui-icon-moon-o::before {
+  content: "\f186";
+}
+.ui-icon-archive::before {
+  content: "\f187";
+}
+.ui-icon-bug::before {
+  content: "\f188";
+}
+.ui-icon-vk::before {
+  content: "\f189";
+}
+.ui-icon-weibo::before {
+  content: "\f18a";
+}
+.ui-icon-renren::before {
+  content: "\f18b";
+}
+.ui-icon-pagelines::before {
+  content: "\f18c";
+}
+.ui-icon-stack-exchange::before {
+  content: "\f18d";
+}
+.ui-icon-arrow-circle-o-right::before {
+  content: "\f18e";
+}
+.ui-icon-arrow-circle-o-left::before {
+  content: "\f190";
+}
+.ui-icon-toggle-left::before,
+.ui-icon-caret-square-o-left::before {
+  content: "\f191";
+}
+.ui-icon-dot-circle-o::before {
+  content: "\f192";
+}
+.ui-icon-wheelchair::before {
+  content: "\f193";
+}
+.ui-icon-vimeo-square::before {
+  content: "\f194";
+}
+.ui-icon-turkish-lira::before,
+.ui-icon-try::before {
+  content: "\f195";
+}
+.ui-icon-plus-square-o::before {
+  content: "\f196";
+}
+.ui-icon-space-shuttle::before {
+  content: "\f197";
+}
+.ui-icon-slack::before {
+  content: "\f198";
+}
+.ui-icon-envelope-square::before {
+  content: "\f199";
+}
+.ui-icon-wordpress::before {
+  content: "\f19a";
+}
+.ui-icon-openid::before {
+  content: "\f19b";
+}
+.ui-icon-institution::before,
+.ui-icon-bank::before,
+.ui-icon-university::before {
+  content: "\f19c";
+}
+.ui-icon-mortar-board::before,
+.ui-icon-graduation-cap::before {
+  content: "\f19d";
+}
+.ui-icon-yahoo::before {
+  content: "\f19e";
+}
+.ui-icon-google::before {
+  content: "\f1a0";
+}
+.ui-icon-reddit::before {
+  content: "\f1a1";
+}
+.ui-icon-reddit-square::before {
+  content: "\f1a2";
+}
+.ui-icon-stumbleupon-circle::before {
+  content: "\f1a3";
+}
+.ui-icon-stumbleupon::before {
+  content: "\f1a4";
+}
+.ui-icon-delicious::before {
+  content: "\f1a5";
+}
+.ui-icon-digg::before {
+  content: "\f1a6";
+}
+.ui-icon-pied-piper-square::before,
+.ui-icon-pied-piper::before {
+  content: "\f1a7";
+}
+.ui-icon-pied-piper-alt::before {
+  content: "\f1a8";
+}
+.ui-icon-drupal::before {
+  content: "\f1a9";
+}
+.ui-icon-joomla::before {
+  content: "\f1aa";
+}
+.ui-icon-language::before {
+  content: "\f1ab";
+}
+.ui-icon-fax::before {
+  content: "\f1ac";
+}
+.ui-icon-building::before {
+  content: "\f1ad";
+}
+.ui-icon-child::before {
+  content: "\f1ae";
+}
+.ui-icon-paw::before {
+  content: "\f1b0";
+}
+.ui-icon-spoon::before {
+  content: "\f1b1";
+}
+.ui-icon-cube::before {
+  content: "\f1b2";
+}
+.ui-icon-cubes::before {
+  content: "\f1b3";
+}
+.ui-icon-behance::before {
+  content: "\f1b4";
+}
+.ui-icon-behance-square::before {
+  content: "\f1b5";
+}
+.ui-icon-steam::before {
+  content: "\f1b6";
+}
+.ui-icon-steam-square::before {
+  content: "\f1b7";
+}
+.ui-icon-recycle::before {
+  content: "\f1b8";
+}
+.ui-icon-automobile::before,
+.ui-icon-car::before {
+  content: "\f1b9";
+}
+.ui-icon-cab::before,
+.ui-icon-taxi::before {
+  content: "\f1ba";
+}
+.ui-icon-tree::before {
+  content: "\f1bb";
+}
+.ui-icon-spotify::before {
+  content: "\f1bc";
+}
+.ui-icon-deviantart::before {
+  content: "\f1bd";
+}
+.ui-icon-soundcloud::before {
+  content: "\f1be";
+}
+.ui-icon-database::before {
+  content: "\f1c0";
+}
+.ui-icon-file-pdf-o::before {
+  content: "\f1c1";
+}
+.ui-icon-file-word-o::before {
+  content: "\f1c2";
+}
+.ui-icon-file-excel-o::before {
+  content: "\f1c3";
+}
+.ui-icon-file-powerpoint-o::before {
+  content: "\f1c4";
+}
+.ui-icon-file-photo-o::before,
+.ui-icon-file-picture-o::before,
+.ui-icon-file-image-o::before {
+  content: "\f1c5";
+}
+.ui-icon-file-zip-o::before,
+.ui-icon-file-archive-o::before {
+  content: "\f1c6";
+}
+.ui-icon-file-sound-o::before,
+.ui-icon-file-audio-o::before {
+  content: "\f1c7";
+}
+.ui-icon-file-movie-o::before,
+.ui-icon-file-video-o::before {
+  content: "\f1c8";
+}
+.ui-icon-file-code-o::before {
+  content: "\f1c9";
+}
+.ui-icon-vine::before {
+  content: "\f1ca";
+}
+.ui-icon-codepen::before {
+  content: "\f1cb";
+}
+.ui-icon-jsfiddle::before {
+  content: "\f1cc";
+}
+.ui-icon-life-bouy::before,
+.ui-icon-life-saver::before,
+.ui-icon-support::before,
+.ui-icon-life-ring::before {
+  content: "\f1cd";
+}
+.ui-icon-circle-o-notch::before {
+  content: "\f1ce";
+}
+.ui-icon-ra::before,
+.ui-icon-rebel::before {
+  content: "\f1d0";
+}
+.ui-icon-ge::before,
+.ui-icon-empire::before {
+  content: "\f1d1";
+}
+.ui-icon-git-square::before {
+  content: "\f1d2";
+}
+.ui-icon-git::before {
+  content: "\f1d3";
+}
+.ui-icon-hacker-news::before {
+  content: "\f1d4";
+}
+.ui-icon-tencent-weibo::before {
+  content: "\f1d5";
+}
+.ui-icon-qq::before {
+  content: "\f1d6";
+}
+.ui-icon-wechat::before,
+.ui-icon-weixin::before {
+  content: "\f1d7";
+}
+.ui-icon-send::before,
+.ui-icon-paper-plane::before {
+  content: "\f1d8";
+}
+.ui-icon-send-o::before,
+.ui-icon-paper-plane-o::before {
+  content: "\f1d9";
+}
+.ui-icon-history::before {
+  content: "\f1da";
+}
+.ui-icon-circle-thin::before {
+  content: "\f1db";
+}
+.ui-icon-header::before {
+  content: "\f1dc";
+}
+.ui-icon-paragraph::before {
+  content: "\f1dd";
+}
+.ui-icon-sliders::before {
+  content: "\f1de";
+}
+.ui-icon-share-alt::before {
+  content: "\f1e0";
+}
+.ui-icon-share-alt-square::before {
+  content: "\f1e1";
+}
+.ui-icon-bomb::before {
+  content: "\f1e2";
+}
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml
similarity index 92%
rename from bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.xml
rename to bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml
index 1cd5d22d82..bb30fc30cc 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_latest_css.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_nojqm_css.xml
@@ -69,9 +69,15 @@
               <none/>
             </value>
         </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value>
+              <none/>
+            </value>
+        </item>
         <item>
             <key> <string>default_reference</string> </key>
-            <value> <string>gadget_erp5_latest.css</string> </value>
+            <value> <string>gadget_erp5_nojqm.css</string> </value>
         </item>
         <item>
             <key> <string>description</string> </key>
@@ -81,7 +87,7 @@
         </item>
         <item>
             <key> <string>id</string> </key>
-            <value> <string>rjs_gadget_erp5_latest_css</string> </value>
+            <value> <string>rjs_gadget_erp5_nojqm_css</string> </value>
         </item>
         <item>
             <key> <string>language</string> </key>
@@ -163,7 +169,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -185,8 +191,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1411390496.99</float>
-                        <string>GMT</string>
+                        <float>1469697744.71</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -216,7 +222,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -230,7 +236,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>937.48419.62008.14711</string> </value>
+                <value> <string>952.56107.51025.27357</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,8 +254,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1411390338.58</float>
-                        <string>GMT</string>
+                        <float>1469780228.94</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
@@ -275,7 +281,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -305,8 +311,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1411390316.76</float>
-                        <string>GMT</string>
+                        <float>1469697693.07</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.html
deleted file mode 100644
index 15c8c0ff56..0000000000
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_html.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!DOCTYPE html>
-<html>
-  <head>
-    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no" />
-    <title>ERP5 Panel Domain Tree</title>
-
-    <!-- renderjs -->
-    <script src="rsvp.js" type="text/javascript"></script>
-    <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js" type="text/javascript"></script>
-    <script src="gadget_global.js" type="text/javascript"></script>
-
-    <!-- panel -->
-    <script id="panel-category-list-header" type="text/x-handlbars-template">
-      <div data-role="header" class="ui-header ui-bar-inherit" role="banner">
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
-          <div class="ui-controlgroup-controls"></div>
-        </div>
-        <h1 class="ui-title" data-i18n="{{i18n}}">Categories</h1>
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-          <div class="ui-controlgroup-controls">
-            <form action="#">
-              <input type="submit" value="[value]{{close_i18n}}" data-icon="delete" data-iconpos="notext" />
-            </form>
-          </div>
-        </div>
-      </div>
-      <div class="ui-content">
-        <form class="update_search_form" action="#">
-          <div class="ui-navbar ui-subheader ui-grid-container ui-body-inherit" role="navigation">
-  		      <ul class="ui-grid-a">
-              <li class="ui-block-a">
-                <button name='clear_category_list' data-i18n="{{clear_i18n}}" type='submit' class='responsive ui-btn ui-bar-inherit ui-btn-inherit ui-btn-icon-left ui-icon-trash-o ui-btn ui-first-child'>Delete</button>
-              </li>
-              <li class="ui-block-b">
-                <button name='update_category_list' data-i18n="{{update_i18n}}" type='submit' class='responsive ui-btn ui-bar-inherit ui-btn-inherit ui-btn-icon-left ui-icon-share-square-o ui-btn ui-last-child'>Update</button>
-              </li>
-            </ul>
-  	      </div>
-        </form>
-        {{#if tag_list}}
-          <div class="ui-controlgroup">
-            <div class="ui-controlgroup-controls">
-              {{#each taglist}}
-                <form class="update_search_from" action="#">
-                  <button type="submit" name='update_category_list' data-i18n={{type_i18n}}={{value_i18n}} class="{{@first}}: {{ui-first-child }} {{@last}}: {{ui-last-child }} ui-btn ui-bar-inherit ui-btn-inherit ui-btn-icon-right ui-icon-delete">{{type_i18n}}={{value_i18n}}</button>
-                </form>
-              {{/each}}
-            </div>
-          </div>
-        {{/if}}
-      </div>
-    </script>
-    
-            <!--
-        {{#if tag_list}}
-          <div class="ui-controlgroup">
-            <div class="ui-controlgroup-controls">
-              {{#each taglist}}
-                <form class="update_search_from" action="#">
-                  <button type="submit" name='update_category_list' data-i18n={{type_i18n}}={{value_i18n}} class="{{@first}}: {{ui-first-child }} {{@last}}: {{ui-last-child }} ui-btn ui-bar-inherit ui-btn-inherit ui-btn-icon-right ui-icon-delete">{{type_i18n}}={{value_i18n}}</button>
-                </form>
-              {{/each}}
-            </div>
-          </div>
-        {{/if}}
-        {{#if tree}}
-          <ul class="ui-listview" data-enhanced="true">
-            {{> category-taglist-partial}}
-          </ul>
-        {{/if}}
-      </div>
-      -->
-    <!--
-    <script id="category-taglist-partial" type="text/x-handlebars-tempalte">
-        {{#each tree}}
-          {{#if tree}}
-            <li data-role="collapsible" data-enhanced="true" data-collapsed="true" data-collapsed-icon="plus" class="ui-li-has-checkbox ui-collapsible ui-collapsible-collapsed ui-li-static ui-body-inherit">
-              <h4 class="ui-collapsible-heading ui-collapsible-heading-collapsed ui-li-divider ui-li-has-icon">
-                <a class="ui-collapsible-heading-toggle ui-icon-plus ui-btn-icon-left ui-btn-inherit ui-link" href="#" data-i18n="[last]{{i18n}}">
-                  <span data-i18n="gen.hint" class="ui-collapsible-heading-status"></span>
-                </a>
-                <div class="ui-checkbox">
-                  <label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-notext ui-checkbox-on">{{search}}</label>
-                  <input type="checkbox" data-iconpos="notext" name="{{this.search}}" data-cacheval="false">
-                </div>
-              </h4>
-              <div class="ui-collapsible-content ui-collapsible-content-collapsed" aria-hidden="true">
-              <ul data-role="listview" class="ui-listview" data-enhanced="true">
-                {{> category-taglist-partial}} {{! Recursively render the partial }}
-              </ul>
-              </div>
-            </li>
-          {{else}}
-            {{#if multiple}}
-              <li class="ui-li-has-checkboxradio ui-li-static ui-body-inherit" data-i18n="[node]{{i18n}}">
-                {{i18n}}
-                <div class="ui-checkbox">
-                  <label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-notext ui-checkbox-on">&nbsp;</label>
-                  <input type="checkbox" data-iconpos="notext" name="{{search}}" data-cacheval="false">
-                </div>
-              </li>
-            {{else}}
-              <li class="ui-li-has-checkboxradio ui-li-static ui-body-inherit" data-i18n="[node]{{i18n}}">
-                {{i18n}}
-                <div class="ui-checkbox">
-                  <label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-notext ui-checkbox-on">&nbsp;</label>
-                  <input type="checkbox" data-iconpos="notext" name="{{search}}" data-cacheval="false">
-                </div>
-              </li>
-            {{/if}}
-          {{/if}}
-        {{/each}}
-    </script>
-    -->
-
-    <!-- custom script -->
-    <script src="gadget_erp5_panel_configuration.js" type="text/javascript"></script>
-
-  </head>
-  <body>
-
-  <div class="jqm-configuration-panel"></div>
-    
-  </body>
-</html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.js
deleted file mode 100644
index 0cdadff0d6..0000000000
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_configuration_js.js
+++ /dev/null
@@ -1,201 +0,0 @@
-/*jslint nomen: true, indent: 2, maxerr: 3 */
-/*global window, rJS, Handlebars, jQuery, RSVP, loopEventListener */
-(function (window, rJS, Handlebars, $, RSVP, loopEventListener) {
-  "use strict";
-
-  /////////////////////////////////////////////////////////////////
-  // TEMPLATE API
-  /////////////////////////////////////////////////////////////////
-  
-  // panel_category_list_header
-  // {
-  //  "close_i18n":       [SET],
-  //  "i18n":             [title],
-  //  "clear_i18n":       [SET],
-  //  "update_i18n":      [SET]
-  //  "tag_list":         [{
-  //    "type_i18n":      [type of filter|create|...],
-  //    "value_i18n":     [value to create or filter for, eg. region:foo]
-  //  }]
-  
-  // panel_category_list_partial
-  // {
-  //    "i18n":           [category title],
-  //    "tree":  [{
-  //      "multiple":     [true to make checkbox],
-  //      "search":       [search term, like "filter:region=France"],
-  //      "i18n":"        [text to display]
-  //    }]
-  //  }]
-  // } 
-
-  /////////////////////////////////////////////////////////////////
-  // some methods
-  /////////////////////////////////////////////////////////////////
-
-  /////////////////////////////////////////////////////////////////
-  // Handlebars
-  /////////////////////////////////////////////////////////////////
-  var gadget_klass = rJS(window),
-    templater = gadget_klass.__template_element,
-    
-    // pre-compile 
-    panel_category_list_header = Handlebars.compile(
-      templater.getElementById("panel-category-list-header").innerHTML
-    )
-    /*
-    ,panel_category_list_partial = Handlebars.registerPartial(
-      "category-taglist-partial",
-      templater.getElementById("category-taglist-partial").innerHTML
-    )*/;
-  
-  gadget_klass
-    
-    /////////////////////////////////////////////////////////////////
-    // ready
-    /////////////////////////////////////////////////////////////////
-    .ready(function (my_gadget) {
-      my_gadget.property_dict = {};
-    })
-
-    .ready(function (my_gadget) {
-      return my_gadget.getElement()
-        .push(function (my_element) {
-          my_gadget.property_dict.element = my_element;
-          my_gadget.property_dict.defer = new RSVP.defer();
-          my_gadget.property_dict.panel_element =
-            my_element.querySelector(".jqm-configuration-panel");
-        });
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // acquired methods
-    /////////////////////////////////////////////////////////////////
-    .declareAcquiredMethod("translateHtml", "translateHtml")
-    .declareAcquiredMethod("changeLanguage", "changeLanguage")
-    .declareAcquiredMethod("getLanguageList", "getLanguageList")
-    .declareAcquiredMethod(
-      "whoWantToDisplayThisFrontPage",
-      "whoWantToDisplayThisFrontPage"
-    )
-
-    /////////////////////////////////////////////////////////////////
-    // declared methods
-    /////////////////////////////////////////////////////////////////
-    .declareMethod('setPanelHeader', function (my_option_dict) {
-      var gadget = this,
-        panel_element = gadget.property_dict.panel_element;
-
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.translateHtml(
-            panel_category_list_header(my_option_dict)
-          );
-        })
-        .push(function (my_panel_header) {
-          panel_element.innerHTML = my_panel_header;
-          $(panel_element).enhanceWithin();
-          return gadget;
-        })
-        .push(function () {
-          return gadget.property_dict.defer.resolve();
-        });
-    })
-    .declareMethod('setPanelContent', function (my_option_dict) {
-      /*
-        so Romain requested to have a gadget depending on use case of this
-        panel. In our case it should be  a domain tree and it should load a 
-        certain amount  or type of domains/categories
-        Alternatively we can load something else. Question is whether this
-        should be a domain tree per ... app or if every domaintree can be 
-        different depending on a parameter passed into intialization.
-        
-        Also, we must make clear that the content can be dumped to make space 
-        for new content!
-        
-        Do this.
-      */
-    })
-
-    .declareMethod('togglePanel', function () {
-      var gadget = this;
-
-      $(gadget.property_dict.panel_element).panel("toggle");
-    })
-
-    .declareMethod('render', function (my_option_dict) {
-      var gadget = this,
-        panel_element = gadget.property_dict.panel_element;
-
-      return new RSVP.Queue()
-        .push(function () {
-          $(panel_element).panel({
-            display: "overlay",
-            position: "right",
-            theme: "c"
-          });
-        });
-    })
-
-    /////////////////////////////////////////////////////////////////
-    // declared services
-    /////////////////////////////////////////////////////////////////
-    .declareService(function () {
-      var gadget = this,
-        $panel_element = $(gadget.property_dict.panel_element);
-
-      function formSubmit() {
-        return gadget.togglePanel();
-      }
-    
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.defer.promise;
-        })
-        .push(function () {
-          $panel_element.enhanceWithin();
-          var form_list = gadget.property_dict.element.querySelectorAll('form'),
-            event_list = [],
-            i,
-            len;
-
-          for (i = 0, len = form_list.length; i < len; i += 1) {
-            event_list[i] = loopEventListener(
-              form_list[i],
-              'submit',
-              false,
-              formSubmit
-            );
-          }
-          return RSVP.all(event_list);
-        })
-      
-    });
-
-}(window, rJS, Handlebars, jQuery, RSVP, loopEventListener));
-
-
-
-  /*
-  
-        .push(function (my_panel_category_list) {
-          return gadget.factoryPanelCategoryList({
-            "theme": "a",
-            "position": "left",
-            "animate_class": "overlay",
-            "close_i18n": "gen.close",
-            "i18n": "gen.categories",
-            "clear_i18n": "gen.clear",
-            "update_i18n": "gen.update",
-            "tag_list": tag_list,
-            "tree": my_panel_category_list
-          });
-        })
-        .push(function (my_panel_content) {
-          return gadget.translateHtml(my_panel_content);
-        })
-        .push(function (my_translated_panel_content) {
-          return gadget.setPanel("panel_search", my_translated_panel_content);
-        });
-  
-  */
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.html
index 5fd4096598..a6f1bdeb69 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.html
@@ -10,31 +10,30 @@
     <script src="renderjs.js" type="text/javascript"></script>
     <script src="handlebars.js" type="text/javascript"></script>
     <script src="gadget_global.js" type="text/javascript"></script>
-    <script src="jquery.js" type="text/javascript"></script>
-    <script src="jquerymobile.js" type="text/javascript"></script>
 
     <script id="panel-template-header" type="text/x-handlebars-template">
       <div data-role="header" class="ui-bar-inherit">
         <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
           <div class="ui-controlgroup-controls">
-            <form action="#" method="post">
-              <input type="submit" data-i18n="[value]Close" data-icon="delete" data-iconpos="notext" value="Close" />
-            </form>
+            <button data-i18n="Close" class="ui-btn ui-btn-icon-notext ui-icon-delete">Close</button>
           </div>
         </div>
+        <div class="panel_img">
         <img class="ui-title" alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="/>
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
+        </div>
+        <!--div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
           <div class="ui-controlgroup-controls">
             <a href="#" class="ui-btn ui-btn-icon-notext ui-icon-home" data-i18n="Home">Home</a>
           </div>
-        </div>
+        </div-->
       </div>
     </script>
 
     <script id="panel-template-body" type="text/x-handlebars-template">
       <div class="ui-content">
         <ul data-role="listview" class="ui-listview" data-enhanced="true">
-          <li class="ui-first-child"><a href="{{module_href}}" class="ui-btn ui-btn-icon-left ui-icon-puzzle-piece" data-i18n="Modules" accesskey="m">Modules</a></li>
+          <li class="ui-first-child"><a href="#" class="ui-btn ui-btn-icon-left ui-icon-home" data-i18n="Home">Home</a></li>
+          <li><a href="{{module_href}}" class="ui-btn ui-btn-icon-left ui-icon-puzzle-piece" data-i18n="Modules" accesskey="m">Modules</a></li>
           <li><a href="{{worklist_href}}" class="ui-btn ui-btn-icon-left ui-icon-clipboard" data-i18n="Worklists" accesskey="w">Worklists</a></li>
           <li><a href="{{history_href}}" class="ui-btn ui-btn-icon-left ui-icon-history" data-i18n="History" accesskey="h">History</a></li>
           <li><a href="{{search_href}}" class="ui-btn ui-btn-icon-left ui-icon-search" data-i18n="History" accesskey="s">Search</a></li>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.xml
index a400cf7d29..195150543a 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.1430.15199.54101</string> </value>
+                <value> <string>952.14137.61057.25617</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1466516646.25</float>
+                        <float>1467279122.77</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
index 150860c9ac..92a5f85d05 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.js
@@ -1,6 +1,6 @@
 /*jslint nomen: true, indent: 2, maxerr: 3 */
-/*global window, rJS, Handlebars, jQuery, RSVP, loopEventListener */
-(function (window, rJS, Handlebars, $, RSVP, loopEventListener) {
+/*global window, rJS, Handlebars, RSVP, loopEventListener */
+(function (window, rJS, Handlebars, RSVP, loopEventListener) {
   "use strict";
 
   /////////////////////////////////////////////////////////////////
@@ -37,28 +37,20 @@
       return g.getElement()
         .push(function (element) {
           g.props.element = element;
-          g.props.jelement = $(element.querySelector("div"));
           g.props.render_deferred = RSVP.defer();
         });
     })
 
-    .ready(function (g) {
-      g.props.jelement.panel({
-        display: "overlay",
-        position: "left",
-        theme: "d"
-        // animate: false
-      });
-    })
-
     /////////////////////////////////////////////////////////////////
     // declared methods
     /////////////////////////////////////////////////////////////////
     .declareMethod('toggle', function () {
-      this.props.jelement.panel("toggle");
+      this.props.element.classList.toggle('visible');
     })
     .declareMethod('close', function () {
-      this.props.jelement.panel("close");
+      if (this.props.element.classList.contains('visible')) {
+        this.props.element.classList.remove('visible');
+      }
     })
 
     .declareMethod('render', function () {
@@ -89,8 +81,7 @@
           return tmp;
         })
         .push(function (my_translated_or_plain_html) {
-          g.props.jelement.html(my_translated_or_plain_html);
-          g.props.jelement.trigger("create");
+          g.props.element.querySelector("div").innerHTML = my_translated_or_plain_html;
           g.props.render_deferred.resolve();
         });
     })
@@ -110,8 +101,8 @@
         })
         .push(function () {
           return loopEventListener(
-            panel_gadget.props.element.querySelector('form'),
-            'submit',
+            panel_gadget.props.element.querySelector('button'),
+            'click',
             false,
             formSubmit
           );
@@ -119,4 +110,4 @@
 
     });
 
-}(window, rJS, Handlebars, jQuery, RSVP, loopEventListener));
\ No newline at end of file
+}(window, rJS, Handlebars, RSVP, loopEventListener));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
index c4656d149e..da995c500c 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_panel_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.3414.45097.15701</string> </value>
+                <value> <string>952.1507.19232.15035</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447406686.19</float>
+                        <float>1466524414.0</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.js
index f9e4298540..6197e64d64 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.js
@@ -1,6 +1,6 @@
-/*global window, rJS, URI, jQuery */
+/*global window, rJS, URI */
 /*jslint nomen: true, indent: 2, maxerr: 3 */
-(function (window, rJS, URI, $) {
+(function (window, rJS, URI) {
   "use strict";
 
   var gadget_klass = rJS(window);
@@ -135,9 +135,6 @@
                 element.removeChild(element.firstChild);
               }
               element.appendChild(fragment);
-              if (options.hasOwnProperty("form_validation_error")) {
-                $(element).trigger("create");
-              }
             });
         });
       return queue;
@@ -149,4 +146,4 @@
       return this.render(options);
     });
 
-}(window, rJS, URI, jQuery));
\ No newline at end of file
+}(window, rJS, URI));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.xml
index e815a5dc79..6cd1b41d99 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_formpage_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.10268.42242.60416</string> </value>
+                <value> <string>952.10025.24641.8430</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1467046951.17</float>
+                        <float>1467032278.85</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.html
index e297681c03..43168fe00e 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.html
@@ -8,28 +8,16 @@
     <!-- renderjs -->
     <script src="rsvp.js" type="text/javascript"></script>
     <script src="renderjs.js" type="text/javascript"></script>
-    <script src="handlebars.js" type="text/javascript"></script>
-
 
     <!-- custom script -->
     <script src="gadget_global.js" type="text/javascript"></script>
     <script src="gadget_erp5_page_front.js" type="text/javascript"></script>
 
-    <!-- XXX must set theme here! -->
-    <script id="table-template" type="text/x-handlebars-template">
-      <div data-role="collapsible">
-        <h3 class="ui-bar-inherit" data-i18n="{{definition_title}}">{{definition_title}}</h3>
-        <ul data-role="listview" data-theme="c" class="document-listview">
-          <!--<li data-role="list-divider"><h1 data-i18n="{{definition_title}}">{{definition_title}}</h1></li>-->
-          {{#each documentlist}}
-            <li><a class="ui-body-inherit" data-i18n="{{title}}" href="{{link}}">{{title}}</a></li>
-          {{/each}}
-        </ul>
-      </div>
-    </script>
-
   </head>
   <body>
-    <section class="document_list"></section>
+      <div data-gadget-url="gadget_erp5_pt_form_list.html"
+              data-gadget-scope="form_list"
+              data-gadget-sandbox="public">
+      </div>
   </body>
 </html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.xml
index 6d4b8b1705..920c2973b2 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_html.xml
@@ -220,7 +220,7 @@
             </item>
             <item>
                 <key> <string>actor</string> </key>
-                <value> <string>super_sven</string> </value>
+                <value> <string>zope</string> </value>
             </item>
             <item>
                 <key> <string>comment</string> </key>
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>939.43978.9403.31744</string> </value>
+                <value> <string>952.43255.60632.47035</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,8 +252,8 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1419417426.65</float>
-                        <string>GMT</string>
+                        <float>1468942516.97</float>
+                        <string>UTC</string>
                       </tuple>
                     </state>
                   </object>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.js
index 7cbe2982d8..6808cc8cf8 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.js
@@ -1,17 +1,13 @@
-/*global window, rJS, RSVP, Handlebars */
+/*global window, rJS */
 /*jslint nomen: true, indent: 2, maxerr: 3 */
-(function (window, rJS, RSVP, Handlebars) {
+(function (window, rJS) {
   "use strict";
 
   /////////////////////////////////////////////////////////////////
   // Handlebars
   /////////////////////////////////////////////////////////////////
   // Precompile the templates while loading the first gadget instance
-  var gadget_klass = rJS(window),
-    source = gadget_klass.__template_element
-                         .getElementById("table-template")
-                         .innerHTML,
-    table_template = Handlebars.compile(source);
+  var gadget_klass = rJS(window);
 
   gadget_klass
     /////////////////////////////////////////////////////////////////
@@ -33,104 +29,85 @@
     /////////////////////////////////////////////////////////////////
     // Acquired methods
     /////////////////////////////////////////////////////////////////
-    .declareAcquiredMethod("jio_allDocs", "jio_allDocs")
-    .declareAcquiredMethod("translateHtml", "translateHtml")
-    .declareAcquiredMethod("getUrlFor", "getUrlFor")
     .declareAcquiredMethod("updateHeader", "updateHeader")
+    .declareAcquiredMethod("getUrlParameter", "getUrlParameter")
+    .declareAcquiredMethod("getUrlFor", "getUrlFor")
 
     /////////////////////////////////////////////////////////////////
     // declared methods
     /////////////////////////////////////////////////////////////////
-    .declareMethod("render", function () {
-      var gadget = this;
-
-      return gadget.jio_allDocs({
-        "query": 'meta_type:"ERP5 Folder" AND id:"%_module"',
-        "select_list": ["title", "business_application_title"],
-        "limit": 1000
-      })
+    .allowPublicAcquisition('updateHeader', function () {
+      return;
+    })
+    .allowPublicAcquisition('getUrlFor', function (argument_list) {
+      if (argument_list[0].command === 'index') {
+        return this.getUrlFor({command: 'display_stored_state', options: {jio_key: argument_list[0].options.jio_key}});
+      }
+      return this.getUrlFor.apply(this, argument_list);
+    })
+    .allowPublicAcquisition('getUrlParameter', function (argument_list) {
+      return this.getUrlParameter(argument_list)
         .push(function (result) {
-          var result_list = [],
-            i;
-          for (i = 0; i < result.data.rows.length; i += 1) {
-            result_list.push(RSVP.all([
-              gadget.getUrlFor({command: 'display_stored_state', options: {jio_key: result.data.rows[i].id}}),
-              result.data.rows[i].value.title || result.data.rows[i].id,
-              result.data.rows[i].value.business_application_title
-            ]));
-          }
-          return RSVP.all(result_list);
-        })
-        .push(function (document_list) {
-          var i,
-            business_application_dict = {},
-            business_application_list = [],
-            business_application,
-            module_info,
-            result_html = '<div data-role="collapsible-set" data-theme="c">',
-            doc;
-          for (i = 0; i < document_list.length; i += 1) {
-            doc = document_list[i];
-            if (doc[2] === undefined) {
-              doc[2] = "Other";
-            }
-            module_info = {
-              link: doc[0],
-              title: doc[1]
-            };
-            if (business_application_dict[doc[2]] === undefined) {
-              business_application_dict[doc[2]] = [module_info];
-              business_application_list.push(doc[2]);
-            } else {
-              business_application_dict[doc[2]].push(module_info);
-            }
-          }
-
-          business_application_list.sort(function (a, b) {
-            // Push the "Other" value at the end
-            var result = 0;
-            if (a === "Other") {
-              result = 1;
-            } else if (b === "Other") {
-              result = -1;
-            } else if (a < b) {
-              result = -1;
-            } else if (a > b) {
-              result = 1;
-            }
-            return result;
-          });
-
-          function sort_module(a, b) {
-            var result = 0;
-            if (a.title < b.title) {
-              result = -1;
-            } else if (a.title > b.title) {
-              result = 1;
-            }
-            return result;
+          if ((result === undefined) && (argument_list[0] === 'field_listbox_sort_list:json')) {
+            return [['title', 'ascending']];
           }
+          return result;
+        });
+    })
+    .declareMethod("triggerSubmit", function () {
+      var argument_list = arguments;
+      return this.getDeclaredGadget('form_list')
+        .push(function (gadget) {
+          return gadget.triggerSubmit.apply(gadget, argument_list);
+        });
+    })
+    .declareMethod("render", function () {
+      var gadget = this,
+        header_dict = {
+          page_title: 'Modules',
+          filter_action: true
+        };
 
-          for (i = 0; i < business_application_list.length; i += 1) {
-            business_application = business_application_list[i];
-            business_application_dict[business_application].sort(sort_module);
-
-            result_html += table_template({
-              definition_title: business_application,
-              documentlist: business_application_dict[business_application]
-            });
-          }
-
-          result_html += '</div>';
-
-          return gadget.translateHtml(result_html);
+      return gadget.updateHeader(header_dict)
+        .push(function () {
+          return gadget.getDeclaredGadget('form_list');
         })
-        .push(function (my_translated_html) {
-          gadget.props.element.querySelector('.document_list').innerHTML =
-            my_translated_html;
-          return gadget.updateHeader({
-            page_title: 'Modules'
+        .push(function (form_gadget) {
+          var column_list = [
+            ['title', 'Title']
+          ];
+          return form_gadget.render({
+            erp5_document: {"_embedded": {"_view": {
+              "listbox": {
+                "column_list": column_list,
+                "show_anchor": 0,
+                "default_params": {},
+                "editable": 1,
+                "editable_column_list": [],
+                "key": "field_listbox",
+                "lines": 1000,
+                "list_method": "portal_catalog",
+                "query": "urn:jio:allDocs?query=meta_type%3A%22ERP5%20Folder%22%20AND%20id%3A%22%25_module%22",
+                "portal_type": [],
+                "search_column_list": column_list,
+                "sort_column_list": column_list,
+                "title": "Modules",
+                "type": "ListBox"
+              }
+            }},
+              "_links": {
+                "type": {
+                  // form_list display portal_type in header
+                  name: ""
+                }
+              }},
+            form_definition: {
+              group_list: [[
+                "bottom",
+                [["listbox"]]
+              ]]
+            }
           });
         });
     });
-}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
+}(window, rJS));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
index a396684e33..11fee231e6 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_frontpage_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.821.64587.50432</string> </value>
+                <value> <string>952.43287.48740.12117</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447323452.37</float>
+                        <float>1468942890.74</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.html
index 7a31d8771e..4848ff94eb 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.html
@@ -16,9 +16,6 @@
   <body>
 
       <article class="ui-content ui-body-c">
-        <section class="ui-content-header-plain">
-          <h3 class="ui-content-title ui-body-c" data-i18n="Logout">Logout</h3>
-        </section>
         <section class="ui-body-c ui-content-section">
           <form class="logout">
 
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.xml
index ad7a7b5a22..bd407129ca 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.45437.59333.59426</string> </value>
+                <value> <string>947.46978.10225.52394</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1449755433.81</float>
+                        <float>1469543629.05</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.js
index 6ba79d33b7..41418ddbc5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.js
@@ -26,6 +26,7 @@
     .declareAcquiredMethod("getUrlFor", "getUrlFor")
     .declareAcquiredMethod("jio_getAttachment", "jio_getAttachment")
     .declareAcquiredMethod("translateHtml", "translateHtml")
+    .declareAcquiredMethod("updateHeader", "updateHeader")
 
     /////////////////////////////////////////////////////////////////
     // declared methods
@@ -33,6 +34,9 @@
      .declareMethod("render", function () {
       var gadget = this;
       return new RSVP.Queue()
+        .push(function () {
+          return gadget.updateHeader({page_title: 'Logout'});
+        })
         .push(function () {
           return gadget.translateHtml(gadget.props.element.innerHTML);
         })
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.xml
index 1a9111e8d4..331c1477a5 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_pt_logoutform_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.45416.32910.41454</string> </value>
+                <value> <string>952.53322.52034.23569</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1449754121.57</float>
+                        <float>1469543750.01</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html
index 59c4b70ec1..7f56894d50 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.html
@@ -4,7 +4,6 @@
     <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
     <meta name="viewport" content="width=device-width, user-scalable=no" />
     <title>ERP5 Relationstringfield</title>
-    <script src="jquery.js"></script>
     <script src="rsvp.js" type="text/javascript"></script>
     <script src="renderjs.js" type="text/javascript"></script>
     <script src="URI.js" type="text/javascript"></script>
@@ -14,18 +13,21 @@
 
 
     <script id="relation-input-template" type="text/x-handlebars-template">
-      <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset ui-input-has-clear ui-input-has-icon {{readonly}}">
-        <input type='text' title="{{title}}" name="{{name}}" autocomplete="off" data-enhanced="true" value="{{value}}" >
-        <a href="#" tabindex="-1" class="ui-hidden-accessible">&nbsp;</a>
-        <ul class="ui-listview ui-corner-all search_ul"></ul>
+      <div class="relation-input ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset ui-input-has-clear ui-input-has-icon {{readonly}}">
+        <div>
+          <input type='search' title="{{title}}" name="{{name}}" autocomplete="off" {{{input_readonly}}} data-enhanced="true" value="{{value}}" >
+          <ul class="ui-listview ui-corner-all search_ul"></ul>
+        </div>
+        <a href={{href}} tabindex="-1" class="{{class_name}}" >Jump to this document</a>
       </div>
-       <a href={{href}} tabindex="-1" class="{{class_name}}" >Jump to this document</a>
+        
+
     </script>
 
 
     <script id="relation-listview-template" type="text/x-handlebars-template">
       {{#if list.length}}
-        <li class="ui-autocomplete ui-li ui-li-divider ui-bar-inherit ui-first-child" role="heading">Select from the {{list.length}} Search Results</li>
+        <!--li class="ui-autocomplete ui-li ui-li-divider ui-bar-inherit ui-first-child" role="heading">Select from the {{list.length}} Search Results</li-->
         {{#each list}}
           <li class="ui-li-static ui-body-inherit ui-icon-mail-forward ui-btn-icon-right" data-relative-url={{id}} >{{value}}</li>
         {{/each}}
@@ -33,7 +35,7 @@
          <li class="ui-li-static ui-body-inherit ui-bar-inherit ui-icon-plus ui-btn-icon-right" data-create-object="{{this}}" name="{{this}}">Create New {{this}}: {{../value}}</li>
         {{/each}}
       {{else}}
-        <li class="ui-autocomplete ui-li ui-li-divider ui-bar-inherit ui-first-child" role="heading">No result</li>
+        <!--li class="ui-autocomplete ui-li ui-li-divider ui-bar-inherit ui-first-child" role="heading">No result</li-->
         {{#each type}}
          <li class="ui-li-static ui-body-inherit ui-bar-inherit ui-icon-plus ui-btn-icon-right" data-create-object="{{this}}" name="{{this}}">Create New {{this}}: {{../value}}</li>
         {{/each}}
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml
index 4cd062fb11..1177b755d6 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.34465.51212.22528</string> </value>
+                <value> <string>952.41816.36917.26982</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1468420120.27</float>
+                        <float>1468854973.0</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js
index f4d79fbbb8..c384f6a8b1 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.js
@@ -1,8 +1,8 @@
 /*jslint indent: 2, maxerr: 3, nomen: true */
 /*global window, rJS, RSVP, URI, loopEventListener, Handlebars,
- SimpleQuery, ComplexQuery, Query, QueryFactory, promiseEventListener, $*/
+ SimpleQuery, ComplexQuery, Query, QueryFactory, promiseEventListener*/
 (function (window, rJS, RSVP, URI, loopEventListener, promiseEventListener,
-  SimpleQuery, ComplexQuery, Query, QueryFactory, Handlebars, $) {
+  SimpleQuery, ComplexQuery, Query, QueryFactory, Handlebars) {
   "use strict";
 
 
@@ -151,6 +151,7 @@
             href: jump_href,
             create_object: create_object,
             readonly: field_json.editable ? "" : "ui-state-readonly",
+            input_readonly: field_json.editable ? "" : 'readonly="readonly"',
             required: field_json.required ? "required" : "",
             value: value,
             title: field_json.title,
@@ -164,7 +165,7 @@
             gadget.props.element.querySelector("input");
           gadget.props.new_tag_div = gadget.props.element.querySelector(".new_tag");
           gadget.props.spinner = gadget.props.element.querySelector("a");
-          gadget.props.plane = gadget.props.element.querySelectorAll("a")[1];
+          gadget.props.plane = gadget.props.element.querySelector("a");
         });
       return queue;
     })
@@ -223,7 +224,7 @@
         props.jump_url = [];
         ul.innerHTML = "";
         if (my_value === "") {
-          props.spinner.className = searched;
+          props.spinner.className = jump_off;
           return;
         }
         simple_query = new SimpleQuery({
@@ -254,15 +255,13 @@
                 value: result.data.rows[i].value[index]
               });
             }
-            props.spinner.className = searched;
+            props.spinner.className = jump_off;
             html =  relation_listview_template({
               list: list,
               type: type,
               value: my_value
             });
-            $(ul).toggle();
             ul.innerHTML = html;
-            $(ul).toggle();
           });
       }
 
@@ -383,4 +382,4 @@
     });
 
 }(window, rJS, RSVP, URI, loopEventListener, promiseEventListener,
-  SimpleQuery, ComplexQuery, Query, QueryFactory, Handlebars, $));
+  SimpleQuery, ComplexQuery, Query, QueryFactory, Handlebars));
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml
index d34b126fca..24ff483e9f 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_relation_input_js.xml
@@ -236,7 +236,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.34578.31726.63163</string> </value>
+                <value> <string>952.37517.63345.57514</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -254,7 +254,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1468420163.31</float>
+                        <float>1468595439.59</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.html
index ff0b4f0850..607d839f68 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.html
@@ -25,6 +25,7 @@
    
   
     <script id="filter-item-template" type="text/x-handlebars-template">
+      <button type="submit" class="ui-icon ui-btn ui-btn-inline ui-icon-minus ui-icon-shadow"></button>
       <div class="filter_item {{class_value}}" >
         <select data-iconpos="left">
           {{#each option}}
@@ -45,8 +46,7 @@
           {{/each}}
         </select>
         <div class="ui-controlgroup-controls">
-          <input type= "{{input_type}}" value="{{input_value}}"></input>
-          <button type="submit" class="ui-icon ui-btn ui-btn-inline ui-icon-delete ui-icon-shadow"></button>
+          <input type="{{input_type}}" value="{{input_value}}"></input>
         </div>
       </div>
     
@@ -81,17 +81,10 @@
 
          <section class="ui-body-c ui-content-section">
           <fieldset class="ui-controlgroup ui-corner-all">
-            <div  class="ui-controlgroup-controls">
-              <div class="ui-radio">
-               <label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on" data-i18n="All criterions(AND)">All criterions(AND)</label>
-                <input type="radio" value="on" checked="checked" name="heard_about" id="heard_about_a" class="and checkboxradio" data-cacheval="false" data-enhanced="true">
-              </div>
-              <div class="ui-radio">
-                <label class="ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off" data-i18n="At lease one(OR)">At lease one(OR)</label>
-                <input type="radio" value="Off" name="heard_about" id="heard_about_b" class="or checkboxradio" data-cacheval="true" data-enhanced="true">
-              </div>
-            </div>
-
+            <select data-iconpos="left" name="heard_about">
+              <option data-i18n="All criterions (AND)" value="AND">All criterions (AND)</option>
+              <option data-i18n="At lease one (OR)" value="OR">At lease one (OR)</option>
+            </select>
            </fieldset>
          
            <div class="filter_item_container">
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
index e843ee3db4..d9e8ecc792 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>947.25389.31975.29218</string> </value>
+                <value> <string>952.34496.35921.52275</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1448651417.88</float>
+                        <float>1468414694.8</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
index 67e2ce2e1d..da25546c81 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.js
@@ -1,7 +1,7 @@
 /*jslint indent: 2, maxerr: 3, maxlen: 100, nomen: true */
-/*global window, document, rJS, RSVP, Handlebars, $, loopEventListener,
+/*global window, document, rJS, RSVP, Handlebars, loopEventListener,
   QueryFactory, SimpleQuery, ComplexQuery, Query, console*/
-(function (window, document, rJS, RSVP, Handlebars, $, loopEventListener,
+(function (window, document, rJS, RSVP, Handlebars, loopEventListener,
   QueryFactory, SimpleQuery, ComplexQuery, Query, console) {
   "use strict";
   var gadget_klass = rJS(window),
@@ -69,7 +69,7 @@
       option = [],
       tmp,
       operator_option = [],
-      input_type = "text",
+      input_type = "search",
       i;
 
     if (filter_item) {
@@ -132,7 +132,6 @@
             })
             .push(function (innerHTML) {
               select_list[1].innerHTML = innerHTML;
-              $(select_list[1]).selectmenu('refresh');
               if (isNumericComparison(event.target.value)) {
                 if (event.target.value.indexOf("date") !== -1) {
                   input.setAttribute("type", "date");
@@ -210,8 +209,7 @@
       var gadget = this,
         i,
         list = [],
-        or = gadget.props.element.querySelector(".or"),
-        and = gadget.props.element.querySelector(".and"),
+        operator_select = gadget.props.element.querySelector("select"),
         container = gadget.props.element.querySelector(".filter_item_container"),
         query_list;
       if (gadget.props.extended_search) {
@@ -225,12 +223,7 @@
           return;
         }
         if (query_list.operator === "OR") {
-          or.checked = true;
-          and.checked = false;
-          or.parentElement.children[0].setAttribute("class",
-            "ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-on");
-          and.parentElement.children[0].setAttribute("class",
-            "ui-btn ui-corner-all ui-btn-inherit ui-btn-icon-left ui-radio-off");
+          operator_select.querySelectorAll("option")[1].selected = "selected";
         }
 
         query_list = query_list.query_list || [query_list];
@@ -242,15 +235,11 @@
             return RSVP.all(list);
           })
           .push(function (all_result) {
-            var innerHTML = "",
-              select_list;
+            var div;
             for (i = 0; i < all_result.length; i += 1) {
-              innerHTML += all_result[i];
-            }
-            container.innerHTML = innerHTML;
-            select_list = container.querySelectorAll("select");
-            for (i = 0; i < select_list.length; i += 1) {
-              $(select_list[i]).selectmenu();
+              div = document.createElement("div");
+              div.innerHTML = all_result[i];
+              container.appendChild(div);
             }
             return listenToSelect(gadget, "auto");
           });
@@ -266,7 +255,7 @@
         function () {
           var focused = document.activeElement;
           if (focused.nodeName === "BUTTON") {
-            container.removeChild(focused.parentElement.parentElement);
+            container.removeChild(focused.parentElement);
           }
         }
       );
@@ -289,7 +278,8 @@
             value,
             options = {},
             filter_item_list = gadget.props.element.querySelectorAll(".filter_item"),
-            and = gadget.props.element.querySelector(".and");
+            operator_select = gadget.props.element.querySelector("select"),
+            operator = operator_select[operator_select.selectedIndex].value;
           for (i = 0; i < filter_item_list.length; i += 1) {
             select_list = filter_item_list[i].querySelectorAll("select");
             value = filter_item_list[i].querySelector("input").value;
@@ -319,7 +309,7 @@
 
           if (simple_query_list.length > 0) {
             complex_query = new ComplexQuery({
-              operator: and.checked ? "AND" : "OR",
+              operator: operator,
               query_list: simple_query_list,
               type: "complex"
             });
@@ -353,15 +343,9 @@
             })
             .push(function (template) {
               var tmp = document.createElement("div"),
-                container = gadget.props.element.querySelector(".filter_item_container"),
-                select_list,
-                i;
+                container = gadget.props.element.querySelector(".filter_item_container");
               tmp.innerHTML = template;
-              select_list = tmp.querySelectorAll("select");
-              for (i = 0; i < select_list.length; i += 1) {
-                $(select_list[i]).selectmenu();
-              }
-              container.appendChild(tmp.querySelector("div"));
+              container.appendChild(tmp);
               return listenToSelect(gadget, class_value);
             });
         }
@@ -379,5 +363,5 @@
       );
     });
 
-}(window, document, rJS, RSVP, Handlebars, $, loopEventListener,
+}(window, document, rJS, RSVP, Handlebars, loopEventListener,
   QueryFactory, SimpleQuery, ComplexQuery, Query, console));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
index 4c7abe28b1..cbd3151e9b 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searcheditor_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>949.2121.59518.17646</string> </value>
+                <value> <string>952.34519.30853.16520</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1455022145.56</float>
+                        <float>1468415510.46</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.html
index 94f26f52ab..61669f0c63 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.html
@@ -14,24 +14,11 @@
     <script src="gadget_erp5_searchfield.js"></script>
 
    <script id="panel-template" type="text/x-handlebars-template">
-      <div class="field_container">
-        <div class="ui-field-contain">
-          <div class="bottom">
-              <div class="ui-input-text ui-body-{{theme}} ui-input-has-icon ui-corner-all ui-shadow-inset ui-input-has-clear">
-                <input type="text" data-enhanced="true" value="{{widget_value}}" name="search" {{widget_status_attribute}} >
-                <div class="ui-btn ui-input-clear ui-input-btn ui-corner-all ui-icon-times ui-btn-icon-notext" data-i18n="[node]header-submit">
--                 Submit<input data-enhanced="true" class="clear_button" type="submit" data-i18n="[value]header-submit" value="Submit" {{widget_status_attribute}} />
-                </div>
-              </div>
-              <div class="ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-{{theme}} ui-btn-icon-notext ui-icon-search ui-override-theme " >
-                <div class="ui-input-btn">
-                  <input class="search_button" data-role="button" data-enhanced="true" type="submit" data-i18n="[value]" value=" ">
-                </div>
-            </div>
-         </div>
-        </div>
-      </div>
-    </script>
+     <div class="ui-input-text ui-body-{{theme}} ui-input-has-icon ui-corner-all ui-shadow-inset ui-input-has-clear">
+       <input type="search" data-enhanced="true" value="{{widget_value}}" name="search" {{widget_status_attribute}}>
+       <button class="search_button ui-shadow-inset ui-btn ui-btn-inline ui-corner-all ui-btn-{{theme}} ui-btn-icon-notext ui-icon-search ui-override-theme ui-input-btn" data-role="button" data-enhanced="true" type="submit" />
+     </div>
+   </script>
 
   </head>
   <body>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml
index c716a8b874..f1d588c8b2 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>950.28959.27081.52548</string> </value>
+                <value> <string>952.1567.50811.55193</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1460449490.1</float>
+                        <float>1467032063.71</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.js
index cb22cbda85..6535560246 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.js
@@ -77,20 +77,6 @@
 
       result[input.getAttribute('name')] = value;
       return result;
-    })
-    .declareService(function () {
-      var gadget = this,
-        clear_button = gadget.props.element.querySelector(".clear_button"),
-        search_input = gadget.props.element.querySelector("input");
-      return loopEventListener(
-        clear_button,
-        "click",
-        false,
-        function () {
-          search_input.value = "";
-          search_input.focus();
-        }
-      );
     });
 
 }(window, rJS, RSVP, Handlebars, loopEventListener));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
index c33d1daaf3..3762d4ce72 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_searchfield_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>950.28962.48103.49971</string> </value>
+                <value> <string>951.35286.47701.22630</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1460390605.12</float>
+                        <float>1466524830.34</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js
index 7949ff9b42..18cc8104de 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.js
@@ -62,7 +62,6 @@
       'gadget_erp5_header.js',
       'gadget_erp5_jio.html',
       'gadget_erp5_jio.js',
-      'gadget_erp5_latest.css',
       'gadget_erp5_page_action.html',
       'gadget_erp5_page_action.js',
       'gadget_erp5_page_form.html',
@@ -87,7 +86,6 @@
       'gadget_erp5_page_worklist.js',
       'gadget_erp5_panel.html',
       'gadget_erp5_panel.js',
-      'gadget_erp5_panel_configuration.html',
       'gadget_erp5_pt_form_dialog.html',
       'gadget_erp5_pt_form_dialog.js',
       'gadget_erp5_pt_form_list.html',
@@ -118,9 +116,6 @@
       'handlebars.js',
       'i18next.js',
       'jiodev.js',
-      'jquery.js',
-      'jquerymobile.css',
-      'jquerymobile.js',
       'renderjs.js',
       'rsvp.js'
     ];
@@ -191,4 +186,4 @@
 
 
 
-}(self, caches, fetch));
\ No newline at end of file
+}(self, caches, fetch));
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml
index 746c59ae72..47e21e140b 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_serviceworker.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>952.33133.9116.24098</string> </value>
+                <value> <string>952.5891.40125.8465</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1468419919.07</float>
+                        <float>1467035757.8</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html
index 3ee49b7df7..e5d60c80fd 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.html
@@ -16,6 +16,7 @@
   
   
     <script id="sort-item-template" type="text/x-handlebars-template">
+        <button type="submit" class="ui-icon ui-btn ui-btn-inline ui-icon-minus ui-icon-shadow"></button>
         <div class="sort_item ui-controlgroup-controls" >
           <select data-iconpos="left">
             {{#each option}}
@@ -37,7 +38,6 @@
             {{/equal}}
           </select>
           
-          <button type="submit" class="ui-icon ui-btn ui-btn-inline ui-icon-delete ui-icon-shadow"></button>
         </div>
     </script>
   
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
index c6c7a97a08..349c4a3f12 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_html.xml
@@ -234,7 +234,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>946.64691.21179.17203</string> </value>
+                <value> <string>952.34318.26924.28552</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -252,7 +252,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1447352776.31</float>
+                        <float>1468413387.26</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
index ebb87d811b..840502c604 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.js
@@ -1,6 +1,6 @@
 /*jslint indent: 2, maxerr: 3, nomen: true */
-/*global window, document, rJS, RSVP, Handlebars, $, loopEventListener*/
-(function (window, document, rJS, RSVP, Handlebars, $, loopEventListener) {
+/*global window, document, rJS, RSVP, Handlebars, loopEventListener*/
+(function (window, document, rJS, RSVP, Handlebars, loopEventListener) {
   "use strict";
   var gadget_klass = rJS(window),
     sort_item_source = gadget_klass.__template_element
@@ -105,15 +105,12 @@
           return RSVP.all(list);
         })
         .push(function (all_result) {
-          var innerHTML = "",
-            select_list;
+          var div,
+            container = gadget.props.element.querySelector(".sort_item_container");
           for (i = 0; i < all_result.length; i += 1) {
-            innerHTML += all_result[i];
-          }
-          gadget.props.element.querySelector(".sort_item_container").innerHTML = innerHTML;
-          select_list = gadget.props.element.querySelector(".sort_item_container").querySelectorAll("select");
-          for (i = 0; i < select_list.length; i += 1) {
-            $(select_list[i]).selectmenu();
+            div = document.createElement("div");
+            div.innerHTML = all_result[i];
+            container.appendChild(div);
           }
         });
     })
@@ -175,15 +172,9 @@
             })
             .push(function (template) {
               var tmp = document.createElement("div"),
-                container = gadget.props.element.querySelector(".sort_item_container"),
-                select_list,
-                i;
+                container = gadget.props.element.querySelector(".sort_item_container");
               tmp.innerHTML = template;
-              select_list = tmp.querySelectorAll("select");
-              for (i = 0; i < select_list.length; i += 1) {
-                $(select_list[i]).selectmenu();
-              }
-              container.appendChild(tmp.querySelector("div"));
+              container.appendChild(tmp);
             });
         }
       );
@@ -200,4 +191,4 @@
       );
     });
 
-}(window, document, rJS, RSVP, Handlebars, $, loopEventListener));
\ No newline at end of file
+}(window, document, rJS, RSVP, Handlebars, loopEventListener));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
index 638bfca4ef..8e011254cb 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_sorteditor_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>949.63919.28849.11281</string> </value>
+                <value> <string>952.21277.40593.7202</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1458739459.09</float>
+                        <float>1468403615.53</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
index aad7eb18fd..cdb8a3adc4 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.js
@@ -1,6 +1,6 @@
-/*global window, rJS, document, RSVP, loopEventListener, jQuery */
+/*global window, rJS, document, RSVP, loopEventListener */
 /*jslint indent: 2, maxerr: 3 */
-(function (window, rJS, document, RSVP, loopEventListener, $) {
+(function (window, rJS, document, RSVP, loopEventListener) {
   "use strict";
 
   rJS(window)
@@ -58,24 +58,6 @@
       }
       result[this.property_dict.name] = value;
       return result;
-    })
-
-    .declareService(function () {
-      var gadget = this;
-      return new RSVP.Queue()
-        .push(function () {
-          return gadget.property_dict.textarea_deferred.promise;
-        })
-        .push(function (textarea) {
-          return loopEventListener(
-            textarea,
-            'focus',
-            false,
-            function () {
-              $(textarea).keyup();
-            }
-          );
-        });
     });
 
-}(window, rJS, document, RSVP, loopEventListener, jQuery));
\ No newline at end of file
+}(window, rJS, document, RSVP, loopEventListener));
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml
index 29d6edd458..862f9c76bc 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_page_module/rjs_gadget_erp5_textareafield_js.xml
@@ -230,7 +230,7 @@
             </item>
             <item>
                 <key> <string>serial</string> </key>
-                <value> <string>949.24043.58938.21367</string> </value>
+                <value> <string>952.10031.38084.59682</string> </value>
             </item>
             <item>
                 <key> <string>state</string> </key>
@@ -248,7 +248,7 @@
                     </tuple>
                     <state>
                       <tuple>
-                        <float>1456336348.49</float>
+                        <float>1467032882.44</float>
                         <string>UTC</string>
                       </tuple>
                     </state>
diff --git a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_site_module/renderjs_runner.xml b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_site_module/renderjs_runner.xml
index 295a68e05e..bcaaf4a553 100644
--- a/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_site_module/renderjs_runner.xml
+++ b/bt5/erp5_web_renderjs_ui/PathTemplateItem/web_site_module/renderjs_runner.xml
@@ -306,8 +306,8 @@
             <key> <string>categories</string> </key>
             <value>
               <tuple>
-                <string>aggregate/web_page_module/rjs_gadget_erp5_html</string>
                 <string>caching_policy/must-revalidate</string>
+                <string>aggregate/web_page_module/rjs_gadget_erp5_launcher_html</string>
               </tuple>
             </value>
         </item>
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewRecoverAccount.zpt b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewRecoverAccount.zpt
index 46ce7bd699..913a3bb168 100644
--- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewRecoverAccount.zpt
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewRecoverAccount.zpt
@@ -1,39 +1,42 @@
-<html class="ui-mobile">
+<html>
   <head>
     <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
     <title tal:content="python: here.getPortalObject().getTitle()"></title>
-    <link rel="stylesheet" href="gadget_erp5.css">
-    <link rel="stylesheet" href="jquerymobile.css">
+    <link rel="stylesheet" href="gadget_erp5_nojqm.css">
   </head>
-  <body class="ui-mobile-viewport ui-overlay-a" tal:define="form_action string:portal_password/mailPasswordResetRequest;">
-    <div class="ui-hidden-accessible gadget-container"></div>
-    <div data-role="page" data-url="/" tabindex="0" class="ui-page ui-page-theme-a ui-page-header-fixed ui-page-active" style="padding-top: 36px; min-height: 939px;">
-      <div data-role="header" class="gadget-header ui-header ui-bar-a ui-header-fixed slidedown" data-theme="a" data-position="fixed" data-tap-toggle="false" role="banner">
-      <span>
-        <h1 class="ui-title" tal:content="python: here.getPortalObject().getTitle()"></h1>
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-         <div class="ui-controlgroup-controls">
-         </div>
-        </div>
-      </span>
-      <div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
-		    <ul class="ui-grid-d"></ul>
+
+  <body tal:define="form_action string:portal_password/mailPasswordResetRequest;">
+
+    <div data-gadget-scope='header'>
+      <div class="ui-header">
+        <h1><span>Recover your account</span></h1>
       </div>
+    </div>
+
+    <div data-gadget-scope='panel'>
+      <div data-role="header">
+        <div class="panel_img">
+          <img alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="/>
+        </div>
       </div>
-      <div role="main" class="ui-content gadget-content">
-      <article class="ui-content ui-body-c">
-        <section class="ui-content-header-plain">
-          <h3 class="ui-content-title ui-body-c" data-i18n="Reset your password">Reset your password</h3>
-        </section>
-        <section class="ui-body-c ui-content-section">
-          <form class="login-form" method="post" tal:attributes="action python: context.absolute_url()">
+    </div>
+
+    <div class="gadget-content">
+      <article>
+
+        <section>
+          <form method="post" tal:attributes="action python: context.absolute_url()">
             <div class="ui-field-contain">
               <label data-i18n="Login">Login<span></span></label>
-              <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input autofocus type="text" name="user_login" value="" required=""></div>
+              <div><input autofocus type="text" name="user_login" value="" required=""></div>
             </div>
             <br/>
-            <div class="ui-btn ui-input-btn ui-btn-b ui-corner-all ui-shadow ui-btn-inline">Validate<input data-theme="b" data-inline="true" type="submit" data-i18n="[value]Validate" value="Validate" data-icon="check" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            <div class="ui-field-contain">
+              <label></label>
+              <div><input type="submit" data-i18n="[value]Validate" value="Validate" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            </div>
+
             <input type="hidden" name="url" tal:attributes="value python: context.absolute_url()" />
             <input tal:condition="exists: request/came_from"
                    type="hidden" name="came_from"
@@ -42,7 +45,5 @@
          </section>
       </article>
     </div>
-    </div>
-    <div class="ui-loader ui-corner-all ui-body-a ui-loader-default"><h1>loading</h1></div><div class="ui-panel-dismiss"></div>
   </body>
 </html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewResetPassword.zpt b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewResetPassword.zpt
index 4f20ce1772..907236c36a 100644
--- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewResetPassword.zpt
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/WebSite_viewResetPassword.zpt
@@ -1,49 +1,49 @@
-<html class="ui-mobile">
+<html>
   <head>
     <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
     <title tal:content="python: here.getPortalObject().getTitle()"></title>
-    <link rel="stylesheet" href="gadget_erp5.css">
-    <link rel="stylesheet" href="jquerymobile.css">
+    <link rel="stylesheet" href="gadget_erp5_nojqm.css">
   </head>
-  <body class="ui-mobile-viewport ui-overlay-a" tal:define="form_action string:portal_password/PasswordTool_changeUserPassword;">
-    <div class="ui-hidden-accessible gadget-container"></div>
-    <div data-role="page" data-url="/" tabindex="0" class="ui-page ui-page-theme-a ui-page-header-fixed ui-page-active" style="padding-top: 36px; min-height: 939px;">
-      <div data-role="header" class="gadget-header ui-header ui-bar-a ui-header-fixed slidedown" data-theme="a" data-position="fixed" data-tap-toggle="false" role="banner">
-      <span>
-        <h1 class="ui-title" tal:content="python: here.getPortalObject().getTitle()"></h1>
-        <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-         <div class="ui-controlgroup-controls">
-         </div>
-        </div>
-      </span>
-      <div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
-		    <ul class="ui-grid-d"></ul>
+  <body tal:define="form_action string:portal_password/PasswordTool_changeUserPassword;">
+
+    <div data-gadget-scope='header'>
+      <div class="ui-header">
+        <h1><span>Reset your password</span></h1>
       </div>
+    </div>
+
+    <div data-gadget-scope='panel'>
+      <div data-role="header">
+        <div class="panel_img">
+          <img alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="/>
+        </div>
       </div>
-      <div role="main" class="ui-content gadget-content">
-      <article class="ui-content ui-body-c">
-        <section class="ui-content-header-plain">
-          <h3 class="ui-content-title ui-body-c" data-i18n="Reset your password">Reset your password</h3>
-        </section>
-        <section class="ui-body-c ui-content-section">
-          <form class="login-form" method="post" tal:attributes="action python: context.absolute_url()">
+    </div>
+
+    <div class="gadget-content">
+      <article class="ui-content">
+
+        <section>
+          <form method="post" tal:attributes="action python: context.absolute_url()">
             <div class="ui-field-contain">
               <label data-i18n="New Password">New Password<span></span></label>
-              <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input autofocus name="password" type="password" value="" required=""></div>
+              <div><input autofocus name="password" type="password" value="" required=""></div>
             </div>
             <div class="ui-field-contain">
               <label data-i18n="Retype New Password">Retype New Password<span></span></label>
-              <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input name="password_confirm" type="password" value="" required=""></div>
+              <div><input name="password_confirm" type="password" value="" required=""></div>
             </div>
-            <div class="ui-btn ui-input-btn ui-btn-b ui-corner-all ui-shadow ui-btn-inline">Validate<input data-theme="b" data-inline="true" type="submit" data-i18n="[value]Validate" value="Validate" data-icon="check" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            <div class="ui-field-contain">
+              <label></label>
+              <div><input type="submit" value="Validate" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            </div>
+
             <input type="hidden" name="came_from" tal:attributes="value python: context.absolute_url()" />
             <input type="hidden" name="password_key" tal:attributes="value python: request.get('reset_key') or ''" />
           </form>
          </section>
       </article>
     </div>
-    </div>
-    <div class="ui-loader ui-corner-all ui-body-a ui-loader-default"><h1>loading</h1></div><div class="ui-panel-dismiss"></div>
   </body>
 </html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt
new file mode 100644
index 0000000000..2a9559f92d
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.txt
@@ -0,0 +1,2846 @@
+/**********************************************
+* Colors
+**********************************************/
+@black: #1F1F1F;
+@txtorange: #FF6600;
+@txtblue: #2FA2E4;
+@white: #FFFFFF;
+@txtgreen: #22CC22;
+@txtsubgrey: #575757;
+@grey: #777777;
+
+
+// Default background for pages and other controls
+@colorbackground: @white;
+// Default foreground and border color
+@colorforeground: @black;
+@colortextselection: @txtgreen;
+// Foreground color to single-out items of interest
+@coloraccent: @txtorange;
+@colorlink: @txtblue;
+
+@colortextboxforeground: @colorforeground;
+@colortextboxplaceholder: @txtsubgrey;
+@colortextboxbackground: @colorbackground;
+
+@colorheaderbackground: #085078;
+@colorsubheaderbackground: #0E81C2;
+@colorsubheaderlink: #f8fff3;
+
+@colorfocus: #3388cc;
+@colorblocklinkbackground: #e0e0e0;
+
+@panelbackgroundcolor: #444444;
+
+@radius: .325em;
+
+@headerheight: 2.6em;
+@headertitleleftlargemargin: 4em;
+@headertitleleftsmallmargin: 2em;
+
+@mainpaddingdesktop: 2em;
+
+// XXX desktop: 12em
+@panelwidth: 17em;
+
+@smartphone: ~"only screen and (max-width: 28em)";
+@tablet: ~"only screen and (min-width: 28em) and (max-width: 62em)";
+@desktop: ~"only screen and (min-width: 62em)";
+
+
+/**********************************************
+* Fonts (font-family)
+**********************************************/
+@sans-serif: 'Open Sans', Helvetica, Arial, sans-serif;
+@monospace: "Courier New", Courier, monospace;
+
+/**********************************************
+* Shared
+**********************************************/
+@font-family: @sans-serif;
+@font-size: 11pt;
+// Increase font size to prevent IOS auto zooming when focusing input field
+@smartphone-font-size: 12pt;
+@font-weight: 400;
+
+@line-height: 1.3;
+@letter-spacing: .05em;
+
+@header-font-weight: 700;
+// @header-font-weight: bolder;
+@header-letter-spacing: .1em;
+
+@border-size: 1pt;
+@border-type: solid;
+// @border-color: @color;
+@border: @border-size @border-type @colorforeground;
+
+
+
+///////////////////////////////////////////////
+// Extend
+///////////////////////////////////////////////
+
+.hide_text(@width: 3em) {
+  // https://css-tricks.com/forums/topic/hide-text-but-not-the-before-pseudo-class/
+  & when (@width > 0) {
+    width: @width;
+  }
+  overflow: hidden;
+  text-indent: -9999px;
+  white-space: nowrap;
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/**********************************************
+* http://meyerweb.com/eric/tools/css/reset/ 
+*   v2.0 | 20110126
+*   License: none (public domain)
+**********************************************/
+
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+
+/**********************************************
+* Default
+**********************************************/
+
+html {
+  height: 100%;
+  width: 100%;
+  display: block;
+
+  background-color: @colorbackground;
+
+  // https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
+  box-sizing: border-box;
+}
+
+*, *:before, *:after {
+  box-sizing: inherit;
+}
+
+body {
+  height: 100%;
+  width: 100%;
+  display: block;
+
+  color: @colorforeground;
+
+  word-wrap: break-word;
+}
+
+body, button, input, textarea, select {
+  font-family: @font-family;
+  // letter-spacing: @letter-spacing;
+  @media @desktop, @tablet {
+    font-size: @font-size;
+  }
+  @media @smartphone {
+    font-size: @smartphone-font-size;
+  }
+  font-weight: @font-weight;
+  line-height: @line-height;
+}
+
+/**********************************************
+* Inline elements
+**********************************************/
+
+strong {
+  font-weight: bold;
+}
+
+i, cite, em, var, address, dfn {
+  font-style: italic;
+}
+
+strong, b {
+  font-weight: bold;
+}
+
+u, ins {
+  text-decoration: underline;
+}
+
+s, strike, del {
+  text-decoration: line-through;
+}
+
+sup {
+  vertical-align: super;
+  font-size: smaller;
+}
+
+sub {
+  vertical-align: sub;
+  font-size: smaller;
+}
+
+small {
+  font-size: smaller;
+}
+
+tt, code, kbd, samp {
+  font-family: @monospace;
+}
+
+q {
+  display: inline;
+  &:before {
+    content: open-quote;
+  }
+  &:after {
+    content: close-quote;
+  }
+  quotes: initial;
+}
+
+mark {
+  // background-color: @colortextselection;
+  color: @colortextselection;
+}
+
+/**********************************************
+* Link
+**********************************************/
+.link(@ccolor) {
+  color: @ccolor;
+
+  text-decoration: none;
+
+  &[href=""] {
+    color: @colorforeground;
+  }
+  &:hover {
+    // This make links and button a bit different, and so,
+    // it is easier to know which element can open a new tab
+    text-decoration: underline;
+  }
+  &:focus {
+    outline-offset: -2px;
+    outline: 2px @border-type @colorfocus;
+  }
+}
+
+a {
+  .link(@colorlink);
+
+  @media @desktop {
+    // Do not display access key if not physical keyboard
+    &[accesskey]:after {
+      content: " [" attr(accesskey) "] ";
+    }
+  }
+}
+
+
+/**********************************************
+* Preformatted
+**********************************************/
+
+pre, xmp, plaintext, listing {
+  display: block;
+  // font-family: @monospace;
+  white-space: pre-wrap;
+}
+
+/**********************************************
+* hr
+**********************************************/
+
+hr {
+  display: block;
+  border-style: inset;
+  border-width: @border-size;
+  border-color: @coloraccent;
+}
+
+/**********************************************
+* Text fields
+**********************************************/
+
+label {
+  display: block;
+  color: @grey;
+}
+
+input:not([type=submit]):not([type=file]):not([type=checkbox]):not([type=radio]):not([type=color]), textarea {
+  width: 100%;
+  margin: 0;
+
+  padding: 0.4em;
+  line-height: 1.4em;
+
+  border: none;
+  background-color: @colortextboxbackground;
+  color: @colortextboxforeground;
+
+  border-radius: @radius;
+  border-width: 1px;
+  border-style: solid;
+
+  border-color: rgba(0, 0, 0, 0.3);
+  box-shadow: inset 0 1px 3px rgba(0,0,0,.2);
+
+  outline-offset: 0;
+
+  &[readonly="readonly"] {
+    // XXX Should be dropped when gadget field do not use input
+    // in read only
+    border: none;
+    box-shadow: none;
+    padding: 0;
+    line-height: 1em;
+  }
+
+  &:active, &:focus {
+    outline-offset: 0;
+  }
+  &:focus {
+    box-shadow: 0 0 12px @colorfocus;
+  }
+}
+
+// http://kyusuf.com/post/completely-css-custom-checkbox-radio-buttons-and-select-boxes
+select {
+   width: 100%;
+   margin: 0;
+   padding: 0.4em;
+   padding-right: 1.8em;
+
+  -webkit-appearance: none;
+  -moz-appearance: none;
+   appearance: none;
+
+   line-height: 1.4em;
+   cursor: pointer;
+
+
+   background-image: none;
+   background-color: @colortextboxbackground;
+
+   background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='50px' height='50px'><polyline fill-opacity='0.5' points='46.139,15.518 25.166,36.49 4.193,15.519'/></svg>") right no-repeat;
+   background-position: right .5em top 50%;
+   background-size: 1em 1em;
+
+
+   color: @colortextboxforeground;
+
+   border-radius: @radius;
+
+   border-width: 1px;
+   border-style: solid;
+   border-color: rgba(0, 0, 0, 0.3);
+   box-shadow: inset 0 1px 3px rgba(0,0,0,.2);
+
+   outline-offset: 0;
+
+  &[readonly="readonly"] {
+    // XXX Should be dropped when gadget field do not use input
+    // in read only
+    border: none;
+    background: none;
+    box-shadow: none;
+    padding: 0;
+    line-height: 1em;
+  }
+
+  &:not([readonly="readonly"]) {
+    &:hover, &:active {
+      background-color: @colorblocklinkbackground;
+    }
+  }
+
+  &:-moz-focusring {
+    color: transparent
+  }
+}
+
+textarea {
+  height: 15em;
+  width: 100%;
+  margin: 0;
+  // font-family: @monospace;
+}
+
+::-webkit-input-placeholder {
+   color: @colortextboxplaceholder;
+}
+
+:-moz-placeholder { /* Firefox 18- */
+   color: @colortextboxplaceholder;  
+}
+
+::-moz-placeholder {  /* Firefox 19+ */
+   color: @colortextboxplaceholder;  
+}
+
+:-ms-input-placeholder {  
+   color: @colortextboxplaceholder;  
+}
+
+input[type=submit], button {
+  &::-moz-focus-inner {
+    border : 0px;
+    padding: 0px;
+  }
+
+  margin: 0;
+  padding: 0;
+  border: none;
+  background-image: none;
+  background-color: @colorbackground;
+  color: @colorforeground;
+
+  transition: background-color 0.2s ease-out;
+  &:hover, &:focus {
+    outline: none;
+    background-color: @colorblocklinkbackground;
+  }
+  &:active {
+    // box-shadow: inset 0 0 0 5px darken(@colorblocklinkbackground, 10%);
+    background-color: darken(@colorblocklinkbackground, 20%);
+  }
+
+  cursor: pointer;
+}
+
+/**********************************************
+* Media
+**********************************************/
+
+img, canvas, iframe, video, svg {
+  max-width: 100%;
+}
+
+svg {
+  polyline {
+    stroke: @colorforeground;
+    fill: none;
+  }
+  text {
+    stroke: @colorforeground;
+    fill: @colorforeground;
+  }
+}
+
+iframe {
+  width: 100%;
+  height: 25em;
+  background-color: white;
+}
+
+img {
+  image-orientation: from-image;
+}
+
+
+/**********************************************
+* Gadget: panel
+**********************************************/
+div[data-gadget-scope='panel'] {
+
+  background-color: @panelbackgroundcolor;
+
+  @media @smartphone, @tablet {
+    box-shadow: 5px 0 5px rgba(0,0,0,.15);
+  }
+  color: @white;
+
+  width: @panelwidth;
+  min-height: 100%;
+  max-height: none;
+  position: fixed;
+  top: 0;
+  left: 0;
+  display: block;
+  z-index: 2000;
+
+  @media @smartphone, @tablet {
+    left: -@panelwidth - 1em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+    &.visible {
+      transform: translate3d(@panelwidth + 1em, 0, 0);
+    }
+  }
+
+
+  div[data-role="header"] {
+    display: flex;
+    justify-content: flex-start;
+
+    .panel_img {
+      text-align: center;
+      flex: 1;
+      height: @headerheight;
+    }
+    button, a {
+
+      .hide_text();
+      background-color: @panelbackgroundcolor;
+
+
+      &::before {
+        float: left;
+        text-indent: 0;
+        margin-left: 1em;
+      }
+
+      @media @desktop {
+        &[data-i18n="Close"] {
+          display: none;
+        }
+      }
+
+      display: block;
+
+      line-height: @headerheight;
+      color: @white;
+    }
+  }
+
+  img {
+    text-align: left;
+    height: 100%;
+  }
+
+
+
+  ul {
+    margin-top: @headerheight;
+    li {
+      a {
+        color: @white;
+        padding: .4em;
+        padding-left: 1em;
+        display: block;
+        text-overflow: ellipsis;
+        overflow: hidden;
+        white-space: nowrap; 
+
+        &::before {
+          width: @mainpaddingdesktop;
+        }
+        &:hover, &:active {
+          background-color: darken(@panelbackgroundcolor, 10%);
+        }
+      }
+    }
+  }
+
+}
+
+/**********************************************
+* Gadget: editor panel
+**********************************************/
+
+div[data-gadget-scope='editor_panel'] {
+
+  background-color: @colorbackground;
+
+  width: @panelwidth;
+  min-height: 100%;
+  max-height: none;
+  position: fixed;
+  top: 0;
+  display: block;
+  z-index: 3000;
+
+  @media @desktop {
+    left: -@panelwidth - 1em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+    &.visible {
+      transform: translate3d(@panelwidth + 1em, 0, 0);
+    }
+    box-shadow: 5px 0 5px rgba(0,0,0,.15);
+  }
+  @media @smartphone, @tablet {
+    right: -@panelwidth - 1em;
+    transition: transform 200ms ease-out;
+    transform: translate3d(0, 0, 0);
+    &.visible {
+      transform: translate3d(-@panelwidth - 1em, 0, 0);
+    }
+    box-shadow: -5px 0 5px rgba(0,0,0,.15);
+  }
+
+
+
+  div[data-role="header"] {
+
+    display: flex;
+    justify-content: space-between;
+
+    h1 {
+      text-align: left;
+      line-height: @headerheight;
+      max-height: @headerheight;
+    }
+
+    button, a {
+
+      .hide_text();
+
+      &::before {
+        float: left;
+        text-indent: 0;
+        margin-left: 1em;
+      }
+
+      display: block;
+
+      line-height: @headerheight;
+    }
+  }
+
+  section {
+    padding: 1em;
+
+    fieldset {
+      & > div {
+        display: inline-block;
+      }
+      label {
+        display: inline-block;
+        text-align: center;
+        font-size: 0.8em;
+      }
+      input[type="radio"] {
+        display: inline-block;
+      }
+    }
+
+    .filter_item_container, .sort_item_container {
+      & > div {
+        display: flex;
+        align-items: flex-start;
+        padding: 0.5em 0;
+
+        .filter_item, .sort_item {
+          flex: 1;
+        }
+      }
+    }
+
+    button {
+
+      // Copy pasted from listbox buttons
+      padding: 0.5em;
+      border: 1px solid rgba(0, 0, 0, 0.14);
+      border-radius: @radius;
+
+      margin-right: 0.5em;
+      &:last-of-type {
+        margin-right: 0;
+      }
+
+      .hide_text(@width: 2em);
+
+      &::before {
+        margin-right: 0.4em;
+
+        float: left;
+        text-indent: 0;
+      }
+
+    }
+  }
+
+}
+
+
+/**********************************************
+* Gadget: header
+**********************************************/
+div[data-gadget-scope='header'] .ui-header {
+
+  position: fixed;
+  z-index: 1000;
+  text-align: center;
+
+  @media @tablet, @smartphone {
+    display: flex;
+    flex-flow: row wrap;
+  }
+  @media @desktop {
+    display: table;
+    margin-left: @panelwidth;
+  }
+
+  // Prevent the header to have a width higher than the screen
+  width: 100%;
+
+  color: @white;
+
+  button, a {
+    color: @white;
+    background-color: @colorheaderbackground;
+    &:hover, &:active {
+      background-color: lighten(@colorheaderbackground, 20%);
+    }
+  }
+
+  // XXX TODO: restore border to separate title from button/links
+  & > .ui-btn-left {
+    button, a {
+      border-right: 1px solid rgba(255, 255, 255, 0.55);
+    }
+  }
+
+  .ui-controlgroup-controls {
+
+    button, a {
+      display: block;
+
+      line-height: @headerheight;
+
+      // https://css-tricks.com/forums/topic/hide-text-but-not-the-before-pseudo-class/
+      // Default size
+      width: 8em;
+      @media @smartphone {
+        .hide_text();
+      }
+
+      &::before {
+        margin-right: 0.4em;
+
+        @media @smartphone {
+          float: left;
+          text-indent: 0;
+          margin-left: 1em;
+        }
+      }
+
+      &[name="panel"] {
+        @media @desktop {
+          display: none;
+        }
+      }
+
+    }
+  }
+
+  & > .ui-btn-right {
+    button, a {
+      background-color: #F60;
+      @media @smartphone, @tablet {
+        border-left: 1px solid rgba(255, 255, 255, 0.55);
+      }
+    }
+    @media @desktop {
+      display: table-footer-group;
+      button, a {
+        margin: 0.5em;
+        margin-left: @mainpaddingdesktop;
+      }
+    }
+  }
+
+  h1 {
+    text-align: left;
+    line-height: @headerheight;
+    flex: 1;
+
+    background-color: @colorheaderbackground;
+
+    // XXX Restore border
+    // border-left: 1px solid rgba(255, 255, 255, 0.55);
+    // border-right: 1px solid rgba(255, 255, 255, 0.55);
+
+    // Do not put title on multi line in case of small screen
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+
+    // Title which is not a link
+    & > span {
+      padding-left: @headertitleleftlargemargin;
+      @media @smartphone {
+        padding-left: @headertitleleftsmallmargin;
+      }
+      @media @desktop {
+        padding-left: @mainpaddingdesktop;
+      }
+    }
+    // Clickable title
+    a {
+      display: block;
+
+      // Do not put link on multi line in case of small screen
+      white-space: nowrap;
+      overflow: hidden;
+      text-overflow: ellipsis;
+
+      &::before {
+        display: inline-block;
+        @media @tablet, @smartphone {
+          text-align: center;
+        }
+        @media @desktop {
+          padding-left: @mainpaddingdesktop;
+        }
+
+        width: @headertitleleftlargemargin;
+        @media @smartphone {
+          width: @headertitleleftsmallmargin
+        }
+
+      }
+
+    }
+  }
+
+
+  .ui-subheader {
+    @media @desktop {
+      text-align: left;
+    }
+
+  }
+
+  ul {
+    width: 100%;
+    background-color: @colorsubheaderbackground;
+
+    display: table;
+    table-layout: fixed;
+
+    a {
+      background-color: @colorsubheaderbackground;
+    }
+
+    @media @desktop {
+    height: 100%;
+
+    li {
+      display: inline-block;
+      height: 100%;
+
+      a {
+        display: block;
+
+        padding-left: @mainpaddingdesktop;
+        padding-right: @mainpaddingdesktop;
+        min-width: 5em;
+
+        line-height: @headerheight;
+        height: 100%;
+
+        white-space: nowrap;
+        overflow: hidden;
+
+        &::before {
+          display: none;
+        }
+
+      }
+    }
+    }
+
+    @media @tablet {
+      li {
+        display: table-cell;
+        border-left: 1px solid rgba(0, 0, 0, 0.55);
+
+        &:first-child {
+          border-left: none;
+        }
+        a {
+          display: block;
+
+          padding-top: 0.4em;
+          padding-bottom: 0.4em;
+
+          white-space: nowrap;
+          overflow: hidden;
+
+          &::before {
+            font-size: 1.2em;
+            padding-bottom: 0.3em;
+            display: block;
+          }
+        }
+      }
+    }
+
+
+
+    @media @smartphone {
+    li {
+      line-height: @headerheight;
+
+      display: table-cell;
+      border-left: 1px solid rgba(0, 0, 0, 0.55);
+
+      &:first-child {
+        border-left: none;
+      }
+      a {
+        display: block;
+
+        text-align: center;
+        vertical-align: middle;
+        font-size: 1.5em;
+
+        padding-top: 0.4em;
+        padding-bottom: 0.4em;
+
+        .hide_text(@width: false);
+
+        &::before {
+          float: left;
+          text-indent: 0;
+          width: 100%;
+        }
+
+      }
+    }
+    }
+
+  }
+
+}
+
+/**********************************************
+* Gadget: main
+**********************************************/
+.gadget-content {
+
+
+  input[type='submit'] {
+    padding: 0.4em;
+    line-height: 1.4em;
+
+    background-color: @panelbackgroundcolor;
+    color: @white;
+
+    border-radius: @radius;
+    border-width: 1px;
+    border-style: solid;
+
+    min-width: 8em;
+
+    &:hover, &:focus {
+      background-color: lighten(@panelbackgroundcolor, 10%);
+    }
+    &:active {
+      background-color: lighten(@panelbackgroundcolor, 20%);
+    }
+  }
+
+
+  @media @desktop {
+    // Keep the panel always visible
+    margin-left: @panelwidth;
+  }
+
+  // Top padding
+  padding: @mainpaddingdesktop;
+  padding-top: 9em;
+  @media @smartphone {
+    padding: 0.5em;
+    padding-top: 8em;
+  }
+
+  // Label
+
+  .ui-field-contain {
+    padding: 0.5em 0;
+
+    div {
+      width: 100%;
+    }
+
+    label {
+      margin: 0 0 0.4em;
+    }
+  }
+
+  .ui-content-title {
+    font-size: 150%;
+  }
+
+  ul.document-listview {
+    margin-bottom: 2em;
+    li {
+      border-color: rgba(0, 0, 0, 0.3);
+      border-width: 1px;
+      border-style: solid;
+      border-bottom-style: none;
+      box-shadow: 0 1px 3px rgba(0,0,0,.15);
+  
+      &:not(.ui-li-has-count) {
+        a {
+          &:after {
+            font-family: FontAwesome;
+            content: "\f0da";
+            text-align: right;
+            float:right;
+            position: absolute;
+            right: 1.5em;
+          }
+        }
+      }
+
+      a {
+        display: block;
+        position: relative;
+        padding: 0.7em 1em;
+        padding-right: 2.5em;
+
+        color: #222222;
+
+        white-space: nowrap;
+        overflow: hidden;
+        text-overflow: ellipsis;
+
+        &:hover, &:active {
+          background-color: @colorblocklinkbackground;
+        }
+      }
+      &:first-child {
+        border-top-left-radius: @radius;
+        border-top-right-radius: @radius;
+      }
+      &:last-child {
+        border-bottom-left-radius: @radius;
+        border-bottom-right-radius: @radius;
+        border-bottom-style: solid;
+      }
+
+      .ui-li-count {
+        float: right;
+        padding: 0 0.5em;
+        border: 1px solid rgba(0, 0, 0, 0.14);
+        border-radius: @radius;
+        position: absolute;
+        right: .5em;
+      }
+
+    }
+  }
+
+  @media @desktop {
+    .left, .right {
+      vertical-align: top;
+      display: inline-block;
+      width: 50%;
+    }
+    .right {
+      padding-left: 2%;
+    }
+  }
+
+  @media @tablet, @desktop {
+    // Label
+    .ui-field-contain {
+      display: flex;
+      label {
+        flex: 1;
+      }
+      label + div {
+        flex: 3;
+      }
+    }
+  }
+  @media @desktop {
+    // Align field on the left group's field
+    .center {
+      .ui-field-contain {
+        label + div {
+          flex: 7;
+        }
+      }
+    }
+  }
+
+  @media @smartphone {
+    .ui-field-contain {
+      padding: 0.8em 0;
+      // make sure there is a bottom border
+      // XXX TODO: border should be visible only if not input
+      // border-bottom: 1px solid rgba(0, 0, 0, 0.15);
+    }
+  }
+
+  /* form validation (assuming label>span is used) */
+  form label span {
+    color: red;
+  }
+
+}
+
+/**********************************************
+* Gadget: relation field
+**********************************************/
+.relation-input {
+  display: flex;
+  a {
+      .hide_text();
+
+      &::before {
+        float: left;
+        text-indent: 0;
+        margin-left: 1em;
+      }
+
+      display: block;
+
+      line-height: @headerheight;
+
+  }
+
+  div {
+    position: relative;
+  }
+  ul {
+    position: absolute;
+    display: block;
+    width: 100%;
+    z-index: 501;
+    li {
+      cursor: pointer;
+
+      background-color: @panelbackgroundcolor;
+
+      color: @white;
+      padding: .4em;
+      padding-left: 1em;
+      display: block;
+      text-overflow: ellipsis;
+      overflow: hidden;
+      white-space: nowrap; 
+
+      &::before {
+        width: @mainpaddingdesktop;
+      }
+      &:hover, &:active {
+        background-color: darken(@panelbackgroundcolor, 10%);
+      }
+
+    }
+  }
+}
+
+/**********************************************
+* Listbox
+**********************************************/
+div[data-gadget-scope='erp5_searchfield'] {
+  .ui-input-text {
+    display: flex;
+  }
+  button {
+    margin-left: 0.5em;
+    padding: 0.5em;
+    padding-left: 0;
+  }
+}
+
+.document_table {
+
+  .ui-table-header {
+    display: flex;
+    padding-bottom: 0.5em;
+    @media @smartphone {
+      border-bottom: 2px solid rgba(0, 0, 0, 0.14902);
+    }
+
+    h1 {
+      // XXX TODO Same color than label
+      color: @grey;
+      flex: 2;
+      align-self: flex-end;
+    }
+    button {
+      padding: 0.5em;
+      border: 1px solid rgba(0, 0, 0, 0.14);
+      border-radius: @radius;
+
+      margin-right: 0.5em;
+      &:last-of-type {
+        margin-right: 0;
+      }
+
+      @media @smartphone {
+        .hide_text(@width: 2em);
+      }
+
+      &::before {
+        margin-right: 0.4em;
+
+        @media @smartphone {
+          float: left;
+          text-indent: 0;
+        }
+      }
+    }
+  }
+
+  table {
+    width: 100%;
+    text-align: left;
+
+    th, td {
+      line-height: 1.5em;
+      vertical-align: middle;
+    }
+
+    thead {
+      background-color: @colorsubheaderbackground;
+      color: @white;
+
+
+      // XXX Same than cells
+      tr { th {
+      padding: 0.4em 0.25em;
+      }}
+
+      // text-align: center;
+
+      @media @smartphone {
+        display: none;
+      }
+    }
+
+    a {
+      color: @colorforeground;
+    }
+
+    tbody {
+
+      tr {
+        &:nth-child(even) {
+          background-color: darken(@colorbackground, 5%);
+        }
+        &:hover, &:active {
+          background-color: @colorblocklinkbackground
+        }
+      }
+
+      @media @desktop, @tablet {
+        a {
+          display: block;
+          padding: 0.4em 0.25em;
+        }
+      }
+
+      @media @smartphone {
+        tr {
+          // each row becomes a table, now block
+          display: block;
+          overflow: hidden;
+          width: 100%;
+          height: 4em;
+          position: relative;
+
+          td, th {
+            // all cells inline-block
+            display: inline-block;
+
+            &:first-child {
+              // first cell must be locked
+              display: inline-block;
+              width: 100%;
+
+              a {
+                // stretch first link to full width (positioned relative to <tr>)
+                position: absolute;
+                width: 100%;
+                top: 0;
+                bottom: 0;
+                overflow: hidden;
+                white-space: nowrap;
+                text-overflow: ellipsis;
+
+                &:after {
+                  // XXX copy/pasted
+                  font-family: FontAwesome;
+                  content: "\f0da";
+                  font-size: 1.25em;
+                  position: absolute;
+                  right: 0.5em;
+                  top: 50%;
+                  margin-top: -0.75em;
+
+                  background-color: @colorbackground;
+                  border-radius: 0.5em;
+                  width: 1em;
+                  text-align: center;
+                  line-height: 1em;
+                }
+
+              }
+
+              ~ th, ~ td {
+                // set line height on cells after first row
+                font-size: 0.8em;
+
+                a {
+                  pointer-events: none;
+                }
+
+                &:not(:last-child) a:not(:empty):after {
+                  // add tide
+                  content: " ~ ";
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+
+
+    tfoot .ui-controlgroup-controls {
+      display: flex;
+      padding-top: 0.5em;
+      border-top: 2px solid rgba(0, 0, 0, 0.14902);
+
+      span {
+        opacity: .3;
+        flex: 2;
+        text-align: right;
+      }
+      a {
+        padding: 0.5em;
+        border: 1px solid rgba(0, 0, 0, 0.14);
+        border-radius: @radius;
+
+        margin-right: 0.5em;
+        &:last-of-type {
+          margin-right: 0;
+        }
+
+        &:hover, &:active {
+          background-color: @colorblocklinkbackground;
+        }
+
+        @media @smartphone {
+          .hide_text(@width: 2em);
+        }
+
+        &::before {
+          margin-right: 0.4em;
+
+          @media @smartphone {
+            float: left;
+            text-indent: 0.3em;
+          }
+        }
+      }
+    }
+
+  }
+}
+
+/**********************************************
+* JQM
+**********************************************/
+.ui-disabled {
+  opacity: .3;
+  cursor: default;
+  pointer-events: none;
+}
+
+.ui-screen-hidden {
+  display: none;
+}
+
+/**********************************************
+* Keyframes
+**********************************************/
+@keyframes spin {
+    from {transform:rotate(0deg);}
+    to {transform:rotate(360deg);}
+}
+
+/**********************************************
+* Icons
+**********************************************/
+.ui-btn-icon-top, .ui-btn-icon-left, .ui-btn-icon-right, .ui-icon, .ui-btn-icon-notext {
+  &::before {
+    font-family: FontAwesome;
+    display: inline-block;
+    content: "";
+  }
+}
+
+.ui-icon-warning {
+  // XXX does not work...
+  background: none repeat scroll 0 0 #e4ebf1;
+  border-color: rgba(0, 0, 0, 0.3);
+  color: #777;
+  &::before {
+    content: "\f071";
+  }
+}
+
+.ui-icon-spinner {
+  // Don't fade spinner
+  opacity: 1;
+  &::before {
+    content: "\f110";
+    animation: spin .5s infinite linear;
+  }
+}
+
+
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.ui-icon-glass::before {
+  content: "\f000";
+}
+.ui-icon-music::before {
+  content: "\f001";
+}
+.ui-icon-search::before {
+  content: "\f002";
+}
+.ui-icon-envelope-o::before {
+  content: "\f003";
+}
+.ui-icon-heart::before {
+  content: "\f004";
+}
+.ui-icon-star::before {
+  content: "\f005";
+}
+.ui-icon-star-o::before {
+  content: "\f006";
+}
+.ui-icon-user::before {
+  content: "\f007";
+}
+.ui-icon-film::before {
+  content: "\f008";
+}
+.ui-icon-th-large::before {
+  content: "\f009";
+}
+.ui-icon-th::before {
+  content: "\f00a";
+}
+.ui-icon-th-list::before {
+  content: "\f00b";
+}
+.ui-icon-check::before {
+  content: "\f00c";
+}
+.ui-icon-times::before,
+.ui-icon-delete::before {
+  content: "\f00d";
+}
+.ui-icon-search-plus::before {
+  content: "\f00e";
+}
+.ui-icon-search-minus::before {
+  content: "\f010";
+}
+.ui-icon-power-off::before {
+  content: "\f011";
+}
+.ui-icon-signal::before {
+  content: "\f012";
+}
+.ui-icon-gear::before,
+.ui-icon-cog::before {
+  content: "\f013";
+}
+.ui-icon-trash-o::before {
+  content: "\f014";
+}
+.ui-icon-home::before {
+  content: "\f015";
+}
+.ui-icon-file-o::before {
+  content: "\f016";
+}
+.ui-icon-clock-o::before {
+  content: "\f017";
+}
+.ui-icon-road::before {
+  content: "\f018";
+}
+.ui-icon-download::before {
+  content: "\f019";
+}
+.ui-icon-arrow-circle-o-down::before {
+  content: "\f01a";
+}
+.ui-icon-arrow-circle-o-up::before {
+  content: "\f01b";
+}
+.ui-icon-inbox::before {
+  content: "\f01c";
+}
+.ui-icon-play-circle-o::before {
+  content: "\f01d";
+}
+.ui-icon-rotate-right::before,
+.ui-icon-repeat::before {
+  content: "\f01e";
+}
+.ui-icon-refresh::before {
+  content: "\f021";
+}
+.ui-icon-list-alt::before {
+  content: "\f022";
+}
+.ui-icon-lock::before {
+  content: "\f023";
+}
+.ui-icon-flag::before {
+  content: "\f024";
+}
+.ui-icon-headphones::before {
+  content: "\f025";
+}
+.ui-icon-volume-off::before {
+  content: "\f026";
+}
+.ui-icon-volume-down::before {
+  content: "\f027";
+}
+.ui-icon-volume-up::before {
+  content: "\f028";
+}
+.ui-icon-qrcode::before {
+  content: "\f029";
+}
+.ui-icon-barcode::before {
+  content: "\f02a";
+}
+.ui-icon-tag::before {
+  content: "\f02b";
+}
+.ui-icon-tags::before {
+  content: "\f02c";
+}
+.ui-icon-book::before {
+  content: "\f02d";
+}
+.ui-icon-bookmark::before {
+  content: "\f02e";
+}
+.ui-icon-print::before {
+  content: "\f02f";
+}
+.ui-icon-camera::before {
+  content: "\f030";
+}
+.ui-icon-font::before {
+  content: "\f031";
+}
+.ui-icon-bold::before {
+  content: "\f032";
+}
+.ui-icon-italic::before {
+  content: "\f033";
+}
+.ui-icon-text-height::before {
+  content: "\f034";
+}
+.ui-icon-text-width::before {
+  content: "\f035";
+}
+.ui-icon-align-left::before {
+  content: "\f036";
+}
+.ui-icon-align-center::before {
+  content: "\f037";
+}
+.ui-icon-align-right::before {
+  content: "\f038";
+}
+.ui-icon-align-justify::before {
+  content: "\f039";
+}
+.ui-icon-list::before {
+  content: "\f03a";
+}
+.ui-icon-dedent::before,
+.ui-icon-outdent::before {
+  content: "\f03b";
+}
+.ui-icon-indent::before {
+  content: "\f03c";
+}
+.ui-icon-video-camera::before {
+  content: "\f03d";
+}
+.ui-icon-photo::before,
+.ui-icon-image::before,
+.ui-icon-picture-o::before {
+  content: "\f03e";
+}
+.ui-icon-pencil::before {
+  content: "\f040";
+}
+.ui-icon-map-marker::before {
+  content: "\f041";
+}
+.ui-icon-adjust::before {
+  content: "\f042";
+}
+.ui-icon-tint::before {
+  content: "\f043";
+}
+.ui-icon-edit::before,
+.ui-icon-pencil-square-o::before {
+  content: "\f044";
+}
+.ui-icon-share-square-o::before {
+  content: "\f045";
+}
+.ui-icon-check-square-o::before,
+.ui-icon-checkbox-on::before,
+.ui-checkbox-on::before {
+  content: "\f046";
+}
+.ui-icon-arrows::before {
+  content: "\f047";
+}
+.ui-icon-step-backward::before {
+  content: "\f048";
+}
+.ui-icon-fast-backward::before {
+  content: "\f049";
+}
+.ui-icon-backward::before {
+  content: "\f04a";
+}
+.ui-icon-play::before {
+  content: "\f04b";
+}
+.ui-icon-pause::before {
+  content: "\f04c";
+}
+.ui-icon-stop::before {
+  content: "\f04d";
+}
+.ui-icon-forward::before {
+  content: "\f04e";
+}
+.ui-icon-fast-forward::before {
+  content: "\f050";
+}
+.ui-icon-step-forward::before {
+  content: "\f051";
+}
+.ui-icon-eject::before {
+  content: "\f052";
+}
+.ui-icon-chevron-left::before {
+  content: "\f053";
+}
+.ui-icon-chevron-right::before {
+  content: "\f054";
+}
+.ui-icon-plus-circle::before {
+  content: "\f055";
+}
+.ui-icon-minus-circle::before {
+  content: "\f056";
+}
+.ui-icon-times-circle::before {
+  content: "\f057";
+}
+.ui-icon-check-circle::before {
+  content: "\f058";
+}
+.ui-icon-question-circle::before {
+  content: "\f059";
+}
+.ui-icon-info-circle::before {
+  content: "\f05a";
+}
+.ui-icon-crosshairs::before {
+  content: "\f05b";
+}
+.ui-icon-times-circle-o::before {
+  content: "\f05c";
+}
+.ui-icon-check-circle-o::before,
+.ui-icon-radio-off::before,
+.ui-radio-on::before {
+  content: "\f05d";
+}
+.ui-icon-ban::before {
+  content: "\f05e";
+}
+.ui-icon-arrow-left::before {
+  content: "\f060";
+}
+.ui-icon-arrow-right::before {
+  content: "\f061";
+}
+.ui-icon-arrow-up::before {
+  content: "\f062";
+}
+.ui-icon-arrow-down::before {
+  content: "\f063";
+}
+.ui-icon-mail-forward::before,
+.ui-icon-share::before {
+  content: "\f064";
+}
+.ui-icon-expand::before {
+  content: "\f065";
+}
+.ui-icon-compress::before {
+  content: "\f066";
+}
+.ui-icon-plus::before {
+  content: "\f067";
+}
+.ui-icon-minus::before {
+  content: "\f068";
+}
+.ui-icon-asterisk::before {
+  content: "\f069";
+}
+.ui-icon-exclamation-circle::before {
+  content: "\f06a";
+}
+.ui-icon-gift::before {
+  content: "\f06b";
+}
+.ui-icon-leaf::before {
+  content: "\f06c";
+}
+.ui-icon-fire::before {
+  content: "\f06d";
+}
+.ui-icon-eye::before {
+  content: "\f06e";
+}
+.ui-icon-eye-slash::before {
+  content: "\f070";
+}
+.ui-icon-exclamation-triangle::before {
+  content: "\f071";
+}
+.ui-icon-plane::before {
+  content: "\f072";
+}
+.ui-icon-calendar::before {
+  content: "\f073";
+}
+.ui-icon-random::before {
+  content: "\f074";
+}
+.ui-icon-comment::before {
+  content: "\f075";
+}
+.ui-icon-magnet::before {
+  content: "\f076";
+}
+.ui-icon-chevron-up::before {
+  content: "\f077";
+}
+.ui-icon-chevron-down::before {
+  content: "\f078";
+}
+.ui-icon-retweet::before {
+  content: "\f079";
+}
+.ui-icon-shopping-cart::before {
+  content: "\f07a";
+}
+.ui-icon-folder::before {
+  content: "\f07b";
+}
+.ui-icon-folder-open::before {
+  content: "\f07c";
+}
+.ui-icon-arrows-v::before {
+  content: "\f07d";
+}
+.ui-icon-arrows-h::before {
+  content: "\f07e";
+}
+.ui-icon-bar-chart-o::before {
+  content: "\f080";
+}
+.ui-icon-twitter-square::before {
+  content: "\f081";
+}
+.ui-icon-facebook-square::before {
+  content: "\f082";
+}
+.ui-icon-camera-retro::before {
+  content: "\f083";
+}
+.ui-icon-key::before {
+  content: "\f084";
+}
+.ui-icon-gears::before,
+.ui-icon-cogs::before {
+  content: "\f085";
+}
+.ui-icon-comments::before {
+  content: "\f086";
+}
+.ui-icon-thumbs-o-up::before {
+  content: "\f087";
+}
+.ui-icon-thumbs-o-down::before {
+  content: "\f088";
+}
+.ui-icon-star-half::before {
+  content: "\f089";
+}
+.ui-icon-heart-o::before {
+  content: "\f08a";
+}
+.ui-icon-sign-out::before {
+  content: "\f08b";
+}
+.ui-icon-linkedin-square::before {
+  content: "\f08c";
+}
+.ui-icon-thumb-tack::before {
+  content: "\f08d";
+}
+.ui-icon-external-link::before {
+  content: "\f08e";
+}
+.ui-icon-sign-in::before {
+  content: "\f090";
+}
+.ui-icon-trophy::before {
+  content: "\f091";
+}
+.ui-icon-github-square::before {
+  content: "\f092";
+}
+.ui-icon-upload::before {
+  content: "\f093";
+}
+.ui-icon-lemon-o::before {
+  content: "\f094";
+}
+.ui-icon-phone::before {
+  content: "\f095";
+}
+.ui-icon-square-o::before,
+.ui-icon-checkbox-off::before,
+.ui-checkbox-off::before {
+  content: "\f096";
+}
+.ui-icon-bookmark-o::before {
+  content: "\f097";
+}
+.ui-icon-phone-square::before {
+  content: "\f098";
+}
+.ui-icon-twitter::before {
+  content: "\f099";
+}
+.ui-icon-facebook::before {
+  content: "\f09a";
+}
+.ui-icon-github::before {
+  content: "\f09b";
+}
+.ui-icon-unlock::before {
+  content: "\f09c";
+}
+.ui-icon-credit-card::before {
+  content: "\f09d";
+}
+.ui-icon-rss::before {
+  content: "\f09e";
+}
+.ui-icon-hdd-o::before {
+  content: "\f0a0";
+}
+.ui-icon-bullhorn::before {
+  content: "\f0a1";
+}
+.ui-icon-bell::before {
+  content: "\f0f3";
+}
+.ui-icon-certificate::before {
+  content: "\f0a3";
+}
+.ui-icon-hand-o-right::before {
+  content: "\f0a4";
+}
+.ui-icon-hand-o-left::before {
+  content: "\f0a5";
+}
+.ui-icon-hand-o-up::before {
+  content: "\f0a6";
+}
+.ui-icon-hand-o-down::before {
+  content: "\f0a7";
+}
+.ui-icon-arrow-circle-left::before {
+  content: "\f0a8";
+}
+.ui-icon-arrow-circle-right::before {
+  content: "\f0a9";
+}
+.ui-icon-arrow-circle-up::before {
+  content: "\f0aa";
+}
+.ui-icon-arrow-circle-down::before {
+  content: "\f0ab";
+}
+.ui-icon-globe::before {
+  content: "\f0ac";
+}
+.ui-icon-wrench::before {
+  content: "\f0ad";
+}
+.ui-icon-tasks::before {
+  content: "\f0ae";
+}
+.ui-icon-filter::before {
+  content: "\f0b0";
+}
+.ui-icon-briefcase::before {
+  content: "\f0b1";
+}
+.ui-icon-arrows-alt::before {
+  content: "\f0b2";
+}
+.ui-icon-group::before,
+.ui-icon-users::before {
+  content: "\f0c0";
+}
+.ui-icon-chain::before,
+.ui-icon-link::before {
+  content: "\f0c1";
+}
+.ui-icon-cloud::before {
+  content: "\f0c2";
+}
+.ui-icon-flask::before {
+  content: "\f0c3";
+}
+.ui-icon-cut::before,
+.ui-icon-scissors::before {
+  content: "\f0c4";
+}
+.ui-icon-copy::before,
+.ui-icon-files-o::before {
+  content: "\f0c5";
+}
+.ui-icon-paperclip::before {
+  content: "\f0c6";
+}
+.ui-icon-save::before,
+.ui-icon-floppy-o::before {
+  content: "\f0c7";
+}
+.ui-icon-square::before {
+  content: "\f0c8";
+}
+.ui-icon-navicon::before,
+.ui-icon-reorder::before,
+.ui-icon-bars::before {
+  content: "\f0c9";
+}
+.ui-icon-list-ul::before {
+  content: "\f0ca";
+}
+.ui-icon-list-ol::before {
+  content: "\f0cb";
+}
+.ui-icon-strikethrough::before {
+  content: "\f0cc";
+}
+.ui-icon-underline::before {
+  content: "\f0cd";
+}
+.ui-icon-table::before {
+  content: "\f0ce";
+}
+.ui-icon-magic::before {
+  content: "\f0d0";
+}
+.ui-icon-truck::before {
+  content: "\f0d1";
+}
+.ui-icon-pinterest::before {
+  content: "\f0d2";
+}
+.ui-icon-pinterest-square::before {
+  content: "\f0d3";
+}
+.ui-icon-google-plus-square::before {
+  content: "\f0d4";
+}
+.ui-icon-google-plus::before {
+  content: "\f0d5";
+}
+.ui-icon-money::before {
+  content: "\f0d6";
+}
+.ui-icon-caret-down::before,
+.ui-icon-carat-d::before {
+  content: "\f0d7";
+}
+.ui-icon-caret-up::before,
+hmtl .ui-icon-carat-u::before{
+  content: "\f0d8";
+}
+.ui-icon-caret-left::before,
+.ui-icon-carat-l::before {
+  content: "\f0d9";
+}
+.ui-icon-caret-right::before,
+.ui-icon-carat-r::before {
+  content: "\f0da";
+}
+.ui-icon-columns::before {
+  content: "\f0db";
+}
+.ui-icon-unsorted::before,
+.ui-icon-sort::before {
+  content: "\f0dc";
+}
+.ui-icon-sort-down::before,
+.ui-icon-sort-desc::before {
+  content: "\f0dd";
+}
+.ui-icon-sort-up::before,
+.ui-icon-sort-asc::before {
+  content: "\f0de";
+}
+.ui-icon-envelope::before {
+  content: "\f0e0";
+}
+.ui-icon-linkedin::before {
+  content: "\f0e1";
+}
+.ui-icon-rotate-left::before,
+.ui-icon-undo::before {
+  content: "\f0e2";
+}
+.ui-icon-legal::before,
+.ui-icon-gavel::before {
+  content: "\f0e3";
+}
+.ui-icon-dashboard::before,
+.ui-icon-tachometer::before {
+  content: "\f0e4";
+}
+.ui-icon-comment-o::before {
+  content: "\f0e5";
+}
+.ui-icon-comments-o::before {
+  content: "\f0e6";
+}
+.ui-icon-flash::before,
+.ui-icon-bolt::before {
+  content: "\f0e7";
+}
+.ui-icon-sitemap::before {
+  content: "\f0e8";
+}
+.ui-icon-umbrella::before {
+  content: "\f0e9";
+}
+.ui-icon-paste::before,
+.ui-icon-clipboard::before {
+  content: "\f0ea";
+}
+.ui-icon-lightbulb-o::before {
+  content: "\f0eb";
+}
+.ui-icon-exchange::before {
+  content: "\f0ec";
+}
+.ui-icon-cloud-download::before {
+  content: "\f0ed";
+}
+.ui-icon-cloud-upload::before {
+  content: "\f0ee";
+}
+.ui-icon-user-md::before {
+  content: "\f0f0";
+}
+.ui-icon-stethoscope::before {
+  content: "\f0f1";
+}
+.ui-icon-suitcase::before {
+  content: "\f0f2";
+}
+.ui-icon-bell-o::before {
+  content: "\f0a2";
+}
+.ui-icon-coffee::before {
+  content: "\f0f4";
+}
+.ui-icon-cutlery::before {
+  content: "\f0f5";
+}
+.ui-icon-file-text-o::before {
+  content: "\f0f6";
+}
+.ui-icon-building-o::before {
+  content: "\f0f7";
+}
+.ui-icon-hospital-o::before {
+  content: "\f0f8";
+}
+.ui-icon-ambulance::before {
+  content: "\f0f9";
+}
+.ui-icon-medkit::before {
+  content: "\f0fa";
+}
+.ui-icon-fighter-jet::before {
+  content: "\f0fb";
+}
+.ui-icon-beer::before {
+  content: "\f0fc";
+}
+.ui-icon-h-square::before {
+  content: "\f0fd";
+}
+.ui-icon-plus-square::before {
+  content: "\f0fe";
+}
+.ui-icon-angle-double-left::before {
+  content: "\f100";
+}
+.ui-icon-angle-double-right::before {
+  content: "\f101";
+}
+.ui-icon-angle-double-up::before {
+  content: "\f102";
+}
+.ui-icon-angle-double-down::before {
+  content: "\f103";
+}
+.ui-icon-angle-left::before {
+  content: "\f104";
+}
+.ui-icon-angle-right::before {
+  content: "\f105";
+}
+.ui-icon-angle-up::before {
+  content: "\f106";
+}
+.ui-icon-angle-down::before {
+  content: "\f107";
+}
+.ui-icon-desktop::before {
+  content: "\f108";
+}
+.ui-icon-laptop::before {
+  content: "\f109";
+}
+.ui-icon-tablet::before {
+  content: "\f10a";
+}
+.ui-icon-mobile-phone::before,
+.ui-icon-mobile::before {
+  content: "\f10b";
+}
+.ui-icon-circle-o::before,
+.ui-radio-off::before {
+  content: "\f10c";
+}
+.ui-icon-quote-left::before {
+  content: "\f10d";
+}
+.ui-icon-quote-right::before {
+  content: "\f10e";
+}
+.ui-icon-circle::before {
+  content: "\f111";
+}
+.ui-icon-mail-reply::before,
+.ui-icon-reply::before {
+  content: "\f112";
+}
+.ui-icon-github-alt::before {
+  content: "\f113";
+}
+.ui-icon-folder-o::before {
+  content: "\f114";
+}
+.ui-icon-folder-open-o::before {
+  content: "\f115";
+}
+.ui-icon-smile-o::before {
+  content: "\f118";
+}
+.ui-icon-frown-o::before {
+  content: "\f119";
+}
+.ui-icon-meh-o::before {
+  content: "\f11a";
+}
+.ui-icon-gamepad::before {
+  content: "\f11b";
+}
+.ui-icon-keyboard-o::before {
+  content: "\f11c";
+}
+.ui-icon-flag-o::before {
+  content: "\f11d";
+}
+.ui-icon-flag-checkered::before {
+  content: "\f11e";
+}
+.ui-icon-terminal::before {
+  content: "\f120";
+}
+.ui-icon-code::before {
+  content: "\f121";
+}
+.ui-icon-mail-reply-all::before,
+.ui-icon-reply-all::before {
+  content: "\f122";
+}
+.ui-icon-star-half-empty::before,
+.ui-icon-star-half-full::before,
+.ui-icon-star-half-o::before {
+  content: "\f123";
+}
+.ui-icon-location-arrow::before {
+  content: "\f124";
+}
+.ui-icon-crop::before {
+  content: "\f125";
+}
+.ui-icon-code-fork::before {
+  content: "\f126";
+}
+.ui-icon-unlink::before,
+.ui-icon-chain-broken::before {
+  content: "\f127";
+}
+.ui-icon-question::before {
+  content: "\f128";
+}
+.ui-icon-info::before {
+  content: "\f129";
+}
+.ui-icon-exclamation::before {
+  content: "\f12a";
+}
+.ui-icon-superscript::before {
+  content: "\f12b";
+}
+.ui-icon-subscript::before {
+  content: "\f12c";
+}
+.ui-icon-eraser::before {
+  content: "\f12d";
+}
+.ui-icon-puzzle-piece::before {
+  content: "\f12e";
+}
+.ui-icon-microphone::before {
+  content: "\f130";
+}
+.ui-icon-microphone-slash::before {
+  content: "\f131";
+}
+.ui-icon-shield::before {
+  content: "\f132";
+}
+.ui-icon-calendar-o::before {
+  content: "\f133";
+}
+.ui-icon-fire-extinguisher::before {
+  content: "\f134";
+}
+.ui-icon-rocket::before {
+  content: "\f135";
+}
+.ui-icon-maxcdn::before {
+  content: "\f136";
+}
+.ui-icon-chevron-circle-left::before {
+  content: "\f137";
+}
+.ui-icon-chevron-circle-right::before {
+  content: "\f138";
+}
+.ui-icon-chevron-circle-up::before {
+  content: "\f139";
+}
+.ui-icon-chevron-circle-down::before {
+  content: "\f13a";
+}
+.ui-icon-html5::before {
+  content: "\f13b";
+}
+.ui-icon-css3::before {
+  content: "\f13c";
+}
+.ui-icon-anchor::before {
+  content: "\f13d";
+}
+.ui-icon-unlock-alt::before {
+  content: "\f13e";
+}
+.ui-icon-bullseye::before {
+  content: "\f140";
+}
+.ui-icon-ellipsis-h::before {
+  content: "\f141";
+}
+.ui-icon-ellipsis-v::before {
+  content: "\f142";
+}
+.ui-icon-rss-square::before {
+  content: "\f143";
+}
+.ui-icon-play-circle::before {
+  content: "\f144";
+}
+.ui-icon-ticket::before {
+  content: "\f145";
+}
+.ui-icon-minus-square::before {
+  content: "\f146";
+}
+.ui-icon-minus-square-o::before {
+  content: "\f147";
+}
+.ui-icon-level-up::before {
+  content: "\f148";
+}
+.ui-icon-level-down::before {
+  content: "\f149";
+}
+.ui-icon-check-square::before {
+  content: "\f14a";
+}
+.ui-icon-pencil-square::before {
+  content: "\f14b";
+}
+.ui-icon-external-link-square::before {
+  content: "\f14c";
+}
+.ui-icon-share-square::before {
+  content: "\f14d";
+}
+.ui-icon-compass::before {
+  content: "\f14e";
+}
+.ui-icon-toggle-down::before,
+.ui-icon-caret-square-o-down::before {
+  content: "\f150";
+}
+.ui-icon-toggle-up::before,
+.ui-icon-caret-square-o-up::before {
+  content: "\f151";
+}
+.ui-icon-toggle-right::before,
+.ui-icon-caret-square-o-right::before {
+  content: "\f152";
+}
+.ui-icon-euro::before,
+.ui-icon-eur::before {
+  content: "\f153";
+}
+.ui-icon-gbp::before {
+  content: "\f154";
+}
+.ui-icon-dollar::before,
+.ui-icon-usd::before {
+  content: "\f155";
+}
+.ui-icon-rupee::before,
+.ui-icon-inr::before {
+  content: "\f156";
+}
+.ui-icon-cny::before,
+.ui-icon-rmb::before,
+.ui-icon-yen::before,
+.ui-icon-jpy::before {
+  content: "\f157";
+}
+.ui-icon-ruble::before,
+.ui-icon-rouble::before,
+.ui-icon-rub::before {
+  content: "\f158";
+}
+.ui-icon-won::before,
+.ui-icon-krw::before {
+  content: "\f159";
+}
+.ui-icon-bitcoin::before,
+.ui-icon-btc::before {
+  content: "\f15a";
+}
+.ui-icon-file::before {
+  content: "\f15b";
+}
+.ui-icon-file-text::before {
+  content: "\f15c";
+}
+.ui-icon-sort-alpha-asc::before {
+  content: "\f15d";
+}
+.ui-icon-sort-alpha-desc::before {
+  content: "\f15e";
+}
+.ui-icon-sort-amount-asc::before {
+  content: "\f160";
+}
+.ui-icon-sort-amount-desc::before {
+  content: "\f161";
+}
+.ui-icon-sort-numeric-asc::before {
+  content: "\f162";
+}
+.ui-icon-sort-numeric-desc::before {
+  content: "\f163";
+}
+.ui-icon-thumbs-up::before {
+  content: "\f164";
+}
+.ui-icon-thumbs-down::before {
+  content: "\f165";
+}
+.ui-icon-youtube-square::before {
+  content: "\f166";
+}
+.ui-icon-youtube::before {
+  content: "\f167";
+}
+.ui-icon-xing::before {
+  content: "\f168";
+}
+.ui-icon-xing-square::before {
+  content: "\f169";
+}
+.ui-icon-youtube-play::before {
+  content: "\f16a";
+}
+.ui-icon-dropbox::before {
+  content: "\f16b";
+}
+.ui-icon-stack-overflow::before {
+  content: "\f16c";
+}
+.ui-icon-instagram::before {
+  content: "\f16d";
+}
+.ui-icon-flickr::before {
+  content: "\f16e";
+}
+.ui-icon-adn::before {
+  content: "\f170";
+}
+.ui-icon-bitbucket::before {
+  content: "\f171";
+}
+.ui-icon-bitbucket-square::before {
+  content: "\f172";
+}
+.ui-icon-tumblr::before {
+  content: "\f173";
+}
+.ui-icon-tumblr-square::before {
+  content: "\f174";
+}
+.ui-icon-long-arrow-down::before {
+  content: "\f175";
+}
+.ui-icon-long-arrow-up::before {
+  content: "\f176";
+}
+.ui-icon-long-arrow-left::before {
+  content: "\f177";
+}
+.ui-icon-long-arrow-right::before {
+  content: "\f178";
+}
+.ui-icon-apple::before {
+  content: "\f179";
+}
+.ui-icon-windows::before {
+  content: "\f17a";
+}
+.ui-icon-android::before {
+  content: "\f17b";
+}
+.ui-icon-linux::before {
+  content: "\f17c";
+}
+.ui-icon-dribbble::before {
+  content: "\f17d";
+}
+.ui-icon-skype::before {
+  content: "\f17e";
+}
+.ui-icon-foursquare::before {
+  content: "\f180";
+}
+.ui-icon-trello::before {
+  content: "\f181";
+}
+.ui-icon-female::before {
+  content: "\f182";
+}
+.ui-icon-male::before {
+  content: "\f183";
+}
+.ui-icon-gittip::before {
+  content: "\f184";
+}
+.ui-icon-sun-o::before {
+  content: "\f185";
+}
+.ui-icon-moon-o::before {
+  content: "\f186";
+}
+.ui-icon-archive::before {
+  content: "\f187";
+}
+.ui-icon-bug::before {
+  content: "\f188";
+}
+.ui-icon-vk::before {
+  content: "\f189";
+}
+.ui-icon-weibo::before {
+  content: "\f18a";
+}
+.ui-icon-renren::before {
+  content: "\f18b";
+}
+.ui-icon-pagelines::before {
+  content: "\f18c";
+}
+.ui-icon-stack-exchange::before {
+  content: "\f18d";
+}
+.ui-icon-arrow-circle-o-right::before {
+  content: "\f18e";
+}
+.ui-icon-arrow-circle-o-left::before {
+  content: "\f190";
+}
+.ui-icon-toggle-left::before,
+.ui-icon-caret-square-o-left::before {
+  content: "\f191";
+}
+.ui-icon-dot-circle-o::before {
+  content: "\f192";
+}
+.ui-icon-wheelchair::before {
+  content: "\f193";
+}
+.ui-icon-vimeo-square::before {
+  content: "\f194";
+}
+.ui-icon-turkish-lira::before,
+.ui-icon-try::before {
+  content: "\f195";
+}
+.ui-icon-plus-square-o::before {
+  content: "\f196";
+}
+.ui-icon-space-shuttle::before {
+  content: "\f197";
+}
+.ui-icon-slack::before {
+  content: "\f198";
+}
+.ui-icon-envelope-square::before {
+  content: "\f199";
+}
+.ui-icon-wordpress::before {
+  content: "\f19a";
+}
+.ui-icon-openid::before {
+  content: "\f19b";
+}
+.ui-icon-institution::before,
+.ui-icon-bank::before,
+.ui-icon-university::before {
+  content: "\f19c";
+}
+.ui-icon-mortar-board::before,
+.ui-icon-graduation-cap::before {
+  content: "\f19d";
+}
+.ui-icon-yahoo::before {
+  content: "\f19e";
+}
+.ui-icon-google::before {
+  content: "\f1a0";
+}
+.ui-icon-reddit::before {
+  content: "\f1a1";
+}
+.ui-icon-reddit-square::before {
+  content: "\f1a2";
+}
+.ui-icon-stumbleupon-circle::before {
+  content: "\f1a3";
+}
+.ui-icon-stumbleupon::before {
+  content: "\f1a4";
+}
+.ui-icon-delicious::before {
+  content: "\f1a5";
+}
+.ui-icon-digg::before {
+  content: "\f1a6";
+}
+.ui-icon-pied-piper-square::before,
+.ui-icon-pied-piper::before {
+  content: "\f1a7";
+}
+.ui-icon-pied-piper-alt::before {
+  content: "\f1a8";
+}
+.ui-icon-drupal::before {
+  content: "\f1a9";
+}
+.ui-icon-joomla::before {
+  content: "\f1aa";
+}
+.ui-icon-language::before {
+  content: "\f1ab";
+}
+.ui-icon-fax::before {
+  content: "\f1ac";
+}
+.ui-icon-building::before {
+  content: "\f1ad";
+}
+.ui-icon-child::before {
+  content: "\f1ae";
+}
+.ui-icon-paw::before {
+  content: "\f1b0";
+}
+.ui-icon-spoon::before {
+  content: "\f1b1";
+}
+.ui-icon-cube::before {
+  content: "\f1b2";
+}
+.ui-icon-cubes::before {
+  content: "\f1b3";
+}
+.ui-icon-behance::before {
+  content: "\f1b4";
+}
+.ui-icon-behance-square::before {
+  content: "\f1b5";
+}
+.ui-icon-steam::before {
+  content: "\f1b6";
+}
+.ui-icon-steam-square::before {
+  content: "\f1b7";
+}
+.ui-icon-recycle::before {
+  content: "\f1b8";
+}
+.ui-icon-automobile::before,
+.ui-icon-car::before {
+  content: "\f1b9";
+}
+.ui-icon-cab::before,
+.ui-icon-taxi::before {
+  content: "\f1ba";
+}
+.ui-icon-tree::before {
+  content: "\f1bb";
+}
+.ui-icon-spotify::before {
+  content: "\f1bc";
+}
+.ui-icon-deviantart::before {
+  content: "\f1bd";
+}
+.ui-icon-soundcloud::before {
+  content: "\f1be";
+}
+.ui-icon-database::before {
+  content: "\f1c0";
+}
+.ui-icon-file-pdf-o::before {
+  content: "\f1c1";
+}
+.ui-icon-file-word-o::before {
+  content: "\f1c2";
+}
+.ui-icon-file-excel-o::before {
+  content: "\f1c3";
+}
+.ui-icon-file-powerpoint-o::before {
+  content: "\f1c4";
+}
+.ui-icon-file-photo-o::before,
+.ui-icon-file-picture-o::before,
+.ui-icon-file-image-o::before {
+  content: "\f1c5";
+}
+.ui-icon-file-zip-o::before,
+.ui-icon-file-archive-o::before {
+  content: "\f1c6";
+}
+.ui-icon-file-sound-o::before,
+.ui-icon-file-audio-o::before {
+  content: "\f1c7";
+}
+.ui-icon-file-movie-o::before,
+.ui-icon-file-video-o::before {
+  content: "\f1c8";
+}
+.ui-icon-file-code-o::before {
+  content: "\f1c9";
+}
+.ui-icon-vine::before {
+  content: "\f1ca";
+}
+.ui-icon-codepen::before {
+  content: "\f1cb";
+}
+.ui-icon-jsfiddle::before {
+  content: "\f1cc";
+}
+.ui-icon-life-bouy::before,
+.ui-icon-life-saver::before,
+.ui-icon-support::before,
+.ui-icon-life-ring::before {
+  content: "\f1cd";
+}
+.ui-icon-circle-o-notch::before {
+  content: "\f1ce";
+}
+.ui-icon-ra::before,
+.ui-icon-rebel::before {
+  content: "\f1d0";
+}
+.ui-icon-ge::before,
+.ui-icon-empire::before {
+  content: "\f1d1";
+}
+.ui-icon-git-square::before {
+  content: "\f1d2";
+}
+.ui-icon-git::before {
+  content: "\f1d3";
+}
+.ui-icon-hacker-news::before {
+  content: "\f1d4";
+}
+.ui-icon-tencent-weibo::before {
+  content: "\f1d5";
+}
+.ui-icon-qq::before {
+  content: "\f1d6";
+}
+.ui-icon-wechat::before,
+.ui-icon-weixin::before {
+  content: "\f1d7";
+}
+.ui-icon-send::before,
+.ui-icon-paper-plane::before {
+  content: "\f1d8";
+}
+.ui-icon-send-o::before,
+.ui-icon-paper-plane-o::before {
+  content: "\f1d9";
+}
+.ui-icon-history::before {
+  content: "\f1da";
+}
+.ui-icon-circle-thin::before {
+  content: "\f1db";
+}
+.ui-icon-header::before {
+  content: "\f1dc";
+}
+.ui-icon-paragraph::before {
+  content: "\f1dd";
+}
+.ui-icon-sliders::before {
+  content: "\f1de";
+}
+.ui-icon-share-alt::before {
+  content: "\f1e0";
+}
+.ui-icon-share-alt-square::before {
+  content: "\f1e1";
+}
+.ui-icon-bomb::before {
+  content: "\f1e2";
+}
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.xml b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.xml
new file mode 100644
index 0000000000..a2a3b3ac59
--- /dev/null
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/erp5css.less.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<ZopeData>
+  <record id="1" aka="AAAAAAAAAAE=">
+    <pickle>
+      <global name="File" module="OFS.Image"/>
+    </pickle>
+    <pickle>
+      <dictionary>
+        <item>
+            <key> <string>__name__</string> </key>
+            <value> <string>erp5css.less</string> </value>
+        </item>
+        <item>
+            <key> <string>content_type</string> </key>
+            <value> <string>text/plain</string> </value>
+        </item>
+        <item>
+            <key> <string>precondition</string> </key>
+            <value> <string></string> </value>
+        </item>
+        <item>
+            <key> <string>title</string> </key>
+            <value> <string></string> </value>
+        </item>
+      </dictionary>
+    </pickle>
+  </record>
+</ZopeData>
diff --git a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/login_form.zpt b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/login_form.zpt
index 00245bf78c..1219e32020 100644
--- a/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/login_form.zpt
+++ b/bt5/erp5_web_renderjs_ui/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui/login_form.zpt
@@ -1,53 +1,45 @@
-<html class="ui-mobile">
+<html>
   <head>
     <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1, user-scalable=no">
-
+    <meta name="viewport" content="width=device-width, initial-scale=1">
     <title tal:content="python: here.getPortalObject().getTitle()"></title>
-
-    <link rel="stylesheet" href="gadget_erp5.css">
-    <link rel="stylesheet" href="jquerymobile.css">
-
+    <link rel="stylesheet" href="gadget_erp5_nojqm.css">
   </head>
-  <body class="ui-mobile-viewport ui-overlay-a" tal:define="form_action string:WebSite_login;">
-    <div class="ui-hidden-accessible gadget-container"></div>
 
-    <div data-role="page" data-url="/" tabindex="0" class="ui-page ui-page-theme-a ui-page-header-fixed ui-page-active" style="padding-top: 36px; min-height: 939px;">
+  <body tal:define="form_action string:WebSite_login;">
 
-      <div data-role="header" class="gadget-header ui-header ui-bar-a ui-header-fixed slidedown" data-theme="a" data-position="fixed" data-tap-toggle="false" role="banner">
-      <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-left">
-        <div class="ui-controlgroup-controls">
-        </div>
+    <div data-gadget-scope='header'>
+      <div class="ui-header">
+        <h1><span>Connect</span></h1>
       </div>
-      <span>
-        <h1 class="ui-title" tal:content="python: here.getPortalObject().getTitle()"></h1>
-      <div class="ui-controlgroup ui-controlgroup-horizontal ui-btn-right">
-         <div class="ui-controlgroup-controls">
+    </div>
+
+    <div data-gadget-scope='panel'>
+      <div data-role="header">
+        <div class="panel_img">
+          <img alt="ERP5" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJcAAAA/CAMAAADaDqrIAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowMEM5NUE4MzQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowMEM5NUE4NDQ5NjQxMUUzOUZEQUU2NUY1RTI1RjdCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjAwQzk1QTgxNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjAwQzk1QTgyNDk2NDExRTM5RkRBRTY1RjVFMjVGN0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+J9MJsAAAAwBQTFRF///////M//+Z//9m//8z//8A/8z//8zM/8yZ/8xm/8wz/8wA/5n//5nM/5mZ/5lm/5kz/5kA/2b//2bM/2aZ/2Zm/2Yz/2YA/zP//zPM/zOZ/zNm/zMz/zMA/wD//wDM/wCZ/wBm/wAz/wAAzP//zP/MzP+ZzP9mzP8zzP8AzMz/zMzMzMyZzMxmzMwzzMwAzJn/zJnMzJmZzJlmzJkzzJkAzGb/zGbMzGaZzGZmzGYzzGYAzDP/zDPMzDOZzDNmzDMzzDMAzAD/zADMzACZzABmzAAzzAAAmf//mf/Mmf+Zmf9mmf8zmf8Amcz/mczMmcyZmcxmmcwzmcwAmZn/mZnMmZmZmZlmmZkzmZkAmWb/mWbMmWaZmWZmmWYzmWYAmTP/mTPMmTOZmTNmmTMzmTMAmQD/mQDMmQCZmQBmmQAzmQAAZv//Zv/MZv+ZZv9mZv8zZv8AZsz/ZszMZsyZZsxmZswzZswAZpn/ZpnMZpmZZplmZpkzZpkAZmb/ZmbMZmaZZmZmZmYzZmYAZjP/ZjPMZjOZZjNmZjMzZjMAZgD/ZgDMZgCZZgBmZgAzZgAAM///M//MM/+ZM/9mM/8zM/8AM8z/M8zMM8yZM8xmM8wzM8wAM5n/M5nMM5mZM5lmM5kzM5kAM2b/M2bMM2aZM2ZmM2YzM2YAMzP/MzPMMzOZMzNmMzMzMzMAMwD/MwDMMwCZMwBmMwAzMwAAAP//AP/MAP+ZAP9mAP8zAP8AAMz/AMzMAMyZAMxmAMwzAMwAAJn/AJnMAJmZAJlmAJkzAJkAAGb/AGbMAGaZAGZmAGYzAGYAADP/ADPMADOZADNmADMzADMAAAD/AADMAACZAABmAAAzAAAAHHa7K3/AOojESZHJWZvNaKTSd63Whrbblb/fpMjks9Howtrt4e320uTx8Pb6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdfKHSQAAAOh0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ALItoLoAAAJkSURBVHja7NlZsqsgEABQ979C5kGGddxo4os0Q8BAynoFn0nUU23TNGRB9xzLdE3XdE3XdP2fLnIzF2VSrsYvC72HizAh9eZ5DVuOl15S4/jWwC+kDC8HPzCSJVHcRY8QXV2PwQuujUYTsYrvYlBv1yKLrsXHsPghnvR3Lazoip/JKuwpF8sm6/bY01Ow9CBlTXi53PNoRcUktEZT1NV1PIPnXAjtMJIMlzerFIzU1dVWF7aPj3Tetae4gjdxktG2et/qQjJ4kZFrv6ED4bK4eR1qduHzvEi4+PbGwD0EGu9CQQLFrv1F4jBc6BcuW3YhkPiPX1hOfxQvnHfh0HVMRqc4HuqiQf5k3mO6dq1s8Hx0H/Le5kq9YaNcxAcrZLpOvAv+ClcgNcZFtnrucd5Fwx4mXj0drnbBYXMuJmFDAV3Uhm4qlbHh3ddOrmholHNxFTVC+xTl2mf6pI4uVe4LwSp0DPGOmh/hAnM94bKZjkHlWuiLeV+cTab4luMKk82wy/Px2fLJskvKUk03hRf9RZ0wiYiZ4uVwVwTb9E71y0XboTYXGuTaa33Y47W5zBjXM3P11y7TfR2ycFdxyaW7uwSc5m0un9ix91m3TWJfW+1ijfW+wcVAfjS5dOP62LyvZZdcLHnA1MkFAtbgwq+Vm47po8OA1buwyy/a1ec5urzveAes2sV8kfW963mFaHNhlT0b6+Yi5+StchH1CtaK0ThXELDPLiyOPZHldzm/J1z9O/B14g7/K+DtkP7U8ivSeD4xaPCTSQvy+YIfubZWzRgtRe1iMP+3mq7pmq7p6jv+BBgAPrgi/TzwWzkAAAAASUVORK5CYII="/>
         </div>
-    </div></span>
-      <div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
-		<ul class="ui-grid-d">
-	    </ul>
       </div>
-      </div>
-      <div role="main" class="ui-content gadget-content">
-      <article class="ui-content ui-body-c">
-        <section class="ui-content-header-plain">
+    </div>
+
+    <div class="gadget-content">
+      <article>
+        <section>
           <tal:block tal:condition="exists: request/portal_status_message">
             <span tal:attributes="data-i18n request/portal_status_message"><span tal:content="request/portal_status_message"></span></span>
           </tal:block>
-          <h3 class="ui-content-title ui-body-c" data-i18n="Connect">Connect</h3>
         </section>
-        <section class="ui-body-c ui-content-section">
-          <form class="login-form" method="post" tal:attributes="action python: '%s/' % context.absolute_url()">
+
+        <section>
+          <form method="post" tal:attributes="action python: '%s/' % context.absolute_url()">
 
             <div class="ui-field-contain">
               <label data-i18n="Login">Login<span></span></label>
-              <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input autofocus type="text" name="__ac_name" value="" required=""></div>
+              <div><input autofocus type="text" name="__ac_name" value="" required=""></div>
             </div>
             <div class="ui-field-contain">
               <label data-i18n="Password">Password<span></span></label>
-              <div class="ui-input-text ui-body-inherit ui-corner-all ui-shadow-inset"><input type="password" name="__ac_password" value="" required=""></div>
+              <div><input type="password" name="__ac_password" value="" required=""></div>
             </div>
             <div class="ui-field-contain">
               <label></label>
@@ -55,7 +47,12 @@
                 <a tal:attributes="href python: '%s/WebSite_viewRecoverAccount?came_from=%s' % (absolute_url, absolute_url)">I forgot my password!</a>
               </div>
             </div><br/>
-            <div class="ui-btn ui-input-btn ui-btn-b ui-corner-all ui-shadow ui-btn-inline">Log In<input data-theme="b" data-inline="true" type="submit" data-i18n="[value]Log In" value="Login" data-icon="check" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            <div class="ui-field-contain">
+              <label></label>
+              <div><input type="submit" value="Login" tal:attributes="name python: '%s:method' % (form_action, )"/></div>
+            </div>
+
+
             <input type="hidden" name="url" tal:attributes="value python: context.absolute_url()" />
             <input tal:condition="exists: request/came_from"
                    type="hidden" name="came_from"
@@ -64,7 +61,5 @@
          </section>
       </article>
     </div>
-    </div>
-    <div class="ui-loader ui-corner-all ui-body-a ui-loader-default"><h1>loading</h1></div><div class="ui-panel-dismiss"></div>
   </body>
 </html>
\ No newline at end of file
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
index dc72dc9f0f..d94e152e66 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testComplexFilter.zpt
@@ -66,14 +66,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
@@ -190,27 +190,27 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
 <tr>
-  <td>check</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td></td>
+  <td>select</td>
+  <td>//select[@name='heard_about']</td>
+  <td>index=1</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>off</td>
+  <td>//select[@name='heard_about']</td>
+  <td>OR</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
index c150e79060..092ea40143 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilter.zpt
@@ -66,14 +66,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
@@ -150,14 +150,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
index a0193620c2..90fb446e13 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemAutoBuild.zpt
@@ -67,14 +67,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
@@ -165,14 +165,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
@@ -196,15 +196,15 @@
 
 
 <tr>
-  <td>check</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td></td>
+  <td>select</td>
+  <td>//select[@name='heard_about']</td>
+  <td>index=1</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>off</td>
+  <td>//select[@name='heard_about']</td>
+  <td>OR</td>
 </tr>
 
 
@@ -264,21 +264,15 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>off</td>
-</tr>
-
-<tr>
-  <td>verifyValue</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>OR</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
index a93445af7e..df42a6e4c2 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterItemDelete.zpt
@@ -66,14 +66,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
@@ -94,27 +94,27 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
 <tr>
-  <td>check</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td></td>
+  <td>select</td>
+  <td>//select[@name='heard_about']</td>
+  <td>index=1</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>off</td>
+  <td>//select[@name='heard_about']</td>
+  <td>OR</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
index 129ae4f653..813b6159d7 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPager.zpt
@@ -66,20 +66,20 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
-  <td>check</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td>on</td>
+  <td>select</td>
+  <td>//select[@name='heard_about']</td>
+  <td>index=1</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='or checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>OR</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
index c670e5a192..2424145d6b 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testFilterWithPreviousNext.zpt
@@ -66,14 +66,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//input[@class='and checkboxradio']</td>
+  <td>//select[@name='heard_about']</td>
   <td></td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//input[@class='and checkboxradio']</td>
-  <td>on</td>
+  <td>//select[@name='heard_about']</td>
+  <td>AND</td>
 </tr>
 
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testHideItem.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testHideItem.zpt
index b5eccaa32b..8a5eb708b1 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testHideItem.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testHideItem.zpt
@@ -85,7 +85,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>index=0</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testListboxResetParameter.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testListboxResetParameter.zpt
index 4d2b04f294..192be3ce98 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testListboxResetParameter.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testListboxResetParameter.zpt
@@ -83,14 +83,14 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>index=0</td>
 </tr>
 
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]/div[1]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]//select[1]</td>
   <td>index=1</td>
 </tr>
 
@@ -131,7 +131,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSort.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSort.zpt
index 34454d6799..c692611f48 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSort.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSort.zpt
@@ -98,14 +98,14 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>index=0</td>
 </tr>
 
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]/div[1]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]//select[1]</td>
   <td>index=1</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortItemAutoBuild.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortItemAutoBuild.zpt
index 2e8a19005b..a58448755f 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortItemAutoBuild.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortItemAutoBuild.zpt
@@ -96,14 +96,14 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>index=0</td>
 </tr>
 
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]/div[1]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]//select[1]</td>
   <td>index=1</td>
 </tr>
 
@@ -145,26 +145,26 @@
 
 <tr>
   <td>verifyValue</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[1]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[1]</td>
   <td>id</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>ascending</td>
 </tr>
 
 
 <tr>
   <td>verifyValue</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]/div[1]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]//select[1]</td>
   <td>title</td>
 </tr>
 
 <tr>
   <td>verifyValue</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[2]//select[2]</td>
   <td>descending</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPager.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPager.zpt
index 2f6de7f521..11e6fd8260 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPager.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPager.zpt
@@ -81,7 +81,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>ascending</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPreviousNext.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPreviousNext.zpt
index 493686684e..a8ddffbfe8 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPreviousNext.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_listbox_zuite/testSortWithPreviousNext.zpt
@@ -81,7 +81,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>ascending</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormDialogMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormDialogMenuAction.zpt
index 68ab9084eb..f15354c898 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormDialogMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormDialogMenuAction.zpt
@@ -48,8 +48,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -59,7 +59,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListMenuAction.zpt
index 2859d6b09f..d7590f09b1 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.zpt
index 82bda46356..086ce95296 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchAction.zpt
@@ -32,7 +32,7 @@
 <!-- Page has a search field -->
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='m']//div[@data-gadget-scope='erp5_searchfield']//input[@type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='m']//div[@data-gadget-scope='erp5_searchfield']//input[@type='search' and @name='search']</td>
   <td></td>
 </tr>
 <tr>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 <tr>
@@ -53,7 +53,7 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='m']//div[@data-gadget-scope='erp5_searchfield']//input[@type='text' and @name='search' and @value='foobar']</td>
+  <td>//div[@data-gadget-scope='m']//div[@data-gadget-scope='erp5_searchfield']//input[@type='search' and @name='search' and @value='foobar']</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchResetsPagination.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchResetsPagination.zpt
index 4e3ebba6c3..420d04b915 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchResetsPagination.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSearchResetsPagination.zpt
@@ -76,7 +76,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSortStoreState.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSortStoreState.zpt
index c756523667..9a241f5f47 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSortStoreState.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormListSortStoreState.zpt
@@ -78,7 +78,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>index=0</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewEditableMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewEditableMenuAction.zpt
index 1ded36301c..dba9e9ed76 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewEditableMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewEditableMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewMenuAction.zpt
index 1598ff94d4..decb93d2dd 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_templates_zuite/testFormViewMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageActionMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageActionMenuAction.zpt
index 94ad5f0cbf..8590ad25d6 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageActionMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageActionMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontMenuAction.zpt
index 52e825b050..c18a38bb6e 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.zpt
index 915616b815..67a5640290 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageFrontModuleList.zpt
@@ -23,15 +23,10 @@
   <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_page_front.html']</td>
   <td></td>
 </tr>
-<tr>
-  <td>waitForTextPresent</td>
-  <td>Other</td>
-  <td></td>
-</tr>
 
 <!-- Generate links to module -->
 <tr>
-  <td>assertElementPresent</td>
+  <td>waitForElementPresent</td>
   <td>//div[@data-gadget-scope='m']//a[text()='Bars' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=bar_module')]</td>
   <td></td>
 </tr>
@@ -55,7 +50,7 @@
 </tr>
 <tr>
   <td>waitForTextPresent</td>
-  <td>Foos</td>
+  <td>Foo Module</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOnlyShowModuleSubDocuments.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOnlyShowModuleSubDocuments.zpt
index 1cef152a0e..ebadec8b07 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOnlyShowModuleSubDocuments.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOnlyShowModuleSubDocuments.zpt
@@ -19,17 +19,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//h3[@data-i18n='Other']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>click</td>
-  <td>//h3[@data-i18n='Other']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//a[@data-i18n='Foos']</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=foo_module')]</td>
   <td></td>
 </tr>
 <tr>
@@ -133,7 +123,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOrderedByAccessTime.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOrderedByAccessTime.zpt
index e0847839e1..299ca3e9d4 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOrderedByAccessTime.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryDocumentListOrderedByAccessTime.zpt
@@ -119,7 +119,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -138,7 +138,7 @@
 <!-- Generate links to module -->
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='m']//li[@class='ui-first-child']//a[text()='Title 2 (Foo)' and contains(@href, '#!display') and contains(@href, 'n.jio_key=foo_module%2F2')]</td>
+  <td>//div[@data-gadget-scope='m']//li[1]//a[text()='Title 2 (Foo)' and contains(@href, '#!display') and contains(@href, 'n.jio_key=foo_module%2F2')]</td>
   <td></td>
 </tr>
 <tr>
@@ -182,7 +182,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -201,7 +201,7 @@
 <!-- Generate links to module -->
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='m']//li[@class='ui-first-child']//a[text()='Title 1 (Foo)' and contains(@href, '#!display') and contains(@href, 'n.jio_key=foo_module%2F1')]</td>
+  <td>//div[@data-gadget-scope='m']//li[1]//a[text()='Title 1 (Foo)' and contains(@href, '#!display') and contains(@href, 'n.jio_key=foo_module%2F1')]</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryMenuAction.zpt
index 14b06c1852..46f3e8aca9 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageHistoryMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageJumpMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageJumpMenuAction.zpt
index 453302f815..1d931d23ae 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageJumpMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageJumpMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPagePreferenceMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPagePreferenceMenuAction.zpt
index c276663bb8..71737afe59 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPagePreferenceMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPagePreferenceMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchMenuAction.zpt
index 9ac8a5d9d8..10b14c1b09 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageSearchMenuAction.zpt
@@ -41,8 +41,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -52,7 +52,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageTabMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageTabMenuAction.zpt
index 358f691951..a2c1b6e020 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageTabMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageTabMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistMenuAction.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistMenuAction.zpt
index e3e8f020e6..42fdb02499 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistMenuAction.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistMenuAction.zpt
@@ -36,8 +36,8 @@
   <td></td>
 </tr>
 <tr>
-  <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-closed')]</td>
+  <td>assertElementNotPresent</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -47,7 +47,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistNoLocalRoles.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistNoLocalRoles.zpt
index 9abb48efde..ff1d769e89 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistNoLocalRoles.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_page_zuite/testPageWorklistNoLocalRoles.zpt
@@ -50,7 +50,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='portal_type:("Bar" OR "Foo") AND simulation_state:"draft"' and @type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='portal_type:("Bar" OR "Foo") AND simulation_state:"draft"' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.zpt
index b1540cbc78..dd66ecf035 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandDisplayStoredStateJumpToLatestDocumentContext.zpt
@@ -32,7 +32,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 <tr>
@@ -55,7 +55,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='panel']//div[contains(@class, 'ui-panel-open')]</td>
+  <td>//div[@data-gadget-scope='panel' and contains(@class, 'visible')]</td>
   <td></td>
 </tr>
 <tr>
@@ -71,37 +71,26 @@
   <td></td>
 </tr>
 
-<!-- Go back to foo module -->
 <tr>
   <td>waitForElementPresent</td>
-  <td>//h3[@data-i18n='Other']</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos']</td>
   <td></td>
 </tr>
 <tr>
   <td>click</td>
-  <td>//h3[@data-i18n='Other']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='m']//a[@data-i18n='Foos']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>click</td>
-  <td>//div[@data-gadget-scope='m']//a[@data-i18n='Foos']</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos']</td>
   <td></td>
 </tr>
 
 <!-- Wait for gadget to be loaded -->
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-url='${base_url}/web_site_module/renderjs_runner/gadget_erp5_pt_form_list.html']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 <tr>
   <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandHistoryPreviousJumpToPreviousContext.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandHistoryPreviousJumpToPreviousContext.zpt
index fa070a3936..e8c61f719f 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandHistoryPreviousJumpToPreviousContext.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandHistoryPreviousJumpToPreviousContext.zpt
@@ -37,7 +37,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 
@@ -190,7 +190,7 @@
 </tr>
 <tr>
   <td>assertElementPresent</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextJumpToNextDocument.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextJumpToNextDocument.zpt
index d04b3c76bb..f1c0aaaa03 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextJumpToNextDocument.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextJumpToNextDocument.zpt
@@ -70,7 +70,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 <tr>
@@ -117,7 +117,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>descending</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextLastElement.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextLastElement.zpt
index 5eb802d7ac..0ce58db5fd 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextLastElement.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionNextLastElement.zpt
@@ -37,7 +37,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 
@@ -92,7 +92,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousFirstElement.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousFirstElement.zpt
index 723139607e..6a12bc7533 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousFirstElement.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousFirstElement.zpt
@@ -37,7 +37,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 <tr>
@@ -91,7 +91,7 @@
 </tr>
 <tr>
   <td>waitForElementPresent</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='text' and @name='search']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@value='title' and @type='search' and @name='search']</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousJumpToPreviousDocument.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousJumpToPreviousDocument.zpt
index ae592bfe60..93fe8862e9 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousJumpToPreviousDocument.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_router_zuite/testCommandSelectionPreviousJumpToPreviousDocument.zpt
@@ -70,7 +70,7 @@
 </tr>
 <tr>
   <td>click</td>
-  <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+  <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
   <td></td>
 </tr>
 
@@ -118,7 +118,7 @@
 
 <tr>
   <td>select</td>
-  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]/div[2]//select</td>
+  <td>//div[@class='sort_item_container ui-controlgroup ui-corner_all']/div[1]//select[2]</td>
   <td>descending</td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testBreadcrumbCanNotAccessRelationSearchPage.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testBreadcrumbCanNotAccessRelationSearchPage.zpt
index f6977068c6..ff8ab05fb8 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testBreadcrumbCanNotAccessRelationSearchPage.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testBreadcrumbCanNotAccessRelationSearchPage.zpt
@@ -177,7 +177,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldSearchWithListbox.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldSearchWithListbox.zpt
index c1fc6e0fb4..7a91d8171c 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldSearchWithListbox.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldSearchWithListbox.zpt
@@ -263,7 +263,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldWithNonSavedPageContent.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldWithNonSavedPageContent.zpt
index e3d85c9a67..ad44bbf7a3 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldWithNonSavedPageContent.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testMultiRelationFieldWithNonSavedPageContent.zpt
@@ -354,17 +354,22 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//a[@data-i18n="Foos"]</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=foo_module')]</td>
   <td></td>
 </tr>
 
 
 <tr>
   <td>click</td>
-  <td>//a[@data-i18n="Foos"]</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=foo_module')]</td>
   <td></td>
 </tr>
 
+<tr>
+  <td>waitForTextPresent</td>
+  <td>Foo Module</td>
+  <td></td>
+</tr>
 <tr>
   <td>waitForElementPresent</td>
   <td>//tbody/tr[1]/th/a</td>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testProxyListBox.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testProxyListBox.zpt
index d971971b67..fa0598462f 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testProxyListBox.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testProxyListBox.zpt
@@ -323,7 +323,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
@@ -478,7 +478,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldSearchWithListbox.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldSearchWithListbox.zpt
index 4890b6ca69..899a81fc7d 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldSearchWithListbox.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldSearchWithListbox.zpt
@@ -194,7 +194,7 @@
 
 <tr>
   <td>click</td>
-  <td>//input[@class="search_button"]</td>
+  <td>//button[contains(@class, "search_button")]</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldWithNonSavedPageContent.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldWithNonSavedPageContent.zpt
index f7d14906b5..5ce18e595e 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldWithNonSavedPageContent.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/relationfield_zuite/testRelationFieldWithNonSavedPageContent.zpt
@@ -424,14 +424,20 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//a[@data-i18n="Foos"]</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=foo_module')]</td>
   <td></td>
 </tr>
 
 
 <tr>
   <td>click</td>
-  <td>//a[@data-i18n="Foos"]</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Foos' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=foo_module')]</td>
+  <td></td>
+</tr>
+
+<tr>
+  <td>waitForTextPresent</td>
+  <td>Foo Module</td>
   <td></td>
 </tr>
 
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsBasicNavigation.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsBasicNavigation.zpt
index 2bda550b11..e2ae3216db 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsBasicNavigation.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsBasicNavigation.zpt
@@ -52,22 +52,14 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//h3[@data-i18n='Other']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>click</td>
-  <td>//h3[@data-i18n='Other']</td>
-  <td></td>
-</tr>
-<tr>
-  <td>waitForElementPresent</td>
-  <td>//a[@data-i18n='Bars']</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Bars' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=bar_module')]</td>
   <td></td>
 </tr>
+
+
 <tr>
   <td>click</td>
-  <td>link=Bars</td>
+  <td>//div[@data-gadget-scope='m']//a[text()='Bars' and contains(@href, '#!display_stored_state') and contains(@href, 'n.jio_key=bar_module')]</td>
   <td></td>
 </tr>
 <tr>
diff --git a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsRecoverPassword.zpt b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsRecoverPassword.zpt
index 79b9e8c929..ad94b21670 100644
--- a/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsRecoverPassword.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/PathTemplateItem/portal_tests/renderjs_ui_zuite/testRenderjsRecoverPassword.zpt
@@ -109,7 +109,7 @@
 
 <tr>
   <td>clickAndWait</td>
-  <td>//form[@class="login-form"]//a[text()="I forgot my password!"]</td>
+  <td>//a[text()="I forgot my password!"]</td>
   <td></td>
 </tr>
 <tr>
@@ -145,7 +145,7 @@
 
 <tr>
   <td>waitForElementPresent</td>
-  <td>//form[@class="login-form"]//a[text()="I forgot my password!"]</td>
+  <td>//a[text()="I forgot my password!"]</td>
   <td></td>
 <tr>
   <td>assertTextPresent</td>
diff --git a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt
index 7b6460d73f..256be21d06 100644
--- a/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt
+++ b/bt5/erp5_web_renderjs_ui_test/SkinTemplateItem/portal_skins/erp5_web_renderjs_ui_test/Zuite_CommonTemplateForRenderjsUi.zpt
@@ -51,7 +51,7 @@
 
     <tr>
      <td>click</td>
-     <td>//div[@data-gadget-scope='erp5_searchfield']//input[@class='search_button' and @type='submit']</td>
+     <td>//div[@data-gadget-scope='erp5_searchfield']//button[contains(@class, 'search_button')]</td>
      <td></td>
     </tr>
     
-- 
2.30.9