Commit 2c92a181 authored by Romain Courteaud's avatar Romain Courteaud

[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.
parent aa32859f
......@@ -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>
......
......@@ -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>
......
/*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
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
/* ------------------------------ 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
<!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
......@@ -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>
......
/*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
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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;
}
......
......@@ -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>
......
/**********************************************
* 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";
}
......@@ -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>
......
<!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
/*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
......@@ -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>
......
......@@ -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>
......
/*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
......@@ -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>
......
/*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
......@@ -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>
......
......@@ -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
......@@ -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>
......
/*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;
})
.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
]));
.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 RSVP.all(result_list);
return this.getUrlFor.apply(this, argument_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;
.allowPublicAcquisition('getUrlParameter', function (argument_list) {
return this.getUrlParameter(argument_list)
.push(function (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
};
function sort_module(a, b) {
var result = 0;
if (a.title < b.title) {
result = -1;
} else if (a.title > b.title) {
result = 1;
return gadget.updateHeader(header_dict)
.push(function () {
return gadget.getDeclaredGadget('form_list');
})
.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"
}
return result;
}},
"_links": {
"type": {
// form_list display portal_type in header
name: ""
}
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]
});
}},
form_definition: {
group_list: [[
"bottom",
[["listbox"]]
]]
}
result_html += '</div>';
return gadget.translateHtml(result_html);
})
.push(function (my_translated_html) {
gadget.props.element.querySelector('.document_list').innerHTML =
my_translated_html;
return gadget.updateHeader({
page_title: 'Modules'
});
});
});
}(window, rJS, RSVP, Handlebars));
\ No newline at end of file
}(window, rJS));
\ No newline at end of file
......@@ -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>
......
......@@ -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">
......
......@@ -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>
......
......@@ -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);
})
......
......@@ -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>
......
......@@ -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>
<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>
</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}}
......
......@@ -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>
......
/*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));
......@@ -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>
......
......@@ -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">
......
......@@ -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>
......
/*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
......@@ -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>
......
......@@ -14,22 +14,9 @@
<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>
<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>
......
......@@ -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>
......
......@@ -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
......@@ -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>
......
......@@ -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'
];
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
/*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
......@@ -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>
......
/*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
......@@ -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>
......
......@@ -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>
......
<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">
<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>
</span>
<div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
<ul class="ui-grid-d"></ul>
<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
<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">
<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>
</span>
<div class="ui-navbar ui-subheader ui-grid-container ui-body-a" role="navigation">
<ul class="ui-grid-d"></ul>
<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
/**********************************************
* 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
<?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>
<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 data-gadget-scope='header'>
<div class="ui-header">
<h1><span>Connect</span></h1>
</div>
</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 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 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
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -177,7 +177,7 @@
<tr>
<td>click</td>
<td>//input[@class="search_button"]</td>
<td>//button[contains(@class, "search_button")]</td>
<td></td>
</tr>
......
......@@ -263,7 +263,7 @@
<tr>
<td>click</td>
<td>//input[@class="search_button"]</td>
<td>//button[contains(@class, "search_button")]</td>
<td></td>
</tr>
......
......@@ -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>
......
......@@ -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>
......
......@@ -194,7 +194,7 @@
<tr>
<td>click</td>
<td>//input[@class="search_button"]</td>
<td>//button[contains(@class, "search_button")]</td>
<td></td>
</tr>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment