diff --git a/addons/web/__openerp__.py b/addons/web/__openerp__.py index 269aa13d58e..f335c52bb10 100644 --- a/addons/web/__openerp__.py +++ b/addons/web/__openerp__.py @@ -13,6 +13,7 @@ This module provides the core of the OpenERP Web Client. 'auto_install': True, 'post_load': 'wsgi_postload', 'js' : [ + "static/src/fixbind.js", "static/lib/datejs/globalization/en-US.js", "static/lib/datejs/core.js", "static/lib/datejs/parser.js", @@ -76,6 +77,7 @@ This module provides the core of the OpenERP Web Client. "static/test/class.js", "static/test/registry.js", "static/test/form.js", + "static/test/data.js", "static/test/list-utils.js", "static/test/formats.js", "static/test/rpc.js", diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 8f1855f205d..78aa85669be 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -643,6 +643,18 @@ class WebClient(openerpweb.Controller): content, checksum = concat_files((f[0] for f in files), reader) + # move up all @import and @charset rules to the top + matches = [] + def push(matchobj): + matches.append(matchobj.group(0)) + return '' + + content = re.sub(re.compile("(@charset.+;$)", re.M), push, content) + content = re.sub(re.compile("(@import.+;$)", re.M), push, content) + + matches.append(content) + content = '\n'.join(matches) + return make_conditional( req, req.make_response(content, [('Content-Type', 'text/css')]), last_modified, checksum) @@ -1363,19 +1375,30 @@ class Binary(openerpweb.Controller): elif dbname is None: dbname = db_monodb(req) - if uid is None: + if not uid: uid = openerp.SUPERUSER_ID if not dbname: image_data = self.placeholder(req, 'logo.png') else: - registry = openerp.modules.registry.RegistryManager.get(dbname) - with registry.cursor() as cr: - user = registry.get('res.users').browse(cr, uid, uid) - if user.company_id.logo_web: - image_data = user.company_id.logo_web.decode('base64') - else: - image_data = self.placeholder(req, 'nologo.png') + try: + # create an empty registry + registry = openerp.modules.registry.Registry(dbname.lower()) + with registry.cursor() as cr: + cr.execute("""SELECT c.logo_web + FROM res_users u + LEFT JOIN res_company c + ON c.id = u.company_id + WHERE u.id = %s + """, (uid,)) + row = cr.fetchone() + if row and row[0]: + image_data = str(row[0]).decode('base64') + else: + image_data = self.placeholder(req, 'nologo.png') + except Exception: + image_data = self.placeholder(req, 'logo.png') + headers = [ ('Content-Type', 'image/png'), ('Content-Length', len(image_data)), @@ -1420,7 +1443,7 @@ class Action(openerpweb.Controller): else: return False -class Export(View): +class Export(openerpweb.Controller): _cp_path = "/web/export" @openerpweb.jsonrequest @@ -1561,7 +1584,7 @@ class Export(View): (prefix + '/' + k, prefix_string + '/' + v) for k, v in self.fields_info(req, model, export_fields).iteritems()) - #noinspection PyPropertyDefinition +class ExportFormat(object): @property def content_type(self): """ Provides the format's content type """ @@ -1609,7 +1632,7 @@ class Export(View): ('Content-Type', self.content_type)], cookies={'fileToken': int(token)}) -class CSVExport(Export): +class CSVExport(ExportFormat, http.Controller): _cp_path = '/web/export/csv' fmt = {'tag': 'csv', 'label': 'CSV'} @@ -1644,7 +1667,7 @@ class CSVExport(Export): fp.close() return data -class ExcelExport(Export): +class ExcelExport(ExportFormat, http.Controller): _cp_path = '/web/export/xls' fmt = { 'tag': 'xls', @@ -1683,7 +1706,7 @@ class ExcelExport(Export): fp.close() return data -class Reports(View): +class Reports(openerpweb.Controller): _cp_path = "/web/report" POLLING_DELAY = 0.25 TYPES_MAPPING = { diff --git a/addons/web/http.py b/addons/web/http.py index 05069574da1..fae8b691310 100644 --- a/addons/web/http.py +++ b/addons/web/http.py @@ -19,6 +19,7 @@ import time import traceback import urlparse import uuid +import errno import babel.core import simplejson @@ -200,7 +201,7 @@ class JsonRequest(WebRequest): _logger.debug("--> %s.%s\n%s", method.im_class.__name__, method.__name__, pprint.pformat(self.jsonrequest)) response['id'] = self.jsonrequest.get('id') response["result"] = method(self, **self.params) - except session.AuthenticationError: + except session.AuthenticationError, e: se = serialize_exception(e) error = { 'code': 100, @@ -354,17 +355,31 @@ def httprequest(f): addons_module = {} addons_manifest = {} controllers_class = [] +controllers_class_path = {} controllers_object = {} +controllers_object_path = {} controllers_path = {} class ControllerType(type): def __init__(cls, name, bases, attrs): super(ControllerType, cls).__init__(name, bases, attrs) - controllers_class.append(("%s.%s" % (cls.__module__, cls.__name__), cls)) + name_class = ("%s.%s" % (cls.__module__, cls.__name__), cls) + controllers_class.append(name_class) + path = attrs.get('_cp_path') + if path not in controllers_class_path: + controllers_class_path[path] = name_class class Controller(object): __metaclass__ = ControllerType + def __new__(cls, *args, **kwargs): + subclasses = [c for c in cls.__subclasses__() if c._cp_path == cls._cp_path] + if subclasses: + name = "%s (extended by %s)" % (cls.__name__, ', '.join(sub.__name__ for sub in subclasses)) + cls = type(name, tuple(reversed(subclasses)), {}) + + return object.__new__(cls) + #---------------------------------------------------------- # Session context manager #---------------------------------------------------------- @@ -476,8 +491,15 @@ def session_path(): except Exception: username = "unknown" path = os.path.join(tempfile.gettempdir(), "oe-sessions-" + username) - if not os.path.exists(path): + try: os.mkdir(path, 0700) + except OSError as exc: + if exc.errno == errno.EEXIST: + # directory exists: ensure it has the correct permissions + # this will fail if the directory is not owned by the current user + os.chmod(path, 0700) + else: + raise return path class Root(object): @@ -557,10 +579,11 @@ class Root(object): addons_manifest[module] = manifest self.statics['/%s/static' % module] = path_static - for k, v in controllers_class: - if k not in controllers_object: - o = v() - controllers_object[k] = o + for k, v in controllers_class_path.items(): + if k not in controllers_object_path and hasattr(v[1], '_cp_path'): + o = v[1]() + controllers_object[v[0]] = o + controllers_object_path[k] = o if hasattr(o, '_cp_path'): controllers_path[o._cp_path] = o diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 52107bc84d7..19bfc42ef9b 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -6,8 +6,7 @@ src: url("/web/static/src/font/mnmliconsv21-webfont.ttf") format("truetype"); src: url("/web/static/src/font/mnmliconsv21-webfont.svg") format("svg") active; font-weight: normal; - font-style: normal; -} + font-style: normal; } @font-face { font-family: "EntypoRegular"; @@ -17,8 +16,7 @@ src: url("/web/static/src/font/entypo-webfont.ttf") format("truetype"); src: url("/web/static/src/font/entypo-webfont.svg") format("svg") active; font-weight: normal; - font-style: normal; -} + font-style: normal; } .openerp { padding: 0; @@ -30,3177 +28,2588 @@ text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); /* http://www.quirksmode.org/dom/inputfile.html * http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image - */ -} -.openerp.openerp_webclient_container { - height: 100%; -} -.openerp :-moz-placeholder { - color: #afafb6 !important; - font-style: italic !important; -} -.openerp ::-webkit-input-placeholder { - color: #afafb6 !important; - font-style: italic !important; -} -.openerp :-ms-input-placeholder { - color: #afafb6 !important; - font-style: italic !important; -} -.openerp a { - text-decoration: none; - cursor: pointer !important; -} -.openerp table { - padding: 0; - border-collapse: collapse; -} -.openerp thead { - font-weight: bold; - background-color: #f0f0f0; -} -.openerp thead th { - border-left: 1px solid #dfdfdf; -} -.openerp thead th:first-child { - border-left: none; -} -.openerp thead th.null { - border-left: none; -} -.openerp th, .openerp td { - padding: 0; - text-align: left; -} -.openerp th { - font-weight: bold; - vertical-align: middle; -} -.openerp td { - vertical-align: top; -} -.openerp .zebra tbody tr:nth-child(odd) td { - background-color: #f0f0fa; - background-color: #efeff8; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); - background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); -} -.openerp .zebra tbody tr:hover td { - background-color: #e6e6e6; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede)); - background-image: -webkit-linear-gradient(top, #eeeeee, #dedede); - background-image: -moz-linear-gradient(top, #eeeeee, #dedede); - background-image: -ms-linear-gradient(top, #eeeeee, #dedede); - background-image: -o-linear-gradient(top, #eeeeee, #dedede); - background-image: linear-gradient(to bottom, #eeeeee, #dedede); -} -.openerp input, .openerp textarea, .openerp select { - padding: 2px 4px; - border: 1px solid #cccccc; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: white; -} -.openerp img { - vertical-align: middle; -} -.openerp h4 { - margin: 4px 0; -} -.openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { - display: inline-block; - border: 1px solid rgba(0, 0, 0, 0.4); - color: #4c4c4c; - margin: 0; - padding: 3px 12px; - font-size: 13px; - text-align: center; - background-color: #e3e3e3; - background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); - background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8); - background-image: -moz-linear-gradient(top, #efefef, #d8d8d8); - background-image: -ms-linear-gradient(top, #efefef, #d8d8d8); - background-image: -o-linear-gradient(top, #efefef, #d8d8d8); - background-image: linear-gradient(to bottom, #efefef, #d8d8d8); - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); - -webkit-font-smoothing: antialiased; - outline: none; -} -.openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover { - background-color: #ececec; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); - background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); - cursor: pointer; - background-position: 0; -} -.openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus { - border: 1px solid #80bfff; - background-position: 0; - background-color: #ececec; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); - background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); - -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; -} -.openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active { - background-color: #ececec; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6)); - background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled { - background: #efefef !important; - border: 1px solid #d1d1d1 !important; - -moz-box-shadow: none !important; - -webkit-box-shadow: none !important; - box-shadow: none !important; - color: #aaaaaa !important; - cursor: default; - text-shadow: 0 1px 1px white !important; -} -.openerp .ui-widget-content a { - color: #7c7bad; -} -.openerp .oe_bounce_container { - display: inline-block; -} -.openerp .text-tag .text-button { - height: auto !important; - min-height: 16px; -} -.openerp .ui-tabs { - position: static; -} -.openerp.ui-dialog { - display: none; - padding: 6px; - background-color: rgba(60, 60, 60, 0.7); - border: 1px solid; - border-color: #888888 #555555 #444444; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); - -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); - box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.openerp.ui-dialog .ui-dialog-content { - padding: 0; -} -.openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane { - padding: 16px; -} -.openerp.ui-dialog .ui-dialog-titlebar { - border-bottom: 1px solid #cacaca; - -moz-border-radius: 2px 2px 0 0; - -webkit-border-radius: 2px 2px 0 0; - border-radius: 2px 2px 0 0; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); -} -.openerp.ui-dialog .ui-dialog-titlebar .ui-dialog-title { - margin: 0; - padding: 0; -} -.openerp.ui-dialog .ui-widget-header { - border: none; -} -.openerp.ui-dialog .ui-dialog-content { - background: white; -} -.openerp.ui-dialog .ui-dialog-buttonpane { - border-top: 1px solid #e0e0e0; - background: #f5f7f9; - margin: 0; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; -} -.openerp.ui-dialog .ui-dialog-buttonpane button { - margin: 0 4px 0 0; -} -.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { - float: left; -} -.openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { - margin-right: 4px; -} -.openerp.ui-dialog .ui-dialog-titlebar-close { - padding: 0; -} -.openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick { - display: none; -} -.openerp.ui-dialog .ui-dialog-titlebar-close:before { - content: "×"; - font-size: 18px; - font-weight: bold; - line-height: 16px; - color: black; - text-shadow: 0 1px 0 white; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; -} -.openerp.ui-dialog .ui-dialog-titlebar-close:before:hover { - color: black; - text-decoration: none; -} -.openerp.ui-dialog .oe_about { - background-color: white; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; -} -.openerp.ui-dialog .oe_about a { - color: #7c7bad; -} -.openerp.ui-dialog .oe_about a:hover { - text-decoration: underline; -} -.openerp.ui-dialog .oe_about a:focus { - outline: none; -} -.openerp.ui-dialog .oe_about .oe_logo { - margin-left: -6px; -} -.openerp.ui-dialog .oe_about .oe_bottom { - position: absolute; - top: 50%; - left: 0; - right: 0; - bottom: 0; - text-shadow: 0 1px 1px #999999; - background-color: #8a0e0e; - background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); - background-image: -webkit-linear-gradient(top, #b41616, #600606); - background-image: -moz-linear-gradient(top, #b41616, #600606); - background-image: -ms-linear-gradient(top, #b41616, #600606); - background-image: -o-linear-gradient(top, #b41616, #600606); - background-image: linear-gradient(to bottom, #b41616, #600606); - color: #eeeeee; - padding: 0 16px; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; -} -.openerp.ui-dialog .oe_about .oe_bottom a { - color: #eeeeee; -} -.openerp.ui-dialog.oe_act_window .ui-dialog-content { - padding: 0px; -} -.openerp .modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: black; - filter: alpha(opacity=30); - opacity: 0.3; -} -.openerp .oe_i { - font-family: "mnmliconsRegular" !important; - font-size: 21px; - font-weight: 300 !important; -} -.openerp .oe_e { - font-family: "entypoRegular" !important; - font-size: 34px; - font-weight: 300 !important; -} -.openerp .oe_left { - float: left; - margin-right: 8px; -} -.openerp .oe_right { - float: right; - margin-left: 8px; -} -.openerp .oe_text_center { - text-align: center; -} -.openerp .oe_text_left { - text-align: left; -} -.openerp .oe_text_right { - text-align: right; -} -.openerp .oe_clear { - clear: both; -} -.openerp .oe_wait { - cursor: wait; -} -.openerp .oe_fade { - color: #888888; - font-weight: normal; -} -.openerp .oe_bold { - font-weight: bold; -} -.openerp .oe_inline { - width: auto !important; -} -.openerp .oe_highlight { - color: white; - background: #dc5f59; -} -.openerp button.oe_highlight { - background-color: #c02c2c; - background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a)); - background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a); - background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a); - background-image: -ms-linear-gradient(top, #df3f3f, #a21a1a); - background-image: -o-linear-gradient(top, #df3f3f, #a21a1a); - background-image: linear-gradient(to bottom, #df3f3f, #a21a1a); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; -} -.openerp button.oe_highlight:hover { - background-color: #c63939; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b)); - background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b); - background-image: -moz-linear-gradient(top, #e25858, #ab1b1b); - background-image: -ms-linear-gradient(top, #e25858, #ab1b1b); - background-image: -o-linear-gradient(top, #e25858, #ab1b1b); - background-image: linear-gradient(to bottom, #e25858, #ab1b1b); -} -.openerp button.oe_highlight:active { - background-color: #cb2121; - background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323)); - background-image: -webkit-linear-gradient(top, #c52020, #d22323); - background-image: -moz-linear-gradient(top, #c52020, #d22323); - background-image: -ms-linear-gradient(top, #c52020, #d22323); - background-image: -o-linear-gradient(top, #c52020, #d22323); - background-image: linear-gradient(to bottom, #c52020, #d22323); -} -.openerp .oe_background_grey { - background: #eeeeee !important; -} -.openerp .oe_form_dirty .oe_highlight_on_dirty { - color: white; - background: #dc5f59; - font-weight: bold; -} -.openerp .oe_form_dirty button.oe_highlight_on_dirty { - background-color: #c74a44; - background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); - background-image: -webkit-linear-gradient(top, #dc5f59, #b33630); - background-image: -moz-linear-gradient(top, #dc5f59, #b33630); - background-image: -ms-linear-gradient(top, #dc5f59, #b33630); - background-image: -o-linear-gradient(top, #dc5f59, #b33630); - background-image: linear-gradient(to bottom, #dc5f59, #b33630); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_form_dirty button.oe_highlight_on_dirty:hover { - background: #ed6f6a; -} -.openerp .oe_title { - width: 50%; - float: left; -} -.openerp .oe_title:after { - content: "."; - display: block; - height: 0; - clear: both; - visibility: hidden; -} -.openerp .oe_button_box { - width: 270px; - text-align: right; -} -.openerp .oe_button_box button { - margin: 4px; -} -.openerp .oe_avatar > img { - max-height: 90px; - max-width: 90px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - border: none; - margin-bottom: 10px; -} -.openerp .oe_avatar + div { - margin-left: 5px; -} -.openerp .oe_image_small > img { - max-width: 50px; - max-height: 50px; -} -.openerp .oe_image_medium > img { - max-width: 180px; - max-height: 180px; -} -.openerp .oe_button.oe_link { - border: none; - padding: 0; - margin: 0; - background: none; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_button.oe_link img { - display: inline-block; -} -.openerp .oe_button.oe_link span { - border: none; - padding: 0; - margin: 0; - background: none; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - color: #7c7bad; - font-weight: bold; -} -.openerp .oe_button.oe_link span:hover { - text-decoration: underline; -} -.openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off { - color: #cccccc; - text-shadow: 0 0 2px black; - vertical-align: top; - position: relative; - top: -5px; -} -.openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover { - text-decoration: none; -} -.openerp .oe_webclient .oe_star_on { - color: gold; -} -.openerp p.oe_grey { - max-width: 650px; -} -.openerp .oe_grey { - color: #aaaaaa; -} -.openerp .oe_tag { - border: 1px solid #afafb6; - font-size: 11px; - padding: 2px 4px; - margin: 0 2px 2px 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: #f0f0fa; - color: #4c4c4c; -} -.openerp .oe_tag_dark { - background: #7c7bad; - color: #eeeeee; -} -.openerp .oe_tags { - margin-bottom: 1px; -} -.openerp .oe_tags.oe_inline { - min-width: 250px; -} -.openerp .oe_tags .text-wrap { - width: 100% !important; -} -.openerp .oe_tags .text-wrap textarea { - width: 100% !important; -} -.openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em { - font-style: italic; - text-decoration: none; -} -.openerp.oe_tooltip { - font-size: 12px; -} -.openerp.oe_tooltip .oe_tooltip_string { - color: #ffdd55; - font-weight: bold; - font-size: 13px; -} -.openerp.oe_tooltip .oe_tooltip_help { - white-space: pre-wrap; -} -.openerp.oe_tooltip .oe_tooltip_technical { - padding: 0 0 4px 0; - margin: 5px 0 0 15px; -} -.openerp.oe_tooltip .oe_tooltip_technical li { - list-style: circle; -} -.openerp.oe_tooltip .oe_tooltip_technical_title { - font-weight: bold; -} -.openerp.oe_tooltip .oe_tooltip_close { - margin: -5px 0 0 2px; - cursor: default; - float: right; - color: white; -} -.openerp.oe_tooltip .oe_tooltip_close:hover { - color: #999999; - cursor: pointer; -} -.openerp.oe_tooltip .oe_tooltip_message { - max-width: 310px; -} -.openerp .oe_notebook { - margin: 8px 0; - padding: 0 16px; - list-style: none; - zoom: 1; -} -.openerp .oe_notebook.ui-corner-all { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; -} -.openerp .oe_notebook:before, .openerp .oe_notebook:after { - display: table; - content: ""; - zoom: 1; -} -.openerp .oe_notebook:after { - clear: both; -} -.openerp .oe_notebook > li { - float: left; -} -.openerp .oe_notebook > li > a { - display: block; - color: gray; -} -.openerp .oe_notebook > li.ui-tabs-active > a { - color: #4c4c4c; -} -.openerp .oe_notebook { - border-color: #dddddd; - border-style: solid; - border-width: 0 0 1px; -} -.openerp .oe_notebook > li { - position: relative; -} -.openerp .oe_notebook > li > a { - padding: 0 12px; - margin-right: 2px; - line-height: 30px; - border: 1px solid transparent; - -moz-border-radius: 4px 4px 0 0; - -webkit-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.openerp .oe_notebook > li > a:hover { - text-decoration: none; - background-color: #eeeeee; - border-color: #eeeeee #eeeeee #dddddd; -} -.openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover { - background-color: white; - border: 1px solid #dddddd; - border-bottom-color: transparent; - cursor: default; -} -.openerp .oe_notebook_page { - padding: 0; -} -.openerp div.ui-tabs { - padding: 3px 0px 3px 0px; -} -.openerp .ui-tabs-hide { - display: none; -} -.openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle { - position: relative; - cursor: pointer; -} -.openerp .oe_dropdown_toggle { - color: #4c4c4c; - font-weight: normal; -} -.openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened { - display: block; -} -.openerp .oe_dropdown_menu { - display: none; - position: absolute; - top: 26px; - left: 0; - z-index: 3; - margin: 0; - padding: 0; - border: 1px solid #afafb6; - background: white; - padding: 4px 0; - min-width: 140px; - text-align: left; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -} -.openerp .oe_dropdown_menu > li { - list-style-type: none; - float: none; - display: block; - position: relative; - margin: 0; - padding: 2px 8px; -} -.openerp .oe_dropdown_menu > li:hover { - background-color: #efeff8; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); - background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_dropdown_menu > li > a { - white-space: nowrap; - display: block; - color: #4c4c4c; - text-decoration: none; - width: 200px; - text-overflow: ellipsis; - overflow: hidden; -} -.openerp .oe_dropdown_menu > li > a:hover { - text-decoration: none; -} -.openerp .oe_dropdown_arrow:after { - width: 0; - height: 0; - display: inline-block; - content: "&darr"; - text-indent: -99999px; - vertical-align: top; - margin-top: 8px; - margin-left: 3px; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #404040; - filter: alpha(opacity=50); - opacity: 0.5; -} -.openerp .oe_sidebar { - white-space: nowrap; -} -.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment { - height: 20px; - cursor: pointer; - padding-left: 6px; - margin-top: 6px; -} -.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span { - font-weight: bold; -} -.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file { - width: 200px; -} -.openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover { - background-color: #efeff8; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); - background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item { - position: absolute; - top: 4px; - right: 4px; - display: none; - width: 12px; - height: 12px; - padding: 1px; - color: #8786b7; - line-height: 8px; - text-align: center; - font-weight: bold; - text-shadow: 0 1px 1px white; -} -.openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover { - text-decoration: none; - color: white; - background: #8786b7; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item { - display: inline-block; -} -.openerp .oe_loading { - display: none; - z-index: 100; - position: fixed; - top: 0; - right: 50%; - padding: 4px 12px; - background: #a61300; - color: white; - text-align: center; - border: 1px solid #990000; - border-top: none; - -moz-border-radius-bottomright: 8px; - -moz-border-radius-bottomleft: 8px; - border-bottom-right-radius: 8px; - border-bottom-left-radius: 8px; -} -.openerp .oe_notification { - z-index: 1050; -} -.openerp .oe_webclient_timezone_notification a { - color: white; - text-decoration: underline; -} -.openerp .oe_webclient_timezone_notification p { - margin-top: 1em; -} -.openerp .oe_webclient_timezone_notification dt { - font-weight: bold; -} -.openerp .oe_timezone_systray span { - margin-top: 1px; - background-color: #f6cf3b; -} -.openerp .oe_dialog_warning { - width: 100%; -} -.openerp .oe_dialog_warning p { - text-align: center; -} -.openerp .oe_dialog_icon { - padding: 5px; - width: 32px; -} -.openerp .oe_login { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); - text-align: center; - font-size: 14px; - height: 100%; -} -.openerp .oe_login ul, .openerp .oe_login li { - margin: 0; - list-style-type: none; - padding: 0 0 4px 0; -} -.openerp .oe_login button { - cursor: pointer; - padding: 6px 16px; - border: 1px solid #222222; - color: white; - margin: 0; - background-color: #8c1313; - background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606)); - background-image: -webkit-linear-gradient(top, #b92020, #600606); - background-image: -moz-linear-gradient(top, #b92020, #600606); - background-image: -ms-linear-gradient(top, #b92020, #600606); - background-image: -o-linear-gradient(top, #b92020, #600606); - background-image: linear-gradient(to bottom, #b92020, #600606); - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; -} -.openerp .oe_login input, .openerp .oe_login select { - width: 252px; - font-family: "Lucida Grande", Helvetica, Verdana, Arial; - border: 1px solid #999999; - background: whitesmoke; - -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); - -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); - box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} -.openerp .oe_login input { - margin-bottom: 9px; - padding: 5px 6px; -} -.openerp .oe_login select { - padding: 1px; -} -.openerp .oe_login .oe_login_dbpane { - position: fixed; - top: 0; - right: 8px; - padding: 5px 10px; - color: #eeeeee; - border: solid 1px #333333; - background: #1e1e1e; - background: rgba(30, 30, 30, 0.94); - -moz-border-radius: 0 0 8px 8px; - -webkit-border-radius: 0 0 8px 8px; - border-radius: 0 0 8px 8px; -} -.openerp .oe_login .oe_login_dbpane input { - padding: 2px 4px; - margin: 4px 0; -} -.openerp .oe_login .oe_login_bottom { - position: absolute; - top: 50%; - left: 0; - right: 0; - bottom: 0; - text-shadow: 0 1px 1px #999999; - background-color: #8a0e0e; - background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); - background-image: -webkit-linear-gradient(top, #b41616, #600606); - background-image: -moz-linear-gradient(top, #b41616, #600606); - background-image: -ms-linear-gradient(top, #b41616, #600606); - background-image: -o-linear-gradient(top, #b41616, #600606); - background-image: linear-gradient(to bottom, #b41616, #600606); -} -.openerp .oe_login .oe_login_pane { - position: absolute; - top: 50%; - left: 50%; - margin: -160px -166px; - border: solid 1px #333333; - background: #1e1e1e; - background: rgba(30, 30, 30, 0.94); - padding: 22px 32px; - color: #eeeeee; - text-align: left; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - border-radius: 8px; - -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); - -webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); - box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); -} -.openerp .oe_login .oe_login_pane h2 { - margin-top: 0; - font-size: 18px; -} -.openerp .oe_login .oe_login_logo { - position: absolute; - top: -70px; - left: 0; - width: 100%; - margin: 0 auto; - text-align: center; -} -.openerp .oe_login .oe_login_footer { - position: absolute; - bottom: -40px; - left: 0; - width: 100%; - text-align: center; -} -.openerp .oe_login .oe_login_footer a { - color: #eeeeee; - margin: 0 8px; -} -.openerp .oe_login .oe_login_footer a:hover { - text-decoration: underline; -} -.openerp .oe_login .oe_login_footer span { - font-weight: bold; - font-size: 16px; -} -.openerp .oe_login .oe_login_error_message { - display: none; - background-color: #b41616; - color: #eeeeee; - padding: 14px 18px; - margin-top: 15px; - text-align: center; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); -} -.openerp .oe_login_invalid .oe_login_error_message { - display: inline-block; -} -.openerp .oe_database_manager { - background: white; - color: black; - text-align: left; -} -.openerp .oe_database_manager .oe_database_manager_menu { - color: black; -} -.openerp .oe_webclient { - width: 100%; - height: 100%; - border-spacing: 0px; -} -.openerp .oe_content_full_screen .oe_application { - top: 0; - left: 0; -} -.openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar { - display: none; -} -.openerp .oe_topbar { - width: 100%; - height: 32px; - background-color: #414141; - background-color: #454343; - background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626)); - background-image: -webkit-linear-gradient(top, #646060, #262626); - background-image: -moz-linear-gradient(top, #646060, #262626); - background-image: -ms-linear-gradient(top, #646060, #262626); - background-image: -o-linear-gradient(top, #646060, #262626); - background-image: linear-gradient(to bottom, #646060, #262626); -} -.openerp .oe_topbar .oe_topbar_anonymous_login { - background-color: #dc5f59; - color: #eeeeee; - background-color: #be4343; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fc8787), to(maroon)); - background-image: -webkit-linear-gradient(top, #fc8787, maroon); - background-image: -moz-linear-gradient(top, #fc8787, maroon); - background-image: -ms-linear-gradient(top, #fc8787, maroon); - background-image: -o-linear-gradient(top, #fc8787, maroon); - background-image: linear-gradient(to bottom, #fc8787, maroon); -} -.openerp .oe_topbar .oe_topbar_anonymous_login a { - display: block; - padding: 5px 10px 7px; - line-height: 20px; - height: 20px; - text-decoration: none; - color: white; - background: transparent; - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.openerp .oe_topbar .oe_topbar_anonymous_login a:hover { - background: rgba(0, 0, 0, 0.1); - color: white; - text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; -} -.openerp .oe_topbar .oe_topbar_item { - display: block; - padding: 5px 10px 7px; - line-height: 20px; - height: 20px; - text-decoration: none; - color: #eeeeee; - vertical-align: top; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.openerp .oe_topbar .oe_topbar_item:hover { - background: rgba(0, 0, 0, 0.2); - text-shadow: black 0px 0px 3px; - color: white; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; -} -.openerp .oe_topbar .oe_topbar_avatar { - width: 24px; - height: 24px; - margin: -2px 2px 0 0; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} -.openerp .oe_topbar .oe_topbar_avatar { - vertical-align: top; -} -.openerp .oe_topbar .oe_dropdown_arrow:after { - border-top: 4px solid white; -} -.openerp .oe_topbar .oe_dropdown_menu { - top: 32px; - background: #333333; - background: rgba(37, 37, 37, 0.9); - border-color: #999999; - border-color: rgba(0, 0, 0, 0.2); - border-style: solid; - border-width: 0 1px 1px; - -moz-border-radius: 0 0 6px 6px; - -webkit-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.openerp .oe_topbar .oe_dropdown_menu li { - float: none; - padding: 3px 12px; -} -.openerp .oe_topbar .oe_dropdown_menu li a { - color: #eeeeee; -} -.openerp .oe_topbar .oe_dropdown_menu li:hover { - background-color: #212121; - background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919)); - background-image: -webkit-linear-gradient(top, #292929, #191919); - background-image: -moz-linear-gradient(top, #292929, #191919); - background-image: -ms-linear-gradient(top, #292929, #191919); - background-image: -o-linear-gradient(top, #292929, #191919); - background-image: linear-gradient(to bottom, #292929, #191919); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_topbar .oe_topbar_name { - max-width: 150px; - overflow: hidden; - display: inline-block; - max-height: 100%; - text-overflow: ellipsis; - white-space: nowrap; -} -.openerp .oe_menu { - float: left; - padding: 0; - margin: 0; - font-size: 13px; -} -.openerp .oe_menu > li { - list-style-type: none; - padding: 0; - margin: 0; - float: left; - display: block; - color: #eeeeee; -} -.openerp .oe_menu > li > a { - display: block; - padding: 5px 10px 7px; - line-height: 20px; - height: 20px; - text-decoration: none; - color: #eeeeee; - vertical-align: top; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -webkit-transition: all 0.2s ease-out; - -moz-transition: all 0.2s ease-out; - -ms-transition: all 0.2s ease-out; - -o-transition: all 0.2s ease-out; - transition: all 0.2s ease-out; -} -.openerp .oe_menu > li > a:hover { - background: rgba(0, 0, 0, 0.2); - text-shadow: black 0px 0px 3px; - color: white; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; -} -.openerp .oe_menu > li > .oe_active { - background: rgba(0, 0, 0, 0.3); - text-shadow: black 0px 0px 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; -} -.openerp .oe_user_menu { - float: right; - padding: 0; - margin: 0; -} -.openerp .oe_user_menu li { - list-style-type: none; - float: left; -} -.openerp .oe_user_menu .oe_dropdown_menu { - right: -1px; -} -.openerp .oe_systray > div { - float: left; - padding: 0 4px 0 4px; -} -.openerp .oe_systray { - float: right; -} -.openerp .oe_leftbar { - display: none; - width: 220px; - background: #f0eeee; - border-right: 1px solid #afafb6; - text-shadow: 0 1px 1px white; - padding-bottom: 16px; -} -.openerp a.oe_logo { - position: relative; - width: 220px; - display: block; - text-align: center; -} -.openerp a.oe_logo img { - margin: 14px 0; - border: 0; -} -.openerp a.oe_logo .oe_logo_edit { - margin: 14px 0; - position: absolute; - top: 1px; - padding: 4px; - width: 100%; - display: none; - text-align: center; - color: #eeeeee; - background: rgba(37, 37, 37, 0.9); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; -} -.openerp a.oe_logo:hover .oe_logo_edit_admin { - display: block; -} -.openerp .oe_footer { - position: fixed; - bottom: 0; - padding: 4px 0; - background: #f0eeee; - width: 220px; - text-align: center; -} -.openerp .oe_footer a { - font-weight: bold; - color: black; -} -.openerp .oe_footer a span { - color: #c81010; -} -.openerp .oe_secondary_menu_section { - font-weight: bold; - margin-left: 8px; - color: #7c7bad; -} -.openerp .oe_secondary_submenu { - padding: 2px 0 8px 0; - margin: 0; -} -.openerp .oe_secondary_submenu li { - position: relative; - margin: 0; - padding: 1px 0 1px 20px !important; - list-style-type: none; -} -.openerp .oe_secondary_submenu li a { - display: block; - color: #4c4c4c; - padding: 2px 4px 2px 0; -} -.openerp .oe_secondary_submenu li .oe_menu_label { - position: absolute; - top: 1px; - right: 1px; - font-size: 10px; - background: #7c7bad; - color: white; - padding: 2px 4px; - margin: 1px 6px 0 0; - border: 1px solid lightGray; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); -} -.openerp .oe_secondary_submenu .oe_menu_text { - white-space: nowrap; - overflow: hidden; - display: inline-block; - text-overflow: ellipsis; - max-width: 85%; -} -.openerp .oe_secondary_submenu .oe_menu_counter { - float: right; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - margin: 1px; - padding: 1px 4px; - border: none; -} -.openerp .oe_secondary_submenu .oe_menu_counter:hover { - cursor: pointer; - -webkit-transform: scale(1.1); - -moz-transform: scale(1.1); - -ms-transform: scale(1.1); - -o-transform: scale(1.1); - transform: scale(1.1); -} -.openerp .oe_secondary_submenu .oe_active { - border-top: 1px solid lightGray; - border-bottom: 1px solid #dedede; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); - background: #7c7bad; -} -.openerp .oe_secondary_submenu .oe_active a { - color: white; -} -.openerp .oe_secondary_submenu .oe_active .oe_menu_label { - background: #eeeeee; - color: #7c7bad; - text-shadow: 0 1px 1px white; - -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); -} -.openerp .oe_secondary_submenu .oe_active .oe_menu_counter { - background: #eeeeee; - color: #7c7bad; - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); -} -.openerp .oe_secondary_submenu .oe_menu_toggler:before { - width: 0; - height: 0; - display: inline-block; - content: "&darr"; - text-indent: -99999px; - vertical-align: top; - margin-left: -12px; - margin-top: 4px; - margin-right: 4px; - border-top: 4px solid transparent; - border-bottom: 4px solid transparent; - border-left: 4px solid #4c4c4c; - filter: alpha(opacity=50); - opacity: 0.5; -} -.openerp .oe_secondary_submenu .oe_menu_opened:before { - margin-top: 6px; - margin-left: -16px; - margin-right: 4px; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #4c4c4c; -} -.openerp .oe_secondary_submenu .oe_secondary_submenu { - margin-left: -20px; -} -.openerp .oe_secondary_submenu .oe_secondary_submenu li { - margin-left: 20px; -} -.openerp .oe_about { - background-color: white; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; -} -.openerp .oe_about a { - color: #7c7bad; -} -.openerp .oe_about a:hover { - text-decoration: underline; -} -.openerp .oe_about a:focus { - outline: none; -} -.openerp .oe_about .oe_logo { - margin-left: -6px; -} -.openerp .oe_about .oe_bottom { - position: absolute; - top: 50%; - left: 0; - right: 0; - bottom: 0; - text-shadow: 0 1px 1px #999999; - background-color: #8a0e0e; - background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); - background-image: -webkit-linear-gradient(top, #b41616, #600606); - background-image: -moz-linear-gradient(top, #b41616, #600606); - background-image: -ms-linear-gradient(top, #b41616, #600606); - background-image: -o-linear-gradient(top, #b41616, #600606); - background-image: linear-gradient(to bottom, #b41616, #600606); - color: #eeeeee; - padding: 0 16px; - -moz-border-radius: 0 0 2px 2px; - -webkit-border-radius: 0 0 2px 2px; - border-radius: 0 0 2px 2px; -} -.openerp .oe_about .oe_bottom a { - color: #eeeeee; -} -.openerp .oe_application { - width: 100%; - height: 100%; -} -.openerp .oe_application a { - color: #7c7bad; -} -.openerp .oe_application a:hover { - text-decoration: underline; -} -.openerp .oe_application > div { - height: 100%; -} -.openerp .oe_application .oe_breadcrumb_item:not(:last-child) { - max-width: 7em; - white-space: nowrap; - text-overflow: ellipsis; -} -.openerp .oe_application .oe_breadcrumb_title > * { - display: inline-block; - overflow: hidden; -} -.openerp .oe_view_manager { - display: table; - height: inherit; - width: 100%; -} -.openerp .oe_view_manager .oe_view_manager_body { - display: table-row; - height: inherit; -} -.openerp .oe_view_manager .oe_view_manager_view_kanban { - height: inherit; -} -.openerp .oe_view_manager table.oe_view_manager_header { - border-collapse: separate; - width: 100%; - table-layout: fixed; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row { - clear: both; - text-shadow: 0 1px 1px white; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td { - padding-top: 0; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td { - padding-top: 8px; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar { - margin: 0px auto; - text-align: center; -} -.openerp .oe_view_manager table.oe_view_manager_header td { - line-height: 26px; -} -.openerp .oe_view_manager table.oe_view_manager_header h2 { - font-size: 18px; - margin: 0; - float: left; -} -.openerp .oe_view_manager table.oe_view_manager_header h2 a { - color: #7c7bad; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu { - line-height: normal; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group { - display: inline-block; - border: 1px solid #ababab; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li { - float: left; - border-right: 1px solid #ababab; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child { - border: none; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a { - color: #4c4c4c; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover { - text-decoration: none; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active { - background: #999999; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a { - color: white; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); -} -.openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons { - white-space: nowrap; -} -.openerp .oe_view_manager .oe_view_manager_switch { - padding: 0; - margin: 0 0 0 8px; -} -.openerp .oe_view_manager .oe_view_manager_switch li { - margin: 0; - width: 24px; - height: 24px; - line-height: 16px; - padding: 0; - text-align: center; - list-style-type: none; -} -.openerp .oe_view_manager .oe_view_manager_switch li a { - position: relative; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after { - padding: 2px; - content: "i"; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after { - content: "m"; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after { - font-family: "mnmliconsRegular" !important; - font-size: 21px; - font-weight: 300 !important; - content: "}"; - top: -2px; - position: relative; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after { - font-family: "mnmliconsRegular" !important; - font-size: 21px; - font-weight: 300 !important; - content: "y"; - top: -2px; - position: relative; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after { - content: "P"; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after { - content: "k"; -} -.openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after { - content: "f"; -} -.openerp .oe_list_pager { - line-height: 26px; -} -.openerp .oe_pager_value { - float: left; - margin-right: 8px; -} -.openerp ul.oe_pager_group { - padding: 0; - margin: 0; -} -.openerp .oe_pager_group { - float: left; - height: 24px; - line-height: 24px; - display: inline-block; - border: 1px solid #ababab; - cursor: pointer; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - border-radius: 5px; -} -.openerp .oe_pager_group li { - height: 24px; - line-height: 24px; - padding: 0; - margin: 0; - list-style-type: none; - float: left; - border-right: 1px solid #ababab; -} -.openerp .oe_pager_group li:last-child { - border: none; -} -.openerp .oe_pager_group a { - color: #4c4c4c; - padding: 0 8px; -} -.openerp .oe_pager_group a:hover { - text-decoration: none; -} -.openerp .oe_pager_group .active { - background: #999999; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; -} -.openerp .oe_pager_group .active a { - color: white; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); -} -.openerp .oe_list_pager.oe_list_pager_single_page .oe_pager_group { - display: none; -} -.openerp .oe_view_manager_current { - height: 100%; -} -.openerp .oe_view_manager_current > .oe_view_manager_header { - border-bottom: 1px solid #cacaca; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); - -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); -} -.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td { - padding: 8px; -} -.openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row:first-child td { - padding-top: 8px; -} -.openerp .oe_view_manager_inline, .openerp .oe_view_manager_inlineview { - height: 100%; -} -.openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header { - display: none; -} -.openerp .oe_popup_form > .oe_formview > .oe_form_pager { - display: none !important; -} -.openerp .oe_popup_list_pager { - float: right; -} -.openerp .oe_searchview { - cursor: text; - position: relative; - float: right; - padding: 1px 0; - line-height: 18px; - width: 400px; - border: 1px solid #ababab; - background: white; - -moz-border-radius: 13px; - -webkit-border-radius: 13px; - border-radius: 13px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; -} -.openerp .oe_searchview input, .openerp .oe_searchview textarea { - padding: 3px; - height: 14px; - font-size: 12px; - line-height: 18px; -} -.openerp .oe_searchview.oe_focused { - border-color: #a6a6fe; - -moz-box-shadow: 0 1px 2px #a6a6fe inset; - -webkit-box-shadow: 0 1px 2px #a6a6fe inset; - box-shadow: 0 1px 2px #a6a6fe inset; -} -.openerp .oe_searchview .oe_searchview_clear { - cursor: pointer; - position: absolute; - top: 0; - right: 18px; - width: 15px; - height: 100%; - background: url(../img/search_reset.gif) center center no-repeat; -} -.openerp .oe_searchview .oe_searchview_unfold_drawer { - position: absolute; - top: 0; - right: 0; - height: 100%; - padding: 0 7px 0 4px; - color: #cccccc; - cursor: pointer; -} -.openerp .oe_searchview .oe_searchview_unfold_drawer:hover { - color: #999999; -} -.openerp .oe_searchview .oe_searchview_unfold_drawer:before { - position: absolute; - top: 10px; - right: 7px; - width: 0; - height: 0; - display: inline-block; - content: ""; - vertical-align: top; - border-top: 5px solid #4c4c4c; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - filter: alpha(opacity=50); - opacity: 0.5; -} -.openerp .oe_searchview .oe_searchview_search { - font-size: 1px; - letter-spacing: -1px; - color: transparent; - font-weight: normal; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - position: absolute; - left: 3px; - top: 1px; - padding: 0; - border: none; - background: transparent; -} -.openerp .oe_searchview .oe_searchview_search:before { - font: 21px "mnmliconsRegular"; - content: "r"; - color: #a3a3a3; -} -.openerp .oe_searchview .oe_searchview_facets { - min-height: 22px; - margin-left: 15px; -} -.openerp .oe_searchview .oe_searchview_facets * { - vertical-align: top; - display: inline-block; - line-height: 17px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet { - height: 18px; - margin: 1px 0; - font-size: 11px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus { - outline: none; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input { - padding: 0 0 0 6px; - font-size: 12px; - height: 16px; - margin-top: 3px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus { - outline: none; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet { - position: relative; - cursor: pointer; - padding: 0; - -webkit-font-smoothing: auto; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus { - border-color: #a6a6fe; - -moz-box-shadow: 0 0 3px 1px #a6a6fe; - -webkit-box-shadow: 0 0 3px 1px #a6a6fe; - box-shadow: 0 0 3px 1px #a6a6fe; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values { - background: #f0f0fa; - -moz-border-radius: 0 3px 3px 0; - -webkit-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value { - height: 18px; - padding: 0 4px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category { - color: white; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i { - font-size: 16px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value { - border-left: 1px solid #afafb6; - text-shadow: 0 1px 1px white; - color: #4c4c4c; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child { - padding-right: 16px; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove { - position: absolute; - top: 3px; - right: 3px; - color: #8786b7; - line-height: 8px; - width: 12px; - height: 12px; - padding-top: 1px; - text-align: center; - font-weight: bold; - cursor: pointer; - text-shadow: 0 1px 1px white; -} -.openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover { - color: white; - background: #8786b7; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer { - display: block; -} -.openerp .oe_searchview .oe_searchview_drawer { - position: absolute; - z-index: 2; - margin-top: 4px; - top: 100%; - right: -1px; - background-color: white; - min-width: 100%; - display: none; - border: 1px solid #afafb6; - text-align: left; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); - box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); -} -.openerp .oe_searchview .oe_searchview_drawer > div { - border-top: 1px solid #cccccc; - margin: 0; - padding: 8px; -} -.openerp .oe_searchview .oe_searchview_drawer > div:first-child { - border-top: none; - margin: 0; -} -.openerp .oe_searchview .oe_searchview_drawer h3 { - margin: 8px 4px 4px 12px; - color: #7c7bad; - font-size: 13px; -} -.openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * { - margin: 0; - cursor: pointer; - font-weight: normal; - display: inline-block; -} -.openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover { - background-color: #f0f0fa; -} -.openerp .oe_searchview .oe_searchview_drawer h4:before { - content: "▸ "; - color: #a3a3a3; -} -.openerp .oe_searchview .oe_searchview_drawer button { - margin: 4px 0; -} -.openerp .oe_searchview .oe_searchview_drawer .button { - border: none; - background: transparent; - padding: 0 2px; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section { - display: table; - width: 100%; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - display: table-cell; - width: 50%; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul { - margin: 0 8px 8px; - padding: 0; - list-style: none; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li { - list-style: none; - padding: 2px 4px 2px 20px; - line-height: 14px; - color: inherit; - cursor: pointer; - position: relative; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before { - content: "W"; - font-family: "entypoRegular" !important; - font-size: 24px; - font-weight: 300 !important; - color: #a3a3a3; - position: absolute; - left: 4px; - top: -2px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover { - background-color: #f0f0fa; -} -.openerp .oe_searchview .oe_searchview_drawer form { - margin-left: 12px; -} -.openerp .oe_searchview .oe_searchview_drawer form p { - margin: 4px 0; - line-height: 18px; -} -.openerp .oe_searchview .oe_searchview_drawer form button { - margin: 0 0 8px 0; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom { - padding: 0 8px 8px 8px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form { - display: none; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li { - cursor: pointer; - position: relative; - line-height: 14px; - padding: 2px 4px 2px 20px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover { - background-color: #f0f0fa; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button { - position: absolute; - top: 0; - right: 5px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form { - display: none; - margin-top: 2px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form { - display: none; - margin-top: 8px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before { - content: "Z"; - font-family: "entypoRegular" !important; - font-size: 24px; - font-weight: 300 !important; - margin-right: 4px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul { - list-style: none; - padding: 0; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li { - cursor: pointer; - position: relative; - list-style: none; - margin: 0; - white-space: nowrap; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or { - visibility: hidden; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or { - opacity: 0.5; - margin-left: -14px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before { - content: "▾ "; - position: relative; - top: -1px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_opened form { - display: block; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop { - display: inline-block; - width: 12px; - height: 12px; - line-height: 12px; - padding: 1px; - color: #8786b7; - line-height: 8px; - text-align: center; - font-weight: bold; - text-shadow: 0 1px 1px white; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover { - text-decoration: none; - color: white; - background: #8786b7; - text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete { - display: none; - position: absolute; - bottom: 1px; - right: 4px; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete { - display: inline-block; -} -.openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after { - content: ","; - font-family: "entypoRegular" !important; - font-size: 22px; - font-weight: 300 !important; - margin: 0 0 0 4px; - padding: 0; -} -.openerp .oe_view_nocontent { - padding: 15px; - margin-top: 0; - color: #777777; - font-size: 125%; - max-width: 700px; -} -.openerp .oe_view_nocontent .oe_view_nocontent_create { - margin-top: 0; - padding-top: 35px; - color: #4c4c4c; -} -.openerp .oe_view_nocontent .oe_view_nocontent_create:before { - content: ""; - display: inline-block; - position: absolute; - width: 70px; - height: 80px; - margin-left: -70px; - margin-top: -50px; - background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 0px 0px; -} -.openerp .oe_view_nocontent > p { - padding-left: 78px; -} -.openerp .oe_view_nocontent .oe_empty_custom_dashboard { - background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0; - margin-top: -15px; - padding: 100px 0 0 137px; - min-height: 327px; - margin-left: -15px; -} -.openerp .oe_view.oe_cannot_create .oe_view_nocontent_create { - display: none; -} -.openerp .oe_formview { - background: white; -} -.openerp .oe_form_dropdown_section { - position: relative; - display: inline-block; -} -.openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea { - background-color: #ff6666 !important; - border: 1px solid #dd0000 !important; -} -.openerp .oe_view_manager_current .oe_form_editable .oe_highlight { - color: #404040; - background: none; -} -.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight { - background-color: #e3e3e3; - background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); - background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8); - background-image: -moz-linear-gradient(top, #efefef, #d8d8d8); - background-image: -ms-linear-gradient(top, #efefef, #d8d8d8); - background-image: -o-linear-gradient(top, #efefef, #d8d8d8); - background-image: linear-gradient(to bottom, #efefef, #d8d8d8); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -} -.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active { - background-color: #ececec; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6)); - background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6); - background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6); - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover { - background-color: #ececec; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); - background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); - background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -} -.openerp .oe_form_invisible { - display: none !important; -} -.openerp .oe_form_editable .oe_read_only { - display: none !important; -} -.openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { - display: none !important; -} -.openerp .oe_form_readonly .oe_form .oe_form_field_date { - width: auto; -} -.openerp .oe_form_nosheet { - margin: 16px; -} -.openerp .oe_form_nosheet > header { - margin: -16px -16px 0 -16px; - padding: 0; -} -.openerp .oe_form_nosheet.oe_form_nomargin { - margin: 0; -} -.openerp .oe_form_nosheet.oe_form_nomargin > header { - margin: 0; -} -.openerp .oe_form_sheetbg { - padding: 16px 0; -} -.openerp .oe_form_sheet_width { - min-width: 650px; - max-width: 860px; - margin: 0 auto; -} -.openerp .oe_form_sheet { - background: white; - min-height: 330px; - padding: 16px; -} -.openerp .oe_form_sheet .oe_list { - overflow-x: auto; -} -.openerp .oe_application .oe_form_sheetbg { - background: url(/web/static/src/img/form_sheetbg.png); - border-bottom: 1px solid #dddddd; -} -.openerp .oe_application .oe_form_sheet { - border: 1px solid #c8c8d3; - -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); - -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); - box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); -} -.openerp .oe_application .oe_form_sheet .ui-tabs { - margin: 0 -16px; -} -.openerp .oe_application .oe_form_sheet .oe_notebook_page { - padding: 0 16px; -} -.openerp .oe_form header { - position: relative; - border-bottom: 1px solid #cacaca; - padding-left: 2px; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); -} -.openerp .oe_form header > span { - margin-left: 4px; -} -.openerp .oe_form header ul { - display: inline-block; - float: right; -} -.openerp .oe_form header .oe_button { - margin: 3px 2px 1px; -} -.openerp .oe_form header .oe_button:first-child { - margin-left: 6px; -} -.openerp .oe_form header .oe_tags { - margin: 5px 0 0 5px; - width: 400px; - padding-bottom: 0; -} -.openerp .oe_form div.oe_chatter { - box-sizing: border-box; - min-width: 682px; - max-width: 892px; - margin: 0 auto; - padding: 16px 16px 48px; -} -.openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol { - color: #aaaaaa; - max-width: 650px; -} -.openerp .oe_form div.oe_form_configuration label { - min-width: 150px; -} -.openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label { - padding: 1px 0; -} -.openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div { - padding: 1px 0; -} -.openerp .oe_form .oe_subtotal_footer { - width: 1% !important; -} -.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell { - text-align: right; - padding: 0 !important; -} -.openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label { - border-right: none; -} -.openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator { - width: 108px; - border-top: 1px solid #cacaca; - margin-top: 4px; - padding-top: 4px; - font-weight: bold; - font-size: 18px; -} -.openerp .oe_form .oe_subtotal_footer label:after { - content: ":"; -} -.openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator { - font-weight: bold !important; - padding: 2px 11px 2px 0px !important; -} -.openerp .oe_form .oe_subtotal_footer label.oe_form_label_help { - font-weight: normal; -} -.openerp .oe_form .oe_form_box_info { - background: #ffee99; - border-bottom: 1px solid #ccbb66; - padding: 4px; -} -.openerp .oe_form .oe_form_box_info > p { - margin: auto; -} -.openerp .oe_form .oe_form_box_warning { - background: #bd362f; - border-bottom: 1px solid #990000; - padding: 4px; -} -.openerp .oe_form .oe_form_box_warning * { - color: white; - text-shadow: none; -} -.openerp .oe_form .oe_form_box_warning > p { - margin: auto; -} -.openerp .oe_form .oe_form_button { - margin: 2px; -} -.openerp .oe_form td.oe_form_group_cell_label { - border-right: 1px solid #dddddd; - padding: 2px 0px; -} -.openerp .oe_form td.oe_form_group_cell_label label { - line-height: 18px; - display: block; - min-width: 140px; -} -.openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell { - padding: 2px 0 2px 8px; -} -.openerp .oe_form .oe_form_group { - width: 100%; - margin: 9px 0 9px 0; -} -.openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right { - padding-left: 20px; -} -.openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] { - font-weight: bold; - white-space: nowrap; - padding-right: 8px; -} -.openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span { - font-size: 80%; - color: darkGreen; - vertical-align: top; - position: relative; - top: -4px; - padding: 0 2px; -} -.openerp .oe_horizontal_border { - border-bottom: 1px solid black; -} -.openerp .oe_horizontal_separator { - font-weight: bold; - font-size: 20px; - margin: 15px 0px 10px 0px; - color: #7c7bad; -} -.openerp .oe_horizontal_separator:empty { - height: 5px; -} -.openerp .oe_vertical_separator { - border-left: 1px solid #666666; - padding: 0 4px 0 4px; -} -.openerp .oe_form_field_progressbar { - display: inline-block; - min-width: 70px; -} -.openerp .oe_form_field_radio.oe_horizontal { - white-space: nowrap; -} -.openerp .oe_form_field_radio.oe_form_required .oe_radio_input { - border: 1px solid transparent; - display: inline-block; - height: 12px; - width: 12px; - vertical-align: bottom; - border-radius: 10px; - margin: 1px 0; -} -.openerp .oe_form_field_radio.oe_form_required.oe_form_invalid .oe_radio_input { - border-color: red; -} -.openerp .oe_form_field_radio.oe_horizontal label, -.openerp .oe_form_field_radio.oe_horizontal div { - display: inline-block; - text-align: center; - height: 16px; -} -.openerp .oe_form_field_radio.oe_vertical label { - margin-left: 4px; -} -.openerp .oe_form_field_progressbar.ui-progressbar { - height: 22px; - font-size: 10px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #999999; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background: white; - min-width: 50px; -} -.openerp .oe_form_field_progressbar.ui-progressbar span { - position: absolute; - margin-left: 10px; - font-weight: bold; -} -.openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header { - background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; -} -.openerp .oe_form .oe_form_field_text { - width: 100%; -} -.openerp .oe_form .oe_form_field_text .oe_form_text_content { - text-overflow: ellipsis; - display: inline-block; - white-space: pre-wrap; - overflow-x: hidden; - width: 100%; -} -.openerp .oe_form .oe_form_field_char input, -.openerp .oe_form .oe_form_field_url input, -.openerp .oe_form .oe_form_field_email input, -.openerp .oe_form .oe_form_field_text textarea, -.openerp .oe_form .oe_form_field_selection select { - width: 100%; -} -.openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea { - width: 500px; -} -.openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 { - margin: 0 0 4px 0; -} -.openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input { - height: inherit !important; - font-size: inherit; -} -.openerp .oe_form .oe_form_field { - width: 100%; - display: inline-block; - padding: 2px 2px 2px 0px; - vertical-align: top; -} -.openerp .oe_form .oe_form_field input { - margin: 0px; -} -.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select { - height: 22px; - padding-top: 2px; -} -.openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - background: white; - min-width: 60px; - color: #1f1f1f; - font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; -} -.openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] { - background: #e5e5e5 !important; - color: #666666; -} -.openerp .oe_form textarea[disabled] { - border: none; - padding-left: 8px; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - -moz-border-radius: 0px; - -webkit-border-radius: 0px; - border-radius: 0px; - color: #4c4c4c; -} -.openerp .oe_form textarea.oe_inline[disabled] { - border-left: 8px solid #eeeeee; -} -.openerp .oe_form .oe_form_field_url button img { - vertical-align: top; -} -.openerp .oe_form .oe_form_field_monetary, -.openerp .oe_form .oe_form_field_date, -.openerp .oe_form .oe_form_field_datetime { - white-space: nowrap; -} -.openerp .oe_form .oe_form_field_boolean { - width: auto; -} -.openerp .oe_form .oe_datepicker_container { - display: none; -} -.openerp .oe_form .oe_datepicker_root { - display: inline-block; -} -.openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) { - background-color: #d2d2ff !important; -} -.openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea { - background-color: #ff6666 !important; - border: 1px solid #dd0000 !important; -} -.openerp .oe_form .oe_input_icon { - cursor: pointer; - margin: 3px 0 0 -21px; - vertical-align: top; -} -.openerp .oe_form .oe_input_icon_disabled { - position: absolute; - cursor: default; - opacity: 0.5; - filter: alpha(opacity=50); - right: 5px; - top: 3px; -} -.openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button { - display: none; -} -.openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button { - float: right; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - border-bottom-left-radius: 0px; - height: 22px; -} -.openerp .oe_form .oe_form_field_with_button input { - width: 100%; -} -.openerp .oe_form .oe_form_field_with_button > div { - position: relative; - overflow: hidden; -} -.openerp .oe_form .oe_form_embedded_html { - position: relative; - width: 600px; - margin-left: 130px; - margin-top: 32px; - margin-bottom: 32px; - text-align: justify; -} -.openerp .oe_form_editable .oe_form .oe_form_field_integer input { - width: 6em; -} -.openerp .oe_form_editable .oe_form .oe_form_field_float input { - width: 7em; -} -.openerp .oe_form_editable .oe_form .oe_form_field_date input { - width: 7.5em; -} -.openerp .oe_form_editable .oe_form .oe_form_field_datetime input { - width: 11.5em; -} -.openerp .oe_hidden_input_file { - position: relative; -} -.openerp .oe_hidden_input_file input.oe_form_binary_file { - z-index: 0; - line-height: 0; - font-size: 12px; - position: absolute; - top: 1px; - left: 0; - right: 0; - opacity: 0; - filter: alpha(opacity=0); - -ms-filter: "alpha(opacity=0)"; - margin: 0; - padding: 0; -} -.openerp .oe_form .oe_form_field_image { - padding: 0; - position: relative; - display: inline-block; - width: auto; - vertical-align: top; -} -.openerp .oe_form .oe_form_field_image .oe_form_field_image_controls { - position: absolute; - top: 1px; - padding: 4px 0; - width: 100%; - display: none; - text-align: center; - color: #eeeeee; - background: rgba(37, 37, 37, 0.9); - -moz-border-radius: 3px 3px 0 0; - -webkit-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; -} -.openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls { - display: block; -} -.openerp .oe_fileupload { - display: inline-block; - clear: both; - width: 100%; -} -.openerp .oe_fileupload .oe_add { - float: left; - position: relative; - width: 100%; - left: 2px; - top: 7px; - overflow: hidden; -} -.openerp .oe_fileupload .oe_add button { - display: inline; - height: 24px; - font-size: 12px; - line-height: 12px; - vertical-align: middle; -} -.openerp .oe_fileupload .oe_add button.oe_attach { - width: 24px; - overflow: hidden; - width: 24px; - overflow: hidden; - background: transparent; - color: #7c7bad; - box-shadow: none; - border: none; - text-shadow: none; -} -.openerp .oe_fileupload .oe_add button.oe_attach .oe_e { - position: relative; - top: -1px; - left: -9px; -} -.openerp .oe_fileupload .oe_add input.oe_form_binary_file { - display: inline-block; - margin-left: -85px; - height: 22px; - width: 152px; - margin-top: -24px; - cursor: pointer; -} -.openerp .oe_fileupload .oe_add .oe_attach_label { - color: #7c7bad; - margin-left: -3px; -} -.openerp .oe_fileupload .oe_attachments { - margin-bottom: 4px; - margin-right: 0px; - font-size: 12px; - border-radius: 2px; - border: solid 1px rgba(124, 123, 173, 0.14); -} -.openerp .oe_fileupload .oe_attachments .oe_attachment { - padding: 2px; - padding-left: 4px; - padding-right: 4px; -} -.openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e { - font-size: 23px; - margin-top: -5px; -} -.openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e:hover { - text-decoration: none; -} -.openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(odd) { - background: white; -} -.openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(even) { - background: #f4f5fa; -} -.openerp .oe_form_field_many2one td:first-child { - position: relative; -} -.openerp .oe_form_field_many2one span.oe_m2o_drop_down_button { - position: absolute; - top: 2px; - right: 0px; -} -.openerp .oe_form_field_many2one .oe_m2o_cm_button { - line-height: 14px; - float: right; - padding-left: 2px; -} -.openerp .oe_form_field_many2one input { - padding-right: 13px; -} -.openerp.ui-autocomplete li.oe_m2o_dropdown_option a { - font-style: italic; - padding-left: 2em; -} -.openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option { - margin-top: 10px; -} -.openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable { - display: inline-block; - margin: 0; - padding: 0 18px 0 0; -} -.openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li { - display: inline-block; - list-style-type: none; - margin: 0 -18px 0 0; - padding: 0; - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); -} -.openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label { - border-left: 1px solid #cacaca; - padding-left: 14px; -} -.openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child { - border-right: 1px solid #cacaca; -} -.openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label { - padding-right: 14px; -} -.openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow { - display: none; -} -.openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label { - color: #4c4c4c; - text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede; - padding: 7px; - display: inline-block; - padding-left: 24px; - margin: 0; - position: relative; -} -.openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow { - width: 17px; - display: inline-block; - vertical-align: top; - overflow: hidden; - margin-left: -5px; -} -.openerp ul.oe_form_status li .arrow span, .openerp ul.oe_form_status_clickable li .arrow span { - position: relative; - width: 24px; - height: 24px; - display: inline-block; - margin-left: -12px; - margin-top: 3px; - box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2); - background-color: #dedede; - background: -moz-linear-gradient(135deg, #dedede, #fcfcfc); - background: -o-linear-gradient(135deg, #fcfcfc, #dedede); - background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede)); - background: -ms-linear-gradient(top, #fcfcfc, #dedede); - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} -.openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active { - background-color: #5382b9; - background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4)); - background-image: -webkit-linear-gradient(top, #729fcf, #3465a4); - background-image: -moz-linear-gradient(top, #729fcf, #3465a4); - background-image: -ms-linear-gradient(top, #729fcf, #3465a4); - background-image: -o-linear-gradient(top, #729fcf, #3465a4); - background-image: linear-gradient(to bottom, #729fcf, #3465a4); -} -.openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span { - background-color: #3465a4; - background: -moz-linear-gradient(135deg, #3465a4, #729fcf); - background: -o-linear-gradient(135deg, #729fcf, #3465a4); - background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4)); - background: -ms-linear-gradient(top, #729fcf, #3465a4); -} -.openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label { - color: white; - text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; -} -.openerp ul.oe_form_status_clickable li { - cursor: pointer; -} -.openerp ul.oe_form_status_clickable li:hover { - background-color: #d9d9d9; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca)); - background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); - background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); -} -.openerp ul.oe_form_status_clickable li:hover .label { - text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede; -} -.openerp ul.oe_form_status_clickable li:hover .arrow span { - background-color: #d9d9d9; - background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca)); - background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca); - background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); - background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); -} -.openerp ul.oe_form_status_clickable li .label { - color: #7c7bad; -} -.openerp ul.oe_form_status_clickable li.oe_active:hover { - background-color: #3a699f; - background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d)); - background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d); - background-image: -moz-linear-gradient(top, #4c85c2, #284d7d); - background-image: -ms-linear-gradient(top, #4c85c2, #284d7d); - background-image: -o-linear-gradient(top, #4c85c2, #284d7d); - background-image: linear-gradient(to bottom, #4c85c2, #284d7d); -} -.openerp ul.oe_form_status_clickable li.oe_active:hover .label { - text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4; -} -.openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span { - background-color: #284d7d; - background: -moz-linear-gradient(135deg, #284d7d, #4c85c2); - background: -o-linear-gradient(135deg, #4c85c2, #284d7d); - background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d)); - background: -ms-linear-gradient(top, #4c85c2, #284d7d); -} -.openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page { - display: none; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page { - display: none !important; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_view_list, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_view_list { - min-height: 132px; -} -.openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add { - font-weight: bold; -} -.openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead { - border-bottom: 1px; -} -.openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) { - background: transparent; -} -.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save { - background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat; -} -.openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before { - visibility: hidden; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top { - display: none; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td { - padding: 0px 8px; - line-height: 16px; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i { - font-size: 13px; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group { - height: auto; - line-height: 16px; -} -.openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li { - height: auto; - line-height: 16px; -} -.openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save { - visibility: hidden; -} -.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required { - background-color: #d2d2ff; -} -.openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly { - background-color: #eeeeee; -} -.openerp .oe_list_editable .oe_list_content td.oe_list_field_cell { - padding: 4px 6px 3px; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) { - color: transparent; - text-shadow: none; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * { - visibility: hidden; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button { - top: 5px; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button { - line-height: 19px; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_input_icon { - margin-top: 5px; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field { - min-width: 0; - max-width: none; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea { - height: 27px; - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - border: 1px solid #aaaaff; - margin: 0; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field select { - min-width: 0; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input { - text-align: right; - width: 100% !important; -} -.openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master { - width: 100% !important; -} -.openerp .oe_list_group_name { - white-space: nowrap; -} -.openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page { - display: none; -} -.openerp .oe_list_buttons .oe_alternative { - visibility: hidden; -} -.openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard { - display: none; -} -.openerp .oe_list_buttons.oe_editing .oe_list_add { - display: none; -} -.openerp .oe_list_buttons.oe_editing .oe_list_save { - display: inline-block; -} -.openerp .oe_list_buttons.oe_editing .oe_list_discard { - display: inline; -} -.openerp .oe_list_buttons.oe_editing .oe_alternative { - visibility: visible; -} -.openerp .oe_list.oe_cannot_edit .oe_list_header_handle, .openerp .oe_list.oe_cannot_edit .oe_list_field_handle { - display: none !important; - padding: 0 !important; -} -.openerp .oe_list.oe_cannot_delete .oe_list_record_delete { - display: none !important; -} -.openerp .oe_list .oe_form .oe_form_nosheet { - margin: 0; - padding: 0; - border: none; -} -.openerp .oe_list .oe_form .oe_form_field { - width: auto; - position: absolute; - margin: 0 !important; - padding: 0; -} -.openerp .oe_list .oe_form .oe_form_field_boolean { - padding: 1px 6px 3px; -} -.openerp .oe_list .oe_list_content .oe_group_header { - background-color: #ededed; - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); - background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); - background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); - background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); - background-image: -o-linear-gradient(top, #fcfcfc, #dedede); - background-image: linear-gradient(to bottom, #fcfcfc, #dedede); -} -.openerp .oe_list_content { - width: 100%; -} -.openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after { - border-width: 0; -} -.openerp .oe_list_content td.oe_number { - text-align: right !important; - max-width: 100px; -} -.openerp .oe_list_content td.oe_list_field_date, .openerp .oe_list_content th.oe_list_header_date { - min-width: 6em; -} -.openerp .oe_list_content > thead { - border-bottom: 2px solid #cacaca; - background: #eeeeee; - vertical-align: top; -} -.openerp .oe_list_content td, .openerp .oe_list_content th { - padding: 3px 6px; - line-height: 18px; -} -.openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div { - cursor: pointer; -} -.openerp .oe_list_content th.oe_sortable div { - position: relative; -} -.openerp .oe_list_content th.oe_sortable div:after { - float: right; - margin-right: 6px; - content: ""; - margin-top: 7px; - border-width: 0 4px 4px; - border-style: solid; - border-color: black transparent; - visibility: hidden; -} -.openerp .oe_list_content th.sortup div:after { - visibility: visible; - filter: alpha(opacity=60); - opacity: 0.6; -} -.openerp .oe_list_content .oe_list_header_many2many_tags { - min-width: 70px; -} -.openerp .oe_list_content th.sortdown div:after { - border-bottom: none; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid black; - visibility: visible; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; - filter: alpha(opacity=60); - opacity: 0.6; -} -.openerp .oe_list_content > tbody { - cursor: pointer; -} -.openerp .oe_list_content > tbody > tr { - height: 27px; - border-top: 1px solid #dddddd; -} -.openerp .oe_list_content > tbody > tr > td.oe_list_field_cell { - padding: 3px 6px; - white-space: pre-line; -} -.openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button { - border: none; - background: transparent; - padding: 0; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} -.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child { - width: 17px; -} -.openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after { - border-width: 0; -} -.openerp .oe_list_content > tbody > tr > td.oe_list_field_boolean input { - filter: alpha(opacity=50); - opacity: 0.5; -} -.openerp .oe_list_content > tbody > tr:nth-child(odd) { - background-color: #f0f0fa; - background-color: #efeff8; - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); - background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); - background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); -} -.openerp .oe_list_content > tfoot { - border-top: 2px solid #cacaca; - border-bottom: 1px solid #cacaca; - background: #eeeeee; - font-weight: bold; -} -.openerp .oe_list_content .numeric { - text-align: right; - width: 82px; -} -.openerp .oe_list_content .numeric input { - text-align: right; -} -.openerp .oe_list_content th.oe_list_header_handle { - font-size: 1px; - overflow: hidden; - text-indent: -9001px; -} -.openerp .oe_list_content td.oe_list_field_handle { - width: 1em; - padding: 0 !important; - cursor: ns-resize; -} -.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle { - font-size: 1px; - letter-spacing: -1px; - color: transparent; - font-weight: normal; - margin-right: 7px; -} -.openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before { - font: 18px "entypoRegular"; - content: "}"; - color: #e0e0e0; -} -.openerp .oe_list_content .oe_list_field_progressbar progress { - width: 100%; -} -.openerp .tree_header { - background-color: #f0f0f0; - border-bottom: 1px solid #cacaca; - color: #4c4c4c; - padding: 5px; - height: 25px; -} -.openerp .tree_header button { - float: right; - height: 27px; - margin-right: 5px; -} -.openerp .oe-treeview-table { - width: 100%; - background-color: white; - border-spacing: 0; - color: #4c4c4c; -} -.openerp .oe-treeview-table th { - padding: 10px; - font-weight: bold; - background-color: #f0f0f0; - border-bottom: 2px solid #cacaca; -} -.openerp .oe-treeview-table td { - cursor: pointer; - vertical-align: middle; - text-align: left; - vertical-align: middle; - height: 20px; - padding-left: 4px; - padding-right: 4px; - border-right: 1px solid #e7e7e7; -} -.openerp .oe-treeview-table td.oe_number { - text-align: right !important; -} -.openerp .oe-treeview-table tr { - border-bottom: 1px solid #d6d6d6; -} -.openerp .oe-treeview-table tr:hover { - background-color: #e7e7e7; -} -.openerp .oe-treeview-table span { - font-size: 90%; - font-weight: normal; - white-space: nowrap; - display: block; -} -.openerp .oe-treeview-table .treeview-tr.oe-treeview-first { - background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; -} -.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first { - background-image: url(/web/static/src/img/collapse.gif); -} -.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span { - margin-left: 16px; -} -.openerp .oe_layout_debugging .oe_form_group { - outline: 2px dashed green; -} -.openerp .oe_layout_debugging .oe_form_group_cell { - outline: 1px solid blue; -} -.openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover { - outline-color: red; -} -.openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after { - content: "[Incomplete Row]"; - background: red; - padding: 2px; - font-weight: bold; - color: white; - float: right; -} -.openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after { - content: "[newline]"; -} -.openerp .oe_debug_view { - float: left; -} -.openerp .oe_debug_view_log { - font-size: 95%; -} -.openerp .oe_debug_view_log label { - display: block; - width: 49%; - text-align: right; - float: left; - font-weight: bold; - color: #000099; -} -.openerp .oe_debug_view_log span { - display: block; - width: 49%; - float: right; - color: #333333; -} + */ } + .openerp.openerp_webclient_container { + height: 100%; } + .openerp :-moz-placeholder { + color: #afafb6 !important; + font-style: italic !important; } + .openerp ::-webkit-input-placeholder { + color: #afafb6 !important; + font-style: italic !important; } + .openerp :-ms-input-placeholder { + color: #afafb6 !important; + font-style: italic !important; } + .openerp a { + text-decoration: none; + cursor: pointer !important; } + .openerp table { + padding: 0; + border-collapse: collapse; } + .openerp thead { + font-weight: bold; + background-color: #f0f0f0; } + .openerp thead th { + border-left: 1px solid #dfdfdf; } + .openerp thead th:first-child { + border-left: none; } + .openerp thead th.null { + border-left: none; } + .openerp th, .openerp td { + padding: 0; + text-align: left; } + .openerp th { + font-weight: bold; + vertical-align: middle; } + .openerp td { + vertical-align: top; } + .openerp .zebra tbody tr:nth-child(odd) td { + background-color: #f0f0fa; + background-color: #efeff8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); } + .openerp .zebra tbody tr:hover td { + background-color: #e6e6e6; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eeeeee), to(#dedede)); + background-image: -webkit-linear-gradient(top, #eeeeee, #dedede); + background-image: -moz-linear-gradient(top, #eeeeee, #dedede); + background-image: -ms-linear-gradient(top, #eeeeee, #dedede); + background-image: -o-linear-gradient(top, #eeeeee, #dedede); + background-image: linear-gradient(to bottom, #eeeeee, #dedede); } + .openerp input, .openerp textarea, .openerp select { + padding: 2px 4px; + border: 1px solid #cccccc; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: white; } + .openerp img { + vertical-align: middle; } + .openerp h4 { + margin: 4px 0; } + .openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { + display: inline-block; + border: 1px solid rgba(0, 0, 0, 0.4); + color: #4c4c4c; + margin: 0; + padding: 3px 12px; + font-size: 13px; + text-align: center; + background-color: #e3e3e3; + background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8); + background-image: -moz-linear-gradient(top, #efefef, #d8d8d8); + background-image: -ms-linear-gradient(top, #efefef, #d8d8d8); + background-image: -o-linear-gradient(top, #efefef, #d8d8d8); + background-image: linear-gradient(to bottom, #efefef, #d8d8d8); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5); + -webkit-font-smoothing: antialiased; + outline: none; } + .openerp a.button:hover, .openerp button:hover, .openerp input[type='submit']:hover, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-hover { + background-color: #ececec; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); + background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); + cursor: pointer; + background-position: 0; } + .openerp a.button:focus, .openerp button:focus, .openerp input[type='submit']:focus, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-focus { + border: 1px solid #80bfff; + background-position: 0; + background-color: #ececec; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); + background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); + -moz-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 0 3px #80bfff, 0 1px 1px rgba(255, 255, 255, 0.8) inset; } + .openerp a.button:active, .openerp a.button.active, .openerp button:active, .openerp button.active, .openerp input[type='submit']:active, .openerp input[type='submit'].active, .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button.ui-state-active { + background-color: #ececec; + background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6)); + background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp a.button.disabled, .openerp button:disabled, .openerp input[type='submit']:disabled { + background: #efefef !important; + border: 1px solid #d1d1d1 !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + color: #aaaaaa !important; + cursor: default; + text-shadow: 0 1px 1px white !important; } + .openerp .ui-widget-content a { + color: #7c7bad; } + .openerp .oe_bounce_container { + display: inline-block; } + .openerp .text-tag .text-button { + height: auto !important; + min-height: 16px; } + .openerp .ui-tabs { + position: static; } + .openerp.ui-dialog { + display: none; + padding: 6px; + background-color: rgba(60, 60, 60, 0.7); + border: 1px solid; + border-color: #888888 #555555 #444444; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; + -moz-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); + -webkit-box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); + box-shadow: 0 1px 12px rgba(0, 0, 0, 0.6); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; } + .openerp.ui-dialog .ui-dialog-content { + padding: 0; } + .openerp.ui-dialog .ui-dialog-titlebar, .openerp.ui-dialog .ui-dialog-content, .openerp.ui-dialog .ui-dialog-buttonpane { + padding: 16px; } + .openerp.ui-dialog .ui-dialog-titlebar { + border-bottom: 1px solid #cacaca; + -moz-border-radius: 2px 2px 0 0; + -webkit-border-radius: 2px 2px 0 0; + border-radius: 2px 2px 0 0; + background-color: #ededed; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); } + .openerp.ui-dialog .ui-dialog-titlebar .ui-dialog-title { + margin: 0; + padding: 0; } + .openerp.ui-dialog .ui-widget-header { + border: none; } + .openerp.ui-dialog .ui-dialog-content { + background: white; } + .openerp.ui-dialog .ui-dialog-buttonpane { + border-top: 1px solid #e0e0e0; + background: #f5f7f9; + margin: 0; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; } + .openerp.ui-dialog .ui-dialog-buttonpane button { + margin: 0 4px 0 0; } + .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: left; } + .openerp.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { + margin-right: 4px; } + .openerp.ui-dialog .ui-dialog-titlebar-close { + padding: 0; } + .openerp.ui-dialog .ui-dialog-titlebar-close .ui-icon-closethick { + display: none; } + .openerp.ui-dialog .ui-dialog-titlebar-close:before { + content: "×"; + font-size: 18px; + font-weight: bold; + line-height: 16px; + color: black; + text-shadow: 0 1px 0 white; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; } + .openerp.ui-dialog .ui-dialog-titlebar-close:before:hover { + color: black; + text-decoration: none; } + .openerp.ui-dialog .oe_about { + background-color: white; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; } + .openerp.ui-dialog .oe_about a { + color: #7c7bad; } + .openerp.ui-dialog .oe_about a:hover { + text-decoration: underline; } + .openerp.ui-dialog .oe_about a:focus { + outline: none; } + .openerp.ui-dialog .oe_about .oe_logo { + margin-left: -6px; } + .openerp.ui-dialog .oe_about .oe_bottom { + position: absolute; + top: 50%; + left: 0; + right: 0; + bottom: 0; + text-shadow: 0 1px 1px #999999; + background-color: #8a0e0e; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); + background-image: -webkit-linear-gradient(top, #b41616, #600606); + background-image: -moz-linear-gradient(top, #b41616, #600606); + background-image: -ms-linear-gradient(top, #b41616, #600606); + background-image: -o-linear-gradient(top, #b41616, #600606); + background-image: linear-gradient(to bottom, #b41616, #600606); + color: #eeeeee; + padding: 0 16px; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; } + .openerp.ui-dialog .oe_about .oe_bottom a { + color: #eeeeee; } + .openerp.ui-dialog.oe_act_window .ui-dialog-content { + padding: 0px; } + .openerp .modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: black; + filter: alpha(opacity=30); + opacity: 0.3; } + .openerp .oe_i { + font-family: "mnmliconsRegular" !important; + font-size: 21px; + font-weight: 300 !important; } + .openerp .oe_e { + font-family: "entypoRegular" !important; + font-size: 34px; + font-weight: 300 !important; } + .openerp .oe_left { + float: left; + margin-right: 8px; } + .openerp .oe_right { + float: right; + margin-left: 8px; } + .openerp .oe_text_center { + text-align: center; } + .openerp .oe_text_left { + text-align: left; } + .openerp .oe_text_right { + text-align: right; } + .openerp .oe_clear { + clear: both; } + .openerp .oe_wait { + cursor: wait; } + .openerp .oe_fade { + color: #888888; + font-weight: normal; } + .openerp .oe_bold { + font-weight: bold; } + .openerp .oe_inline { + width: auto !important; } + .openerp .oe_highlight { + color: white; + background: #dc5f59; } + .openerp button.oe_highlight { + background-color: #c02c2c; + background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a)); + background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a); + background-image: -moz-linear-gradient(top, #df3f3f, #a21a1a); + background-image: -ms-linear-gradient(top, #df3f3f, #a21a1a); + background-image: -o-linear-gradient(top, #df3f3f, #a21a1a); + background-image: linear-gradient(to bottom, #df3f3f, #a21a1a); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; } + .openerp button.oe_highlight:hover { + background-color: #c63939; + background-image: -webkit-gradient(linear, left top, left bottom, from(#e25858), to(#ab1b1b)); + background-image: -webkit-linear-gradient(top, #e25858, #ab1b1b); + background-image: -moz-linear-gradient(top, #e25858, #ab1b1b); + background-image: -ms-linear-gradient(top, #e25858, #ab1b1b); + background-image: -o-linear-gradient(top, #e25858, #ab1b1b); + background-image: linear-gradient(to bottom, #e25858, #ab1b1b); } + .openerp button.oe_highlight:active { + background-color: #cb2121; + background-image: -webkit-gradient(linear, left top, left bottom, from(#c52020), to(#d22323)); + background-image: -webkit-linear-gradient(top, #c52020, #d22323); + background-image: -moz-linear-gradient(top, #c52020, #d22323); + background-image: -ms-linear-gradient(top, #c52020, #d22323); + background-image: -o-linear-gradient(top, #c52020, #d22323); + background-image: linear-gradient(to bottom, #c52020, #d22323); } + .openerp .oe_background_grey { + background: #eeeeee !important; } + .openerp .oe_form_dirty .oe_highlight_on_dirty { + color: white; + background: #dc5f59; + font-weight: bold; } + .openerp .oe_form_dirty button.oe_highlight_on_dirty { + background-color: #c74a44; + background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); + background-image: -webkit-linear-gradient(top, #dc5f59, #b33630); + background-image: -moz-linear-gradient(top, #dc5f59, #b33630); + background-image: -ms-linear-gradient(top, #dc5f59, #b33630); + background-image: -o-linear-gradient(top, #dc5f59, #b33630); + background-image: linear-gradient(to bottom, #dc5f59, #b33630); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_form_dirty button.oe_highlight_on_dirty:hover { + background: #ed6f6a; } + .openerp .oe_title { + width: 50%; + float: left; } + .openerp .oe_title:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; } + .openerp .oe_button_box { + width: 270px; + text-align: right; } + .openerp .oe_button_box button { + margin: 4px; } + .openerp .oe_avatar > img { + max-height: 90px; + max-width: 90px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + border: none; + margin-bottom: 10px; } + .openerp .oe_avatar + div { + margin-left: 5px; } + .openerp .oe_image_small > img { + max-width: 50px; + max-height: 50px; } + .openerp .oe_image_medium > img { + max-width: 180px; + max-height: 180px; } + .openerp .oe_button.oe_link { + border: none; + padding: 0; + margin: 0; + background: none; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_button.oe_link img { + display: inline-block; } + .openerp .oe_button.oe_link span { + border: none; + padding: 0; + margin: 0; + background: none; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + color: #7c7bad; + font-weight: bold; } + .openerp .oe_button.oe_link span:hover { + text-decoration: underline; } + .openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off { + color: #cccccc; + text-shadow: 0 0 2px black; + vertical-align: top; + position: relative; + top: -5px; } + .openerp .oe_webclient .oe_star_on:hover, .openerp .oe_webclient .oe_star_off:hover { + text-decoration: none; } + .openerp .oe_webclient .oe_star_on { + color: gold; } + .openerp p.oe_grey { + max-width: 650px; } + .openerp .oe_grey { + color: #aaaaaa; } + .openerp .oe_tag { + border: 1px solid #afafb6; + font-size: 11px; + padding: 2px 4px; + margin: 0 2px 2px 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: #f0f0fa; + color: #4c4c4c; } + .openerp .oe_tag_dark { + background: #7c7bad; + color: #eeeeee; } + .openerp .oe_form_field_radio.oe_horizontal { + white-space: nowrap; } + .openerp .oe_form_field_radio.oe_horizontal label { + display: inline-block; + text-align: center; + height: 16px; } + .openerp .oe_form_field_radio.oe_vertical label { + margin-left: 4px; } + .openerp .oe_form_field_radio.oe_form_required .oe_radio_input { + border: 2px solid transparent; + display: inline-block; + height: 12px; + width: 12px; + vertical-align: bottom; + border-radius: 10px; + margin: 1px 0; } + .openerp .oe_form_field_radio.oe_form_required.oe_form_invalid .oe_radio_input { + border-color: red; } + .openerp .oe_tags { + margin-bottom: 1px; } + .openerp .oe_tags.oe_inline { + min-width: 250px; } + .openerp .oe_tags .text-wrap { + width: 100% !important; } + .openerp .oe_tags .text-wrap textarea { + width: 100% !important; } + .openerp .oe_tags .text-core .text-wrap .text-dropdown .text-list .text-suggestion em { + font-style: italic; + text-decoration: none; } + .openerp.oe_tooltip { + font-size: 12px; } + .openerp.oe_tooltip .oe_tooltip_string { + color: #ffdd55; + font-weight: bold; + font-size: 13px; } + .openerp.oe_tooltip .oe_tooltip_help { + white-space: pre-wrap; } + .openerp.oe_tooltip .oe_tooltip_technical { + padding: 0 0 4px 0; + margin: 5px 0 0 15px; } + .openerp.oe_tooltip .oe_tooltip_technical li { + list-style: circle; } + .openerp.oe_tooltip .oe_tooltip_technical_title { + font-weight: bold; } + .openerp.oe_tooltip .oe_tooltip_close { + margin: -5px 0 0 2px; + cursor: default; + float: right; + color: white; } + .openerp.oe_tooltip .oe_tooltip_close:hover { + color: #999999; + cursor: pointer; } + .openerp.oe_tooltip .oe_tooltip_message { + max-width: 310px; } + .openerp .oe_notebook { + margin: 8px 0; + padding: 0 16px; + list-style: none; + zoom: 1; } + .openerp .oe_notebook.ui-corner-all { + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; } + .openerp .oe_notebook:before, .openerp .oe_notebook:after { + display: table; + content: ""; + zoom: 1; } + .openerp .oe_notebook:after { + clear: both; } + .openerp .oe_notebook > li { + float: left; } + .openerp .oe_notebook > li > a { + display: block; + color: gray; } + .openerp .oe_notebook > li.ui-tabs-active > a { + color: #4c4c4c; } + .openerp .oe_notebook { + border-color: #dddddd; + border-style: solid; + border-width: 0 0 1px; } + .openerp .oe_notebook > li { + position: relative; } + .openerp .oe_notebook > li > a { + padding: 0 12px; + margin-right: 2px; + line-height: 30px; + border: 1px solid transparent; + -moz-border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; } + .openerp .oe_notebook > li > a:hover { + text-decoration: none; + background-color: #eeeeee; + border-color: #eeeeee #eeeeee #dddddd; } + .openerp .oe_notebook > li.ui-state-active > a, .openerp .oe_notebook > li.ui-state-active > a:hover { + background-color: white; + border: 1px solid #dddddd; + border-bottom-color: transparent; + cursor: default; } + .openerp .oe_notebook_page { + padding: 0; } + .openerp div.ui-tabs { + padding: 3px 0px 3px 0px; } + .openerp .ui-tabs-hide { + display: none; } + .openerp .oe_dropdown, .openerp .oe_dropdown_hover, .openerp .oe_dropdown_toggle { + position: relative; + cursor: pointer; } + .openerp .oe_dropdown_toggle { + color: #4c4c4c; + font-weight: normal; } + .openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened { + display: block; } + .openerp .oe_dropdown_menu { + display: none; + position: absolute; + top: 26px; + left: 0; + z-index: 3; + margin: 0; + padding: 0; + border: 1px solid #afafb6; + background: white; + padding: 4px 0; + min-width: 140px; + text-align: left; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } + .openerp .oe_dropdown_menu > li { + list-style-type: none; + float: none; + display: block; + position: relative; + margin: 0; + padding: 2px 8px; } + .openerp .oe_dropdown_menu > li:hover { + background-color: #efeff8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_dropdown_menu > li > a { + white-space: nowrap; + display: block; + color: #4c4c4c; + text-decoration: none; + width: 200px; + text-overflow: ellipsis; + overflow: hidden; } + .openerp .oe_dropdown_menu > li > a:hover { + text-decoration: none; } + .openerp .oe_dropdown_arrow:after { + width: 0; + height: 0; + display: inline-block; + content: "&darr"; + text-indent: -99999px; + vertical-align: top; + margin-top: 8px; + margin-left: 3px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #404040; + filter: alpha(opacity=50); + opacity: 0.5; } + .openerp .oe_sidebar { + white-space: nowrap; } + .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment { + height: 20px; + cursor: pointer; + padding-left: 6px; + margin-top: 6px; } + .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment span { + font-weight: bold; } + .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment .oe_hidden_input_file { + width: 200px; } + .openerp .oe_sidebar .oe_dropdown_menu .oe_sidebar_add_attachment:hover { + background-color: #efeff8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item { + position: absolute; + top: 4px; + right: 4px; + display: none; + width: 12px; + height: 12px; + padding: 1px; + color: #8786b7; + line-height: 8px; + text-align: center; + font-weight: bold; + text-shadow: 0 1px 1px white; } + .openerp .oe_sidebar .oe_dropdown_menu li .oe_sidebar_delete_item:hover { + text-decoration: none; + color: white; + background: #8786b7; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; } + .openerp .oe_sidebar .oe_dropdown_menu li:hover .oe_sidebar_delete_item { + display: inline-block; } + .openerp .oe_loading { + display: none; + z-index: 100; + position: fixed; + top: 0; + right: 50%; + padding: 4px 12px; + background: #a61300; + color: white; + text-align: center; + border: 1px solid #990000; + border-top: none; + -moz-border-radius-bottomright: 8px; + -moz-border-radius-bottomleft: 8px; + border-bottom-right-radius: 8px; + border-bottom-left-radius: 8px; } + .openerp .oe_notification { + z-index: 1050; } + .openerp .oe_webclient_timezone_notification a { + color: white; + text-decoration: underline; } + .openerp .oe_webclient_timezone_notification p { + margin-top: 1em; } + .openerp .oe_webclient_timezone_notification dt { + font-weight: bold; } + .openerp .oe_timezone_systray span { + margin-top: 1px; + background-color: #f6cf3b; } + .openerp .oe_dialog_warning { + width: 100%; } + .openerp .oe_dialog_warning p { + text-align: center; } + .openerp .oe_dialog_icon { + padding: 5px; + width: 32px; } + .openerp .oe_login { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); + text-align: center; + font-size: 14px; + height: 100%; } + .openerp .oe_login ul, .openerp .oe_login li { + margin: 0; + list-style-type: none; + padding: 0 0 4px 0; } + .openerp .oe_login button { + cursor: pointer; + padding: 6px 16px; + border: 1px solid #222222; + color: white; + margin: 0; + background-color: #8c1313; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b92020), to(#600606)); + background-image: -webkit-linear-gradient(top, #b92020, #600606); + background-image: -moz-linear-gradient(top, #b92020, #600606); + background-image: -ms-linear-gradient(top, #b92020, #600606); + background-image: -o-linear-gradient(top, #b92020, #600606); + background-image: linear-gradient(to bottom, #b92020, #600606); + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset; } + .openerp .oe_login input, .openerp .oe_login select { + width: 252px; + font-family: "Lucida Grande", Helvetica, Verdana, Arial; + border: 1px solid #999999; + background: whitesmoke; + -moz-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); + -webkit-box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); + box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.4); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; } + .openerp .oe_login input { + margin-bottom: 9px; + padding: 5px 6px; } + .openerp .oe_login select { + padding: 1px; } + .openerp .oe_login .oe_login_dbpane { + position: fixed; + top: 0; + right: 8px; + padding: 5px 10px; + color: #eeeeee; + border: solid 1px #333333; + background: #1e1e1e; + background: rgba(30, 30, 30, 0.94); + -moz-border-radius: 0 0 8px 8px; + -webkit-border-radius: 0 0 8px 8px; + border-radius: 0 0 8px 8px; } + .openerp .oe_login .oe_login_dbpane input { + padding: 2px 4px; + margin: 4px 0; } + .openerp .oe_login .oe_login_bottom { + position: absolute; + top: 50%; + left: 0; + right: 0; + bottom: 0; + text-shadow: 0 1px 1px #999999; + background-color: #8a0e0e; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); + background-image: -webkit-linear-gradient(top, #b41616, #600606); + background-image: -moz-linear-gradient(top, #b41616, #600606); + background-image: -ms-linear-gradient(top, #b41616, #600606); + background-image: -o-linear-gradient(top, #b41616, #600606); + background-image: linear-gradient(to bottom, #b41616, #600606); } + .openerp .oe_login .oe_login_pane { + position: absolute; + top: 50%; + left: 50%; + margin: -160px -166px; + border: solid 1px #333333; + background: #1e1e1e; + background: rgba(30, 30, 30, 0.94); + padding: 22px 32px; + color: #eeeeee; + text-align: left; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; + border-radius: 8px; + -moz-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); + -webkit-box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); + box-shadow: 0 0 18px rgba(0, 0, 0, 0.9); } + .openerp .oe_login .oe_login_pane h2 { + margin-top: 0; + font-size: 18px; } + .openerp .oe_login .oe_login_logo { + position: absolute; + top: -70px; + left: 0; + width: 100%; + margin: 0 auto; + text-align: center; } + .openerp .oe_login .oe_login_footer { + position: absolute; + bottom: -40px; + left: 0; + width: 100%; + text-align: center; } + .openerp .oe_login .oe_login_footer a { + color: #eeeeee; + margin: 0 8px; } + .openerp .oe_login .oe_login_footer a:hover { + text-decoration: underline; } + .openerp .oe_login .oe_login_footer span { + font-weight: bold; + font-size: 16px; } + .openerp .oe_login .oe_login_error_message { + display: none; + background-color: #b41616; + color: #eeeeee; + padding: 14px 18px; + margin-top: 15px; + text-align: center; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.8); } + .openerp .oe_login_invalid .oe_login_error_message { + display: inline-block; } + .openerp .oe_database_manager { + background: white; + color: black; + text-align: left; } + .openerp .oe_database_manager .oe_database_manager_menu { + color: black; } + .openerp .oe_webclient { + width: 100%; + height: 100%; + border-spacing: 0px; } + .openerp .oe_content_full_screen .oe_application { + top: 0; + left: 0; } + .openerp .oe_content_full_screen .oe_topbar, .openerp .oe_content_full_screen .oe_leftbar { + display: none; } + .openerp .oe_topbar { + width: 100%; + height: 32px; + background-color: #414141; + background-color: #454343; + background-image: -webkit-gradient(linear, left top, left bottom, from(#646060), to(#262626)); + background-image: -webkit-linear-gradient(top, #646060, #262626); + background-image: -moz-linear-gradient(top, #646060, #262626); + background-image: -ms-linear-gradient(top, #646060, #262626); + background-image: -o-linear-gradient(top, #646060, #262626); + background-image: linear-gradient(to bottom, #646060, #262626); } + .openerp .oe_topbar .oe_topbar_anonymous_login { + background-color: #dc5f59; + color: #eeeeee; + background-color: #be4343; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fc8787), to(maroon)); + background-image: -webkit-linear-gradient(top, #fc8787, maroon); + background-image: -moz-linear-gradient(top, #fc8787, maroon); + background-image: -ms-linear-gradient(top, #fc8787, maroon); + background-image: -o-linear-gradient(top, #fc8787, maroon); + background-image: linear-gradient(to bottom, #fc8787, maroon); } + .openerp .oe_topbar .oe_topbar_anonymous_login a { + display: block; + padding: 5px 10px 7px; + line-height: 20px; + height: 20px; + text-decoration: none; + color: white; + background: transparent; + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; } + .openerp .oe_topbar .oe_topbar_anonymous_login a:hover { + background: rgba(0, 0, 0, 0.1); + color: white; + text-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; } + .openerp .oe_topbar .oe_topbar_item { + display: block; + padding: 5px 10px 7px; + line-height: 20px; + height: 20px; + text-decoration: none; + color: #eeeeee; + vertical-align: top; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; } + .openerp .oe_topbar .oe_topbar_item:hover { + background: rgba(0, 0, 0, 0.2); + text-shadow: black 0px 0px 3px; + color: white; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; } + .openerp .oe_topbar .oe_topbar_avatar { + width: 24px; + height: 24px; + margin: -2px 2px 0 0; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; } + .openerp .oe_topbar .oe_topbar_avatar { + vertical-align: top; } + .openerp .oe_topbar .oe_dropdown_arrow:after { + border-top: 4px solid white; } + .openerp .oe_topbar .oe_dropdown_menu { + top: 32px; + background: #333333; + background: rgba(37, 37, 37, 0.9); + border-color: #999999; + border-color: rgba(0, 0, 0, 0.2); + border-style: solid; + border-width: 0 1px 1px; + -moz-border-radius: 0 0 6px 6px; + -webkit-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; } + .openerp .oe_topbar .oe_dropdown_menu li { + float: none; + padding: 3px 12px; } + .openerp .oe_topbar .oe_dropdown_menu li a { + color: #eeeeee; } + .openerp .oe_topbar .oe_dropdown_menu li:hover { + background-color: #212121; + background-image: -webkit-gradient(linear, left top, left bottom, from(#292929), to(#191919)); + background-image: -webkit-linear-gradient(top, #292929, #191919); + background-image: -moz-linear-gradient(top, #292929, #191919); + background-image: -ms-linear-gradient(top, #292929, #191919); + background-image: -o-linear-gradient(top, #292929, #191919); + background-image: linear-gradient(to bottom, #292929, #191919); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_topbar .oe_topbar_name { + max-width: 150px; + overflow: hidden; + display: inline-block; + max-height: 100%; + text-overflow: ellipsis; + white-space: nowrap; } + .openerp .oe_menu { + float: left; + padding: 0; + margin: 0; + font-size: 13px; } + .openerp .oe_menu > li { + list-style-type: none; + padding: 0; + margin: 0; + float: left; + display: block; + color: #eeeeee; } + .openerp .oe_menu > li > a { + display: block; + padding: 5px 10px 7px; + line-height: 20px; + height: 20px; + text-decoration: none; + color: #eeeeee; + vertical-align: top; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -webkit-transition: all 0.2s ease-out; + -moz-transition: all 0.2s ease-out; + -ms-transition: all 0.2s ease-out; + -o-transition: all 0.2s ease-out; + transition: all 0.2s ease-out; } + .openerp .oe_menu > li > a:hover { + background: rgba(0, 0, 0, 0.2); + text-shadow: black 0px 0px 3px; + color: white; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; } + .openerp .oe_menu > li > .oe_active { + background: rgba(0, 0, 0, 0.3); + text-shadow: black 0px 0px 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4) inset; } + .openerp .oe_user_menu { + float: right; + padding: 0; + margin: 0; } + .openerp .oe_user_menu li { + list-style-type: none; + float: left; } + .openerp .oe_user_menu .oe_dropdown_menu { + right: -1px; } + .openerp .oe_systray > div { + float: left; + padding: 0 4px 0 4px; } + .openerp .oe_systray { + float: right; } + .openerp .oe_leftbar { + display: none; + width: 220px; + background: #f0eeee; + border-right: 1px solid #afafb6; + text-shadow: 0 1px 1px white; + padding-bottom: 16px; } + .openerp a.oe_logo { + position: relative; + width: 220px; + display: block; + text-align: center; } + .openerp a.oe_logo img { + margin: 14px 0; + border: 0; } + .openerp a.oe_logo .oe_logo_edit { + margin: 14px 0; + position: absolute; + top: 1px; + padding: 4px; + width: 100%; + display: none; + text-align: center; + color: #eeeeee; + background: rgba(37, 37, 37, 0.9); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; } + .openerp a.oe_logo:hover .oe_logo_edit_admin { + display: block; } + .openerp .oe_footer { + position: fixed; + bottom: 0; + padding: 4px 0; + background: #f0eeee; + width: 220px; + text-align: center; } + .openerp .oe_footer a { + font-weight: bold; + color: black; } + .openerp .oe_footer a span { + color: #c81010; } + .openerp .oe_secondary_menu_section { + font-weight: bold; + margin-left: 8px; + color: #7c7bad; } + .openerp .oe_secondary_submenu { + padding: 2px 0 8px 0; + margin: 0; } + .openerp .oe_secondary_submenu li { + position: relative; + margin: 0; + padding: 1px 0 1px 20px !important; + list-style-type: none; } + .openerp .oe_secondary_submenu li a { + display: block; + color: #4c4c4c; + padding: 2px 4px 2px 0; } + .openerp .oe_secondary_submenu li .oe_menu_label { + position: absolute; + top: 1px; + right: 1px; + font-size: 10px; + background: #7c7bad; + color: white; + padding: 2px 4px; + margin: 1px 6px 0 0; + border: 1px solid lightGray; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.2); } + .openerp .oe_secondary_submenu .oe_menu_text { + white-space: nowrap; + overflow: hidden; + display: inline-block; + text-overflow: ellipsis; + max-width: 85%; } + .openerp .oe_secondary_submenu .oe_menu_counter { + float: right; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + margin: 1px; + padding: 1px 4px; + border: none; } + .openerp .oe_secondary_submenu .oe_menu_counter:hover { + cursor: pointer; + -webkit-transform: scale(1.1); + -moz-transform: scale(1.1); + -ms-transform: scale(1.1); + -o-transform: scale(1.1); + transform: scale(1.1); } + .openerp .oe_secondary_submenu .oe_active { + border-top: 1px solid lightGray; + border-bottom: 1px solid #dedede; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2); + background: #7c7bad; } + .openerp .oe_secondary_submenu .oe_active a { + color: white; } + .openerp .oe_secondary_submenu .oe_active .oe_menu_label { + background: #eeeeee; + color: #7c7bad; + text-shadow: 0 1px 1px white; + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } + .openerp .oe_secondary_submenu .oe_active .oe_menu_counter { + background: #eeeeee; + color: #7c7bad; + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.2); } + .openerp .oe_secondary_submenu .oe_menu_toggler:before { + width: 0; + height: 0; + display: inline-block; + content: "&darr"; + text-indent: -99999px; + vertical-align: top; + margin-left: -12px; + margin-top: 4px; + margin-right: 4px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px solid #4c4c4c; + filter: alpha(opacity=50); + opacity: 0.5; } + .openerp .oe_secondary_submenu .oe_menu_opened:before { + margin-top: 6px; + margin-left: -16px; + margin-right: 4px; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #4c4c4c; } + .openerp .oe_secondary_submenu .oe_secondary_submenu { + margin-left: -20px; } + .openerp .oe_secondary_submenu .oe_secondary_submenu li { + margin-left: 20px; } + .openerp .oe_about { + background-color: white; + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=); + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; } + .openerp .oe_about a { + color: #7c7bad; } + .openerp .oe_about a:hover { + text-decoration: underline; } + .openerp .oe_about a:focus { + outline: none; } + .openerp .oe_about .oe_logo { + margin-left: -6px; } + .openerp .oe_about .oe_bottom { + position: absolute; + top: 50%; + left: 0; + right: 0; + bottom: 0; + text-shadow: 0 1px 1px #999999; + background-color: #8a0e0e; + background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606)); + background-image: -webkit-linear-gradient(top, #b41616, #600606); + background-image: -moz-linear-gradient(top, #b41616, #600606); + background-image: -ms-linear-gradient(top, #b41616, #600606); + background-image: -o-linear-gradient(top, #b41616, #600606); + background-image: linear-gradient(to bottom, #b41616, #600606); + color: #eeeeee; + padding: 0 16px; + -moz-border-radius: 0 0 2px 2px; + -webkit-border-radius: 0 0 2px 2px; + border-radius: 0 0 2px 2px; } + .openerp .oe_about .oe_bottom a { + color: #eeeeee; } + .openerp .oe_application { + width: 100%; + height: 100%; } + .openerp .oe_application a { + color: #7c7bad; } + .openerp .oe_application a:hover { + text-decoration: underline; } + .openerp .oe_application > div { + height: 100%; } + .openerp .oe_application .oe_breadcrumb_item:not(:last-child) { + max-width: 7em; + white-space: nowrap; + text-overflow: ellipsis; } + .openerp .oe_application .oe_breadcrumb_title > * { + display: inline-block; + overflow: hidden; } + .openerp .oe_view_manager { + display: table; + height: inherit; + width: 100%; } + .openerp .oe_view_manager .oe_view_manager_body { + display: table-row; + height: inherit; } + .openerp .oe_view_manager .oe_view_manager_view_kanban { + height: inherit; } + .openerp .oe_view_manager table.oe_view_manager_header { + border-collapse: separate; + width: 100%; + table-layout: fixed; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row { + clear: both; + text-shadow: 0 1px 1px white; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:last-child td { + padding-top: 0; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_header_row:first-child td { + padding-top: 8px; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_sidebar { + margin: 0px auto; + text-align: center; } + .openerp .oe_view_manager table.oe_view_manager_header td { + line-height: 26px; } + .openerp .oe_view_manager table.oe_view_manager_header h2 { + font-size: 18px; + margin: 0; + float: left; } + .openerp .oe_view_manager table.oe_view_manager_header h2 a { + color: #7c7bad; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_dropdown_menu { + line-height: normal; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group { + display: inline-block; + border: 1px solid #ababab; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li { + float: left; + border-right: 1px solid #ababab; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group li:last-child { + border: none; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a { + color: #4c4c4c; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group a:hover { + text-decoration: none; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active { + background: #999999; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; } + .openerp .oe_view_manager table.oe_view_manager_header .oe_button_group .active a { + color: white; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } + .openerp .oe_view_manager table.oe_view_manager_header .oe_view_manager_buttons { + white-space: nowrap; } + .openerp .oe_view_manager .oe_view_manager_switch { + padding: 0; + margin: 0 0 0 8px; } + .openerp .oe_view_manager .oe_view_manager_switch li { + margin: 0; + width: 24px; + height: 24px; + line-height: 16px; + padding: 0; + text-align: center; + list-style-type: none; } + .openerp .oe_view_manager .oe_view_manager_switch li a { + position: relative; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_list:after, .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_tree:after { + padding: 2px; + content: "i"; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_form:after { + content: "m"; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_graph:after { + font-family: "mnmliconsRegular" !important; + font-size: 21px; + font-weight: 300 !important; + content: "}"; + top: -2px; + position: relative; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_gantt:after { + font-family: "mnmliconsRegular" !important; + font-size: 21px; + font-weight: 300 !important; + content: "y"; + top: -2px; + position: relative; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_calendar:after { + content: "P"; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_kanban:after { + content: "k"; } + .openerp .oe_view_manager .oe_view_manager_switch .oe_vm_switch_diagram:after { + content: "f"; } + .openerp .oe_list_pager { + line-height: 26px; } + .openerp .oe_pager_value { + float: left; + margin-right: 8px; } + .openerp ul.oe_pager_group { + padding: 0; + margin: 0; } + .openerp .oe_pager_group { + float: left; + height: 24px; + line-height: 24px; + display: inline-block; + border: 1px solid #ababab; + cursor: pointer; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; } + .openerp .oe_pager_group li { + height: 24px; + line-height: 24px; + padding: 0; + margin: 0; + list-style-type: none; + float: left; + border-right: 1px solid #ababab; } + .openerp .oe_pager_group li:last-child { + border: none; } + .openerp .oe_pager_group a { + color: #4c4c4c; + padding: 0 8px; } + .openerp .oe_pager_group a:hover { + text-decoration: none; } + .openerp .oe_pager_group .active { + background: #999999; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) inset; } + .openerp .oe_pager_group .active a { + color: white; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4); } + .openerp .oe_list_pager.oe_list_pager_single_page .oe_pager_group { + display: none; } + .openerp .oe_view_manager_current { + height: 100%; } + .openerp .oe_view_manager_current > .oe_view_manager_header { + border-bottom: 1px solid #cacaca; + background-color: #ededed; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); + -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4), 0 0 9px rgba(0, 0, 0, 0.1); } + .openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row td { + padding: 8px; } + .openerp .oe_view_manager_current > .oe_view_manager_header .oe_header_row:first-child td { + padding-top: 8px; } + .openerp .oe_view_manager_inline, .openerp .oe_view_manager_inlineview { + height: 100%; } + .openerp .oe_view_manager_inline > .oe_view_manager_header, .openerp .oe_view_manager_inlineview > .oe_view_manager_header { + display: none; } + .openerp .oe_popup_form > .oe_formview > .oe_form_pager { + display: none !important; } + .openerp .oe_popup_list_pager { + float: right; } + .openerp .oe_searchview { + cursor: text; + position: relative; + float: right; + padding: 1px 0; + line-height: 18px; + width: 400px; + border: 1px solid #ababab; + background: white; + -moz-border-radius: 13px; + -webkit-border-radius: 13px; + border-radius: 13px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset; } + .openerp .oe_searchview input, .openerp .oe_searchview textarea { + padding: 3px; + height: 14px; + font-size: 12px; + line-height: 18px; } + .openerp .oe_searchview.oe_focused { + border-color: #a6a6fe; + -moz-box-shadow: 0 1px 2px #a6a6fe inset; + -webkit-box-shadow: 0 1px 2px #a6a6fe inset; + box-shadow: 0 1px 2px #a6a6fe inset; } + .openerp .oe_searchview .oe_searchview_clear { + cursor: pointer; + position: absolute; + top: 0; + right: 18px; + width: 15px; + height: 100%; + background: url(../img/search_reset.gif) center center no-repeat; } + .openerp .oe_searchview .oe_searchview_unfold_drawer { + position: absolute; + top: 0; + right: 0; + height: 100%; + padding: 0 7px 0 4px; + color: #cccccc; + cursor: pointer; } + .openerp .oe_searchview .oe_searchview_unfold_drawer:hover { + color: #999999; } + .openerp .oe_searchview .oe_searchview_unfold_drawer:before { + position: absolute; + top: 10px; + right: 7px; + width: 0; + height: 0; + display: inline-block; + content: ""; + vertical-align: top; + border-top: 5px solid #4c4c4c; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + filter: alpha(opacity=50); + opacity: 0.5; } + .openerp .oe_searchview .oe_searchview_search { + font-size: 1px; + letter-spacing: -1px; + color: transparent; + text-shadow: none; + font-weight: normal; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + position: absolute; + left: 3px; + top: 1px; + padding: 0; + border: none; + background: transparent; } + .openerp .oe_searchview .oe_searchview_search:before { + font: 21px "mnmliconsRegular"; + content: "r"; + color: #a3a3a3; } + .openerp .oe_searchview .oe_searchview_facets { + min-height: 22px; + margin-left: 15px; } + .openerp .oe_searchview .oe_searchview_facets * { + vertical-align: top; + display: inline-block; + line-height: 17px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet { + height: 18px; + margin: 1px 0; + font-size: 11px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus { + outline: none; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input { + padding: 0 0 0 6px; + font-size: 12px; + height: 16px; + margin-top: 3px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_input:focus { + outline: none; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet { + position: relative; + cursor: pointer; + padding: 0; + -webkit-font-smoothing: auto; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet:focus { + border-color: #a6a6fe; + -moz-box-shadow: 0 0 3px 1px #a6a6fe; + -webkit-box-shadow: 0 0 3px 1px #a6a6fe; + box-shadow: 0 0 3px 1px #a6a6fe; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_values { + background: #f0f0fa; + -moz-border-radius: 0 3px 3px 0; + -webkit-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category, .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value { + height: 18px; + padding: 0 4px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category { + color: white; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_category.oe_i { + font-size: 16px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value { + border-left: 1px solid #afafb6; + text-shadow: 0 1px 1px white; + color: #4c4c4c; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_value:last-child { + padding-right: 16px; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove { + position: absolute; + top: 3px; + right: 3px; + color: #8786b7; + line-height: 8px; + width: 12px; + height: 12px; + padding-top: 1px; + text-align: center; + font-weight: bold; + cursor: pointer; + text-shadow: 0 1px 1px white; } + .openerp .oe_searchview .oe_searchview_facets .oe_searchview_facet .oe_facet_remove:hover { + color: white; + background: #8786b7; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; } + .openerp .oe_searchview.oe_searchview_open_drawer .oe_searchview_drawer { + display: block; } + .openerp .oe_searchview .oe_searchview_drawer { + position: absolute; + z-index: 2; + margin-top: 4px; + top: 100%; + right: -1px; + background-color: white; + min-width: 100%; + display: none; + border: 1px solid #afafb6; + text-align: left; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); } + .openerp .oe_searchview .oe_searchview_drawer > div { + border-top: 1px solid #cccccc; + margin: 0; + padding: 8px; } + .openerp .oe_searchview .oe_searchview_drawer > div:first-child { + border-top: none; + margin: 0; } + .openerp .oe_searchview .oe_searchview_drawer h3 { + margin: 8px 4px 4px 12px; + color: #7c7bad; + font-size: 13px; } + .openerp .oe_searchview .oe_searchview_drawer h4, .openerp .oe_searchview .oe_searchview_drawer h4 * { + margin: 0; + cursor: pointer; + font-weight: normal; + display: inline-block; } + .openerp .oe_searchview .oe_searchview_drawer h4:hover, .openerp .oe_searchview .oe_searchview_drawer h4 *:hover { + background-color: #f0f0fa; } + .openerp .oe_searchview .oe_searchview_drawer h4:before { + content: "▸ "; + color: #a3a3a3; } + .openerp .oe_searchview .oe_searchview_drawer button { + margin: 4px 0; } + .openerp .oe_searchview .oe_searchview_drawer .button { + border: none; + background: transparent; + padding: 0 2px; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section { + display: table; + width: 100%; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section > div { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + display: table-cell; + width: 50%; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section ul { + margin: 0 8px 8px; + padding: 0; + list-style: none; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li { + list-style: none; + padding: 2px 4px 2px 20px; + line-height: 14px; + color: inherit; + cursor: pointer; + position: relative; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li.oe_selected:before { + content: "W"; + font-family: "entypoRegular" !important; + font-size: 24px; + font-weight: 300 !important; + color: #a3a3a3; + position: absolute; + left: 4px; + top: -2px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_section li:hover { + background-color: #f0f0fa; } + .openerp .oe_searchview .oe_searchview_drawer form { + margin-left: 12px; } + .openerp .oe_searchview .oe_searchview_drawer form p { + margin: 4px 0; + line-height: 18px; } + .openerp .oe_searchview .oe_searchview_drawer form button { + margin: 0 0 8px 0; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom { + padding: 0 8px 8px 8px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom form { + display: none; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li { + cursor: pointer; + position: relative; + line-height: 14px; + padding: 2px 4px 2px 20px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li:hover { + background-color: #f0f0fa; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom li button { + position: absolute; + top: 0; + right: 5px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_dashboard form { + display: none; + margin-top: 2px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced form { + display: none; + margin-top: 8px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced button.oe_add_condition:before { + content: "Z"; + font-family: "entypoRegular" !important; + font-size: 24px; + font-weight: 300 !important; + margin-right: 4px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced ul { + list-style: none; + padding: 0; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li { + cursor: pointer; + position: relative; + list-style: none; + margin: 0; + white-space: nowrap; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced li:first-child .searchview_extended_prop_or { + visibility: hidden; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_advanced .searchview_extended_prop_or { + opacity: 0.5; + margin-left: -14px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_opened h4:before { + content: "▾ "; + position: relative; + top: -1px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_opened form { + display: block; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop { + display: inline-block; + width: 12px; + height: 12px; + line-height: 12px; + padding: 1px; + color: #8786b7; + line-height: 8px; + text-align: center; + font-weight: bold; + text-shadow: 0 1px 1px white; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete:hover, .openerp .oe_searchview .oe_searchview_drawer .searchview_extended_delete_prop:hover { + text-decoration: none; + color: white; + background: #8786b7; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.4); + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + border-radius: 2px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_delete { + display: none; + position: absolute; + bottom: 1px; + right: 4px; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_private:hover .oe_searchview_custom_delete, .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:hover .oe_searchview_custom_delete { + display: inline-block; } + .openerp .oe_searchview .oe_searchview_drawer .oe_searchview_custom_public:after { + content: ","; + font-family: "entypoRegular" !important; + font-size: 22px; + font-weight: 300 !important; + margin: 0 0 0 4px; + padding: 0; } + .openerp .oe_view_nocontent { + padding: 15px; + margin-top: 0; + color: #777777; + font-size: 125%; + max-width: 700px; } + .openerp .oe_view_nocontent .oe_view_nocontent_create { + margin-top: 0; + padding-top: 35px; + color: #4c4c4c; } + .openerp .oe_view_nocontent .oe_view_nocontent_create:before { + content: ""; + display: inline-block; + position: absolute; + width: 70px; + height: 80px; + margin-left: -70px; + margin-top: -50px; + background: transparent url(/web/static/src/img/view_empty_arrow.png) no-repeat 0px 0px; } + .openerp .oe_view_nocontent > p { + padding-left: 78px; } + .openerp .oe_view_nocontent .oe_empty_custom_dashboard { + background: transparent url(/web/static/src/img/graph_background.png) no-repeat 0 0; + margin-top: -15px; + padding: 100px 0 0 137px; + min-height: 327px; + margin-left: -15px; } + .openerp .oe_view.oe_cannot_create .oe_view_nocontent_create { + display: none; } + .openerp .oe_formview { + background: white; } + .openerp .oe_form_dropdown_section { + position: relative; + display: inline-block; } + .openerp .oe_form_invalid input, .openerp .oe_form_invalid select, .openerp .oe_form_invalid textarea { + background-color: #ff6666 !important; + border: 1px solid #dd0000 !important; } + .openerp .oe_view_manager_current .oe_form_editable .oe_highlight { + color: #404040; + background: none; } + .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight { + background-color: #e3e3e3; + background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); + background-image: -webkit-linear-gradient(top, #efefef, #d8d8d8); + background-image: -moz-linear-gradient(top, #efefef, #d8d8d8); + background-image: -ms-linear-gradient(top, #efefef, #d8d8d8); + background-image: -o-linear-gradient(top, #efefef, #d8d8d8); + background-image: linear-gradient(to bottom, #efefef, #d8d8d8); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; } + .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:active { + background-color: #ececec; + background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6)); + background-image: -webkit-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -moz-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -ms-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: -o-linear-gradient(top, #e3e3e3, #f6f6f6); + background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6); + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_view_manager_current .oe_form_editable button.oe_highlight:hover { + background-color: #ececec; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); + background-image: -webkit-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -moz-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -ms-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: -o-linear-gradient(top, #f6f6f6, #e3e3e3); + background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; } + .openerp .oe_form_invisible { + display: none !important; } + .openerp .oe_form_editable .oe_read_only { + display: none !important; } + .openerp .oe_form_readonly .oe_edit_only, .openerp .oe_form_readonly .oe_form_field:empty { + display: none !important; } + .openerp .oe_form_readonly .oe_form .oe_form_field_date { + width: auto; } + .openerp .oe_form_nosheet { + margin: 16px; } + .openerp .oe_form_nosheet > header { + margin: -16px -16px 0 -16px; + padding: 0; } + .openerp .oe_form_nosheet.oe_form_nomargin { + margin: 0; } + .openerp .oe_form_nosheet.oe_form_nomargin > header { + margin: 0; } + .openerp .oe_form_sheetbg { + padding: 16px 0; } + .openerp .oe_form_sheet_width { + min-width: 650px; + max-width: 860px; + margin: 0 auto; } + .openerp .oe_form_sheet { + background: white; + min-height: 330px; + padding: 16px; } + .openerp .oe_form_sheet .oe_list { + overflow-x: auto; } + .openerp .oe_application .oe_form_sheetbg { + background: url(/web/static/src/img/form_sheetbg.png); + border-bottom: 1px solid #dddddd; } + .openerp .oe_application .oe_form_sheet { + border: 1px solid #c8c8d3; + -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); } + .openerp .oe_application .oe_form_sheet .ui-tabs { + margin: 0 -16px; } + .openerp .oe_application .oe_form_sheet .oe_notebook_page { + padding: 0 16px; } + .openerp .oe_form header { + position: relative; + border-bottom: 1px solid #cacaca; + padding-left: 2px; + background-color: #ededed; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); } + .openerp .oe_form header > span { + margin-left: 4px; } + .openerp .oe_form header ul { + display: inline-block; + float: right; } + .openerp .oe_form header .oe_button { + margin: 3px 2px 1px; } + .openerp .oe_form header .oe_button:first-child { + margin-left: 6px; } + .openerp .oe_form header .oe_tags { + margin: 5px 0 0 5px; + width: 400px; + padding-bottom: 0; } + .openerp .oe_form div.oe_chatter { + box-sizing: border-box; + min-width: 682px; + max-width: 892px; + margin: 0 auto; + padding: 16px 16px 48px; } + .openerp .oe_form div.oe_form_configuration p, .openerp .oe_form div.oe_form_configuration ul, .openerp .oe_form div.oe_form_configuration ol { + color: #aaaaaa; + max-width: 650px; } + .openerp .oe_form div.oe_form_configuration label { + min-width: 150px; } + .openerp .oe_form div.oe_form_configuration .oe_form_group_cell_label { + padding: 1px 0; } + .openerp .oe_form div.oe_form_configuration .oe_form_group_cell div div { + padding: 1px 0; } + .openerp .oe_form .oe_subtotal_footer { + width: 1% !important; } + .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell { + text-align: right; + padding: 0 !important; } + .openerp .oe_form .oe_subtotal_footer td.oe_form_group_cell_label { + border-right: none; } + .openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator { + width: 108px; + border-top: 1px solid #cacaca; + margin-top: 4px; + padding-top: 4px; + font-weight: bold; + font-size: 18px; } + .openerp .oe_form .oe_subtotal_footer label:after { + content: ":"; } + .openerp .oe_form .oe_subtotal_footer label.oe_subtotal_footer_separator { + font-weight: bold !important; + padding: 2px 11px 2px 0px !important; } + .openerp .oe_form .oe_subtotal_footer label.oe_form_label_help { + font-weight: normal; } + .openerp .oe_form .oe_form_box_info { + background: #ffee99; + border-bottom: 1px solid #ccbb66; + padding: 4px; } + .openerp .oe_form .oe_form_box_info > p { + margin: auto; } + .openerp .oe_form .oe_form_box_warning { + background: #bd362f; + border-bottom: 1px solid #990000; + padding: 4px; } + .openerp .oe_form .oe_form_box_warning * { + color: white; + text-shadow: none; } + .openerp .oe_form .oe_form_box_warning > p { + margin: auto; } + .openerp .oe_form .oe_form_button { + margin: 2px; } + .openerp .oe_form td.oe_form_group_cell_label { + border-right: 1px solid #dddddd; + padding: 2px 0px; } + .openerp .oe_form td.oe_form_group_cell_label label { + line-height: 18px; + display: block; + min-width: 140px; } + .openerp .oe_form td.oe_form_group_cell + .oe_form_group_cell { + padding: 2px 0 2px 8px; } + .openerp .oe_form .oe_form_group { + width: 100%; + margin: 9px 0 9px 0; } + .openerp .oe_form .oe_form_group .oe_form_group_cell.oe_group_right { + padding-left: 20px; } + .openerp .oe_form .oe_form_label_help[for], .openerp .oe_form .oe_form_label[for] { + font-weight: bold; + white-space: nowrap; + padding-right: 8px; } + .openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span { + font-size: 80%; + color: darkGreen; + vertical-align: top; + position: relative; + top: -4px; + padding: 0 2px; } + .openerp .oe_horizontal_border { + border-bottom: 1px solid black; } + .openerp .oe_horizontal_separator { + font-weight: bold; + font-size: 20px; + margin: 15px 0px 10px 0px; + color: #7c7bad; } + .openerp .oe_horizontal_separator:empty { + height: 5px; } + .openerp .oe_vertical_separator { + border-left: 1px solid #666666; + padding: 0 4px 0 4px; } + .openerp .oe_form_field_progressbar { + display: inline-block; + min-width: 70px; } + .openerp .oe_form_field_progressbar.ui-progressbar { + height: 22px; + font-size: 10px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #999999; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + background: white; + min-width: 50px; } + .openerp .oe_form_field_progressbar.ui-progressbar span { + position: absolute; + margin-left: 10px; + font-weight: bold; } + .openerp .oe_form_field_progressbar.ui-progressbar .ui-widget-header { + background: #cccccc url(/web/static/lib/jquery.ui/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; } + .openerp .oe_form .oe_form_field_text { + width: 100%; } + .openerp .oe_form .oe_form_field_text .oe_form_text_content { + text-overflow: ellipsis; + display: inline-block; + white-space: pre-wrap; + overflow-x: hidden; + width: 100%; } + .openerp .oe_form .oe_form_field_char input, + .openerp .oe_form .oe_form_field_url input, + .openerp .oe_form .oe_form_field_email input, + .openerp .oe_form .oe_form_field_text textarea, + .openerp .oe_form .oe_form_field_selection select { + width: 100%; } + .openerp .oe_form .oe_form_field_text.oe_inline, .openerp .oe_form .oe_form_field_text.oe_inline > textarea { + width: 500px; } + .openerp .oe_form h1, .openerp .oe_form h2, .openerp .oe_form h3, .openerp .oe_form h4, .openerp .oe_form h5, .openerp .oe_form h6 { + margin: 0 0 4px 0; } + .openerp .oe_form h1 input, .openerp .oe_form h2 input, .openerp .oe_form h3 input, .openerp .oe_form h4 input, .openerp .oe_form h5 input, .openerp .oe_form h6 input { + height: inherit !important; + font-size: inherit; } + .openerp .oe_form .oe_form_field { + width: 100%; + display: inline-block; + padding: 2px 2px 2px 0px; + vertical-align: top; } + .openerp .oe_form .oe_form_field input { + margin: 0px; } + .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select { + height: 22px; + padding-top: 2px; } + .openerp .oe_form input[type="text"], .openerp .oe_form input[type="password"], .openerp .oe_form input[type="file"], .openerp .oe_form select, .openerp .oe_form textarea { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + background: white; + min-width: 60px; + color: #1f1f1f; + font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; } + .openerp .oe_form input[readonly], .openerp .oe_form select[readonly], .openerp .oe_form textarea[readonly], .openerp .oe_form input[disabled], .openerp .oe_form select[disabled] { + background: #e5e5e5 !important; + color: #666666; } + .openerp .oe_form textarea[disabled] { + border: none; + padding-left: 8px; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + -moz-border-radius: 0px; + -webkit-border-radius: 0px; + border-radius: 0px; + color: #4c4c4c; } + .openerp .oe_form textarea.oe_inline[disabled] { + border-left: 8px solid #eeeeee; } + .openerp .oe_form .oe_form_field_url button img { + vertical-align: top; } + .openerp .oe_form .oe_form_field_monetary, + .openerp .oe_form .oe_form_field_date, + .openerp .oe_form .oe_form_field_datetime { + white-space: nowrap; } + .openerp .oe_form .oe_form_field_boolean { + width: auto; } + .openerp .oe_form .oe_datepicker_container { + display: none; } + .openerp .oe_form .oe_datepicker_root { + display: inline-block; } + .openerp .oe_form .oe_form_required input:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required select:not([disabled]):not([readonly]), .openerp .oe_form .oe_form_required textarea:not([disabled]):not([readonly]) { + background-color: #d2d2ff !important; } + .openerp .oe_form .oe_form_invalid input, .openerp .oe_form .oe_form_invalid select, .openerp .oe_form .oe_form_invalid textarea { + background-color: #ff6666 !important; + border: 1px solid #dd0000 !important; } + .openerp .oe_form .oe_input_icon { + cursor: pointer; + margin: 3px 0 0 -21px; + vertical-align: top; } + .openerp .oe_form .oe_input_icon_disabled { + position: absolute; + cursor: default; + opacity: 0.5; + filter: alpha(opacity=50); + right: 5px; + top: 3px; } + .openerp .oe_form .oe_form_field_with_button.oe_no_button > .oe_button { + display: none; } + .openerp .oe_form .oe_form_field_with_button:not(.oe_no_button) > .oe_button { + float: right; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + border-bottom-left-radius: 0px; + height: 22px; } + .openerp .oe_form .oe_form_field_with_button input { + width: 100%; } + .openerp .oe_form .oe_form_field_with_button > div { + position: relative; + overflow: hidden; } + .openerp .oe_form .oe_form_embedded_html { + position: relative; + width: 600px; + margin-left: 130px; + margin-top: 32px; + margin-bottom: 32px; + text-align: justify; } + .openerp .oe_form_editable .oe_form .oe_form_field_integer input { + width: 6em; } + .openerp .oe_form_editable .oe_form .oe_form_field_float input { + width: 7em; } + .openerp .oe_form_editable .oe_form .oe_form_field_date input { + width: 100px; } + .openerp .oe_form_editable .oe_form .oe_form_field_datetime input { + width: 150px; } + .openerp .oe_hidden_input_file { + position: relative; } + .openerp .oe_hidden_input_file input.oe_form_binary_file { + z-index: 0; + line-height: 0; + font-size: 12px; + position: absolute; + top: 1px; + left: 0; + right: 0; + opacity: 0; + filter: alpha(opacity=0); + -ms-filter: "alpha(opacity=0)"; + margin: 0; + padding: 0; } + .openerp .oe_form .oe_form_field_image { + padding: 0; + position: relative; + display: inline-block; + width: auto; + vertical-align: top; } + .openerp .oe_form .oe_form_field_image .oe_form_field_image_controls { + position: absolute; + top: 1px; + padding: 4px 0; + width: 100%; + display: none; + text-align: center; + color: #eeeeee; + background: rgba(37, 37, 37, 0.9); + -moz-border-radius: 3px 3px 0 0; + -webkit-border-radius: 3px 3px 0 0; + border-radius: 3px 3px 0 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; } + .openerp .oe_form .oe_form_field_image:hover .oe_form_field_image_controls { + display: block; } + .openerp .oe_fileupload { + display: inline-block; + clear: both; + width: 100%; } + .openerp .oe_fileupload .oe_add { + float: left; + position: relative; + width: 100%; + left: 2px; + top: 7px; + overflow: hidden; } + .openerp .oe_fileupload .oe_add button { + display: inline; + height: 24px; + font-size: 12px; + line-height: 12px; + vertical-align: middle; } + .openerp .oe_fileupload .oe_add button.oe_attach { + width: 24px; + overflow: hidden; + width: 24px; + overflow: hidden; + background: transparent; + color: #7c7bad; + box-shadow: none; + border: none; + text-shadow: none; } + .openerp .oe_fileupload .oe_add button.oe_attach .oe_e { + position: relative; + top: -1px; + left: -9px; } + .openerp .oe_fileupload .oe_add input.oe_form_binary_file { + display: inline-block; + margin-left: -85px; + height: 22px; + width: 152px; + margin-top: -24px; + cursor: pointer; } + .openerp .oe_fileupload .oe_add .oe_attach_label { + color: #7c7bad; + margin-left: -3px; } + .openerp .oe_fileupload .oe_attachments { + margin-bottom: 4px; + margin-right: 0px; + font-size: 12px; + border-radius: 2px; + border: solid 1px rgba(124, 123, 173, 0.14); } + .openerp .oe_fileupload .oe_attachments .oe_attachment { + padding: 2px; + padding-left: 4px; + padding-right: 4px; } + .openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e { + font-size: 23px; + margin-top: -5px; } + .openerp .oe_fileupload .oe_attachments .oe_attachment .oe_e:hover { + text-decoration: none; } + .openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(odd) { + background: white; } + .openerp .oe_fileupload .oe_attachments .oe_attachment:nth-child(even) { + background: #f4f5fa; } + .openerp .oe_form_field_many2one td:first-child { + position: relative; } + .openerp .oe_form_field_many2one span.oe_m2o_drop_down_button { + position: absolute; + top: 2px; + right: 0px; } + .openerp .oe_form_field_many2one .oe_m2o_cm_button { + line-height: 14px; + float: right; + padding-left: 2px; } + .openerp .oe_form_field_many2one input { + padding-right: 13px; } + .openerp.ui-autocomplete li.oe_m2o_dropdown_option a { + font-style: italic; + padding-left: 2em; } + .openerp.ui-autocomplete li:not(.oe_m2o_dropdown_option) + li.oe_m2o_dropdown_option { + margin-top: 10px; } + .openerp ul.oe_form_status, .openerp ul.oe_form_status_clickable { + display: inline-block; + margin: 0; + padding: 0 18px 0 0; } + .openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li { + display: inline-block; + list-style-type: none; + margin: 0 -18px 0 0; + padding: 0; + background-color: #ededed; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); } + .openerp ul.oe_form_status li:first-child .label, .openerp ul.oe_form_status_clickable li:first-child .label { + border-left: 1px solid #cacaca; + padding-left: 14px; } + .openerp ul.oe_form_status li:last-child, .openerp ul.oe_form_status_clickable li:last-child { + border-right: 1px solid #cacaca; } + .openerp ul.oe_form_status li:last-child .label, .openerp ul.oe_form_status_clickable li:last-child .label { + padding-right: 14px; } + .openerp ul.oe_form_status li:last-child .arrow, .openerp ul.oe_form_status_clickable li:last-child .arrow { + display: none; } + .openerp ul.oe_form_status li .label, .openerp ul.oe_form_status_clickable li .label { + color: #4c4c4c; + text-shadow: 0 1px 1px #fcfcfc, 0 -1px 1px #dedede; + padding: 7px; + display: inline-block; + padding-left: 24px; + margin: 0; + position: relative; } + .openerp ul.oe_form_status li .arrow, .openerp ul.oe_form_status_clickable li .arrow { + width: 17px; + display: inline-block; + vertical-align: top; + overflow: hidden; + margin-left: -5px; } + .openerp ul.oe_form_status li .arrow span, .openerp ul.oe_form_status_clickable li .arrow span { + position: relative; + width: 24px; + height: 24px; + display: inline-block; + margin-left: -12px; + margin-top: 3px; + box-shadow: -1px 1px 2px rgba(255, 255, 255, 0.2), inset -1px 1px 1px rgba(0, 0, 0, 0.2); + background-color: #dedede; + background: -moz-linear-gradient(135deg, #dedede, #fcfcfc); + background: -o-linear-gradient(135deg, #fcfcfc, #dedede); + background: -webkit-gradient(linear, left top, right bottom, from(#fcfcfc), to(#dedede)); + background: -ms-linear-gradient(top, #fcfcfc, #dedede); + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); } + .openerp ul.oe_form_status li.oe_active, .openerp ul.oe_form_status_clickable li.oe_active { + background-color: #5382b9; + background-image: -webkit-gradient(linear, left top, left bottom, from(#729fcf), to(#3465a4)); + background-image: -webkit-linear-gradient(top, #729fcf, #3465a4); + background-image: -moz-linear-gradient(top, #729fcf, #3465a4); + background-image: -ms-linear-gradient(top, #729fcf, #3465a4); + background-image: -o-linear-gradient(top, #729fcf, #3465a4); + background-image: linear-gradient(to bottom, #729fcf, #3465a4); } + .openerp ul.oe_form_status li.oe_active .arrow span, .openerp ul.oe_form_status_clickable li.oe_active .arrow span { + background-color: #3465a4; + background: -moz-linear-gradient(135deg, #3465a4, #729fcf); + background: -o-linear-gradient(135deg, #729fcf, #3465a4); + background: -webkit-gradient(linear, left top, right bottom, from(#729fcf), to(#3465a4)); + background: -ms-linear-gradient(top, #729fcf, #3465a4); } + .openerp ul.oe_form_status li.oe_active .label, .openerp ul.oe_form_status_clickable li.oe_active .label { + color: white; + text-shadow: 0 1px 1px #729fcf, 0 -1px 1px #3465a4; } + .openerp ul.oe_form_status_clickable li { + cursor: pointer; } + .openerp ul.oe_form_status_clickable li:hover { + background-color: #d9d9d9; + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca)); + background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); + background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); } + .openerp ul.oe_form_status_clickable li:hover .label { + text-shadow: 0 -1px 1px #fcfcfc, 0 1px 1px #dedede; } + .openerp ul.oe_form_status_clickable li:hover .arrow span { + background-color: #d9d9d9; + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#cacaca)); + background-image: -webkit-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -moz-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -ms-linear-gradient(top, #e8e8e8, #cacaca); + background-image: -o-linear-gradient(top, #e8e8e8, #cacaca); + background-image: linear-gradient(to bottom, #e8e8e8, #cacaca); } + .openerp ul.oe_form_status_clickable li .label { + color: #7c7bad; } + .openerp ul.oe_form_status_clickable li.oe_active:hover { + background-color: #3a699f; + background-image: -webkit-gradient(linear, left top, left bottom, from(#4c85c2), to(#284d7d)); + background-image: -webkit-linear-gradient(top, #4c85c2, #284d7d); + background-image: -moz-linear-gradient(top, #4c85c2, #284d7d); + background-image: -ms-linear-gradient(top, #4c85c2, #284d7d); + background-image: -o-linear-gradient(top, #4c85c2, #284d7d); + background-image: linear-gradient(to bottom, #4c85c2, #284d7d); } + .openerp ul.oe_form_status_clickable li.oe_active:hover .label { + text-shadow: 0 -1px 1px #729fcf, 0 1px 1px #3465a4; } + .openerp ul.oe_form_status_clickable li.oe_active:hover .arrow span { + background-color: #284d7d; + background: -moz-linear-gradient(135deg, #284d7d, #4c85c2); + background: -o-linear-gradient(135deg, #4c85c2, #284d7d); + background: -webkit-gradient(linear, left top, right bottom, from(#4c85c2), to(#284d7d)); + background: -ms-linear-gradient(top, #4c85c2, #284d7d); } + .openerp .oe_form .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page { + display: none; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_list_pager_single_page, .openerp .oe_form_field_many2many > .oe_view_manager .oe_list_pager_single_page { + display: none !important; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_view_list, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_view_list { + min-height: 132px; } + .openerp .oe_form_field_one2many .oe_form_field_one2many_list_row_add, .openerp .oe_form_field_many2many .oe_form_field_one2many_list_row_add { + font-weight: bold; } + .openerp .oe_form_field_one2many .oe_list_content > thead, .openerp .oe_form_field_many2many .oe_list_content > thead { + border-bottom: 1px; } + .openerp .oe_form_field_one2many .oe_list_content > tbody tr:nth-child(odd), .openerp .oe_form_field_many2many .oe_list_content > tbody tr:nth-child(odd) { + background: transparent; } + .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save { + background: url(/web/static/src/img/iconset-b-remove.png) 50% 50% no-repeat; } + .openerp .oe_form_field_one2many .oe_list .oe_list_edit_row_save:before, .openerp .oe_form_field_many2many .oe_list .oe_list_edit_row_save:before { + visibility: hidden; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_header_row_top, .openerp .oe_form_field_many2many > .oe_view_manager .oe_header_row_top { + display: none; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td { + padding: 0px 8px; + line-height: 16px; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_i, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_i { + font-size: 13px; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group { + height: auto; + line-height: 16px; } + .openerp .oe_form_field_one2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li, .openerp .oe_form_field_many2many > .oe_view_manager .oe_view_manager_header2 td .oe_pager_group li { + height: auto; + line-height: 16px; } + .openerp .oe_form_field_one2many .oe_list_buttons.oe_editing .oe_list_save, .openerp .oe_form_field_many2many .oe_list_buttons.oe_editing .oe_list_save { + visibility: hidden; } + .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_required { + background-color: #d2d2ff; } + .openerp .oe_form_editable .oe_list_editable .oe_list_content td.oe_readonly { + background-color: #eeeeee; } + .openerp .oe_list_editable .oe_list_content td.oe_list_field_cell { + padding: 4px 6px 3px; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) { + color: transparent; + text-shadow: none; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_edition .oe_list_field_cell:not(.oe_readonly) * { + visibility: hidden; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_drop_down_button { + top: 5px; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_m2o_cm_button { + line-height: 19px; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_input_icon { + margin-top: 5px; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field { + min-width: 0; + max-width: none; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea { + height: 27px; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + border: 1px solid #aaaaff; + margin: 0; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field textarea, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field select { + min-width: 0; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input { + text-align: right; + width: 100% !important; } + .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master { + width: 100% !important; } + .openerp .oe_list_group_name { + white-space: nowrap; } + .openerp .oe_form .oe_form_field_many2many > .oe_list .oe_list_pager_single_page { + display: none; } + .openerp .oe_list_buttons .oe_alternative { + visibility: hidden; } + .openerp .oe_list_buttons .oe_list_save, .openerp .oe_list_buttons .oe_list_discard { + display: none; } + .openerp .oe_list_buttons.oe_editing .oe_list_add { + display: none; } + .openerp .oe_list_buttons.oe_editing .oe_list_save { + display: inline-block; } + .openerp .oe_list_buttons.oe_editing .oe_list_discard { + display: inline; } + .openerp .oe_list_buttons.oe_editing .oe_alternative { + visibility: visible; } + .openerp .oe_list.oe_cannot_edit .oe_list_header_handle, .openerp .oe_list.oe_cannot_edit .oe_list_field_handle { + display: none !important; + padding: 0 !important; } + .openerp .oe_list.oe_cannot_delete .oe_list_record_delete { + display: none !important; } + .openerp .oe_list .oe_form .oe_form_nosheet { + margin: 0; + padding: 0; + border: none; } + .openerp .oe_list .oe_form .oe_form_field { + width: auto; + position: absolute; + margin: 0 !important; + padding: 0; } + .openerp .oe_list .oe_form .oe_form_field_boolean { + padding: 1px 6px 3px; } + .openerp .oe_list .oe_list_content .oe_group_header { + background-color: #ededed; + background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede)); + background-image: -webkit-linear-gradient(top, #fcfcfc, #dedede); + background-image: -moz-linear-gradient(top, #fcfcfc, #dedede); + background-image: -ms-linear-gradient(top, #fcfcfc, #dedede); + background-image: -o-linear-gradient(top, #fcfcfc, #dedede); + background-image: linear-gradient(to bottom, #fcfcfc, #dedede); } + .openerp .oe_list_content { + width: 100%; } + .openerp .oe_list_content td:first-child:after, .openerp .oe_list_content th:first-child:after { + border-width: 0; } + .openerp .oe_list_content td.oe_number { + text-align: right !important; + max-width: 100px; } + .openerp .oe_list_content td.oe_list_field_date, .openerp .oe_list_content th.oe_list_header_date { + min-width: 6em; } + .openerp .oe_list_content > thead { + border-bottom: 2px solid #cacaca; + background: #eeeeee; + vertical-align: top; } + .openerp .oe_list_content td, .openerp .oe_list_content th { + padding: 3px 6px; + line-height: 18px; } + .openerp .oe_list_content th.oe_sortable, .openerp .oe_list_content th.oe_sortable div { + cursor: pointer; } + .openerp .oe_list_content th.oe_sortable div { + position: relative; } + .openerp .oe_list_content th.oe_sortable div:after { + float: right; + margin-right: 6px; + content: ""; + margin-top: 7px; + border-width: 0 4px 4px; + border-style: solid; + border-color: black transparent; + visibility: hidden; } + .openerp .oe_list_content th.sortup div:after { + visibility: visible; + filter: alpha(opacity=60); + opacity: 0.6; } + .openerp .oe_list_content .oe_list_header_many2many_tags { + min-width: 70px; } + .openerp .oe_list_content th.sortdown div:after { + border-bottom: none; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid black; + visibility: visible; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; + filter: alpha(opacity=60); + opacity: 0.6; } + .openerp .oe_list_content > tbody { + cursor: pointer; } + .openerp .oe_list_content > tbody > tr { + height: 27px; + border-top: 1px solid #dddddd; } + .openerp .oe_list_content > tbody > tr > td.oe_list_field_cell { + padding: 3px 6px; + white-space: pre-line; } + .openerp .oe_list_content > tbody > tr > td > button, .openerp .oe_list_content > tbody > tr > th > button { + border: none; + background: transparent; + padding: 0; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child { + width: 17px; } + .openerp .oe_list_content > tbody > tr > td.oe_list_checkbox:first-child:after, .openerp .oe_list_content > tbody > tr th.oe_list_checkbox:first-child:after { + border-width: 0; } + .openerp .oe_list_content > tbody > tr > td.oe_list_field_boolean input { + filter: alpha(opacity=50); + opacity: 0.5; } + .openerp .oe_list_content > tbody > tr:nth-child(odd) { + background-color: #f0f0fa; + background-color: #efeff8; + background-image: -webkit-gradient(linear, left top, left bottom, from(#f0f0fa), to(#eeeef6)); + background-image: -webkit-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -moz-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -ms-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: -o-linear-gradient(top, #f0f0fa, #eeeef6); + background-image: linear-gradient(to bottom, #f0f0fa, #eeeef6); } + .openerp .oe_list_content > tfoot { + border-top: 2px solid #cacaca; + border-bottom: 1px solid #cacaca; + background: #eeeeee; + font-weight: bold; } + .openerp .oe_list_content .numeric { + text-align: right; + width: 82px; } + .openerp .oe_list_content .numeric input { + text-align: right; } + .openerp .oe_list_content th.oe_list_header_handle { + font-size: 1px; + overflow: hidden; + text-indent: -9001px; } + .openerp .oe_list_content td.oe_list_field_handle { + width: 1em; + padding: 0 !important; + cursor: ns-resize; } + .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle { + font-size: 1px; + letter-spacing: -1px; + color: transparent; + text-shadow: none; + font-weight: normal; + margin-right: 7px; } + .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before { + font: 18px "entypoRegular"; + content: "}"; + color: #e0e0e0; } + .openerp .oe_list_content .oe_list_field_progressbar progress { + width: 100%; } + .openerp .tree_header { + background-color: #f0f0f0; + border-bottom: 1px solid #cacaca; + color: #4c4c4c; + padding: 5px; + height: 25px; } + .openerp .tree_header button { + float: right; + height: 27px; + margin-right: 5px; } + .openerp .oe-treeview-table { + width: 100%; + background-color: white; + border-spacing: 0; + color: #4c4c4c; } + .openerp .oe-treeview-table th { + padding: 10px; + font-weight: bold; + background-color: #f0f0f0; + border-bottom: 2px solid #cacaca; } + .openerp .oe-treeview-table td { + cursor: pointer; + vertical-align: middle; + text-align: left; + vertical-align: middle; + height: 20px; + padding-left: 4px; + padding-right: 4px; + border-right: 1px solid #e7e7e7; } + .openerp .oe-treeview-table td.oe_number { + text-align: right !important; } + .openerp .oe-treeview-table tr { + border-bottom: 1px solid #d6d6d6; } + .openerp .oe-treeview-table tr:hover { + background-color: #e7e7e7; } + .openerp .oe-treeview-table span { + font-size: 90%; + font-weight: normal; + white-space: nowrap; + display: block; } + .openerp .oe-treeview-table .treeview-tr.oe-treeview-first { + background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; } + .openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first { + background-image: url(/web/static/src/img/collapse.gif); } + .openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span { + margin-left: 16px; } + .openerp .oe_layout_debugging .oe_form_group { + outline: 2px dashed green; } + .openerp .oe_layout_debugging .oe_form_group_cell { + outline: 1px solid blue; } + .openerp .oe_layout_debugging .oe_form_group:hover, .openerp .oe_layout_debugging .oe_form_group_cell:hover { + outline-color: red; } + .openerp .oe_layout_debugging .oe_form_group_row_incomplete > td:last-child:after { + content: "[Incomplete Row]"; + background: red; + padding: 2px; + font-weight: bold; + color: white; + float: right; } + .openerp .oe_layout_debugging .oe_form_group_row_incomplete.oe_form_group_row_newline > td:last-child:after { + content: "[newline]"; } + .openerp .oe_debug_view { + float: left; } + .openerp .oe_debug_view_log { + font-size: 95%; } + .openerp .oe_debug_view_log label { + display: block; + width: 49%; + text-align: right; + float: left; + font-weight: bold; + color: #000099; } + .openerp .oe_debug_view_log span { + display: block; + width: 49%; + float: right; + color: #333333; } @-moz-document url-prefix() { .openerp .oe_view_manager .oe_view_manager_switch li { - line-height: 21px; - } + line-height: 21px; } .openerp .oe_searchview .oe_searchview_search { - top: -1px; - } + top: -1px; } .openerp .oe_form_field_many2one .oe_m2o_cm_button { - line-height: 18px; - } + line-height: 18px; } .openerp .oe_secondary_submenu { - line-height: 14px; - } + line-height: 14px; } .openerp .oe_webclient .oe_star_on, .openerp .oe_webclient .oe_star_off { - top: 0px; - } -} + top: 0px; } } .kitten-mode-activated { background-size: cover; - background-attachment: fixed; -} -.kitten-mode-activated > * { - opacity: 0.7; -} + background-attachment: fixed; } + .kitten-mode-activated > * { + opacity: 0.7; } + .loading-kitten { -moz-border-radius: 15px; -webkit-border-radius: 15px; border-radius: 15px; -moz-box-shadow: 0 0 5px 5px #999999; -webkit-box-shadow: 0 0 5px 5px #999999; - box-shadow: 0 0 5px 5px #999999; -} + box-shadow: 0 0 5px 5px #999999; } div.ui-widget-overlay { background: black; filter: alpha(opacity=30); - opacity: 0.3; -} + opacity: 0.3; } .ui-widget { font-family: "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; color: #4c4c4c; - font-size: 13px; -} + font-size: 13px; } .ui-menu { padding: 2px 0; @@ -3208,211 +2617,154 @@ div.ui-widget-overlay { -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3); margin-top: 4px; - border: 1px solid #afafb6; -} -.ui-menu .ui-menu-item { - width: 100%; - padding: 0; -} -.ui-menu .ui-menu-item a { - padding: 1px 16px; -} -.ui-menu .ui-menu-item a.ui-corner-all { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; -} -.ui-menu .ui-menu-item a.ui-state-active { - background: #f0f0fa; -} -.ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active { - background: #7c7bad; -} + border: 1px solid #afafb6; } + .ui-menu .ui-menu-item { + width: 100%; + padding: 0; } + .ui-menu .ui-menu-item a { + padding: 1px 16px; } + .ui-menu .ui-menu-item a.ui-corner-all { + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; } + .ui-menu .ui-menu-item a.ui-state-active { + background: #f0f0fa; } + .ui-menu .ui-menu-item a.ui-state-hover, .ui-menu .ui-menu-item a.ui-state-active { + background: #7c7bad; } .ui-corner-all { -moz-border-radius: 3px; -webkit-border-radius: 3px; - border-radius: 3px; -} + border-radius: 3px; } .openerp .db_option_table td { - padding-bottom: 10px !important; -} + padding-bottom: 10px !important; } .openerp_ie .placeholder { color: #afafb6 !important; - font-style: italic !important; -} + font-style: italic !important; } +.openerp_ie .oe_form_binary_file { + width: 80px; } .openerp_ie .oe_form_field_boolean input { - background: white; -} + background: white; } .openerp_ie .db_option_table .oe_form_field_selection { - width: auto; -} + width: auto; } .openerp_ie input[type='checkbox'] { border: none; background: none; - box-shadow: none; -} + box-shadow: none; } .openerp_ie .oe_logo img { - border: none; -} + border: none; } .openerp_ie .oe_header_row button.oe_highlight { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_view_manager_view_kanban { - display: table-cell; -} + display: table-cell; } .openerp_ie .oe_view_manager_buttons button.oe_write_full { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_view_manager_buttons button.oe_highlight { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_view_manager_buttons button .oe_form_button_edit { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_view_manager_buttons button .oe_form_button_create { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_kanban_image { - border: none; -} + border: none; } .openerp_ie .oe_msg_icon { - border: none; -} + border: none; } .openerp_ie .oe_form header ul { - height: 29px; -} + height: 29px; } .openerp_ie .oe_attach { - filter: none; -} + filter: none; } .openerp_ie .oe_link { - filter: none; -} + filter: none; } .openerp_ie .oe_kanban_show_more { clear: both; - text-align: center; -} + text-align: center; } .openerp_ie.oe_kanban_grouped .oe_kanban_show_more .oe_button { width: 100%; - padding: 3px 12px; -} + padding: 3px 12px; } .openerp_ie .oe_form_buttons button { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie .oe_sidebar button { padding-top: 0; - padding-bottom: 0; -} + padding-bottom: 0; } .openerp_ie img { - border: none; -} + border: none; } .openerp_ie .oe_dropdown_arrow { - line-height: 1.7em; -} + line-height: 1.7em; } .openerp_ie .oe_form_buttons button, .openerp_ie .oe_view_manager_buttons button { - line-height: 1.7em; -} + line-height: 1.7em; } .openerp_ie .oe_form_buttons .oe_highlight, .openerp_ie .oe_view_manager_buttons .oe_highlight { - line-height: 1.7em; -} + line-height: 1.7em; } .openerp_ie .oe_topbar { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#646060', endColorstr='#262626'); -} + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#646060', endColorstr='#262626'); } .openerp_ie .ui-state-error, .openerp_ie .ui-widget-content .ui-state-error, .openerp_ie .ui-widget-header .ui-state-error { - filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); -} + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } .openerp_ie .oe_popup_form { - width: 99% !important; -} + width: 99% !important; } .openerp_ie .oe_form_label { - white-space: normal !important; -} + white-space: normal !important; } .openerp_ie ul.oe_form_status li, .openerp_ie ul.oe_form_status_clickable li { display: inline-block; - clear: both; -} -.openerp_ie ul.oe_form_status li:last-child, .openerp_ie ul.oe_form_status_clickable li:last-child { - overflow: hidden; - border-right: 1px solid #cacaca; -} -.openerp_ie ul.oe_form_status li:last-child .label, .openerp_ie ul.oe_form_status_clickable li:last-child .label { - padding-right: 14px; - border-right: none; -} -.openerp_ie ul.oe_form_status li:last-child .arrow, .openerp_ie ul.oe_form_status_clickable li:last-child .arrow { - display: inline-block; - opacity: 0; - filter: alpha(opacity=0); - border: none; - width: 0; - border-right: none; -} + clear: both; } + .openerp_ie ul.oe_form_status li:last-child, .openerp_ie ul.oe_form_status_clickable li:last-child { + overflow: hidden; + border-right: 1px solid #cacaca; } + .openerp_ie ul.oe_form_status li:last-child .label, .openerp_ie ul.oe_form_status_clickable li:last-child .label { + padding-right: 14px; + border-right: none; } + .openerp_ie ul.oe_form_status li:last-child .arrow, .openerp_ie ul.oe_form_status_clickable li:last-child .arrow { + display: inline-block; + opacity: 0; + filter: alpha(opacity=0); + border: none; + width: 0; + border-right: none; } .openerp_ie ul.oe_form_status .label, .openerp_ie ul.oe_form_status_clickable .label { border-bottom: 1px solid #cacaca; - background: transparent; -} + background: transparent; } .openerp_ie ul.oe_form_status .arrow span, .openerp_ie ul.oe_form_status_clickable .arrow span { - background-color: #fefefe !important; -} + background-color: #fefefe !important; } .openerp_ie ul.oe_form_status li.oe_active .label, .openerp_ie ul.oe_form_status_clickable li.oe_active .label { - border-bottom: 1px solid #729fcf; -} + border-bottom: 1px solid #729fcf; } .openerp_ie ul.oe_form_status li.oe_active .arrow span, .openerp_ie ul.oe_form_status_clickable li.oe_active .arrow span { - background-color: #729fcf !important; -} + background-color: #729fcf !important; } .openerp_ie .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button { - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#EFEFEF', endColorstr='#D8D8D8'); -} + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#EFEFEF', endColorstr='#D8D8D8'); } @media print { .openerp { - text-shadow: none; - } - .openerp .oe_header_row, .openerp ul.oe_header, .openerp div.oe_mail_thread_action, .openerp .oe_mail_recthread_actions, .openerp .oe_button_box, .openerp .oe_form button, .openerp button.oe_invite, .openerp .oe_form header, .openerp .openerp .oe_notebook > li.ui-state-default, .openerp .oe_topbar, .openerp .oe_leftbar, .openerp .oe_loading { - display: none !important; - } - .openerp .oe_list_content button, .openerp .oe_list_content input[type=checkbox] { - visibility: hidden; - } - .openerp .tree_header button, .openerp .oe_mail .oe_mail_thread_msg .oe_mail_unread, .openerp .oe_mail_fetch_more, .openerp .oe_m2o_drop_down_button img, .openerp .oe_form_field_one2many_list_row_add { - visibility: hidden; - } - .openerp a.oe_m2o_cm_button, .openerp a.oe_e { - visibility: hidden; - } - .openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img { - visibility: hidden; - } - .openerp .oe_notebook > li.ui-tabs-selected { - display: block; - } - .openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg { - border: 0px !important; - box-shadow: 0px 0px 0px; - } - .openerp .oe_application .oe_form_sheet .oe_list, .openerp .oe_application .oe_form_sheetbg .oe_list { - overflow-x: visible; - } - .openerp .oe_view_manager_current > .oe_view_manager_header { - border: 0px !important; - box-shadow: 0px 0px 0px; - } - .openerp .text-core .text-wrap .text-arrow { - background: none; - } - .openerp .openerp div.oe_mail_wall { - overflow: hidden !important; - } -} + text-shadow: none; } + .openerp .oe_header_row, .openerp ul.oe_header, .openerp div.oe_mail_thread_action, .openerp .oe_mail_recthread_actions, .openerp .oe_button_box, .openerp .oe_form button, .openerp button.oe_invite, .openerp .oe_form header, .openerp .openerp .oe_notebook > li.ui-state-default, .openerp .oe_topbar, .openerp .oe_leftbar, .openerp .oe_loading { + display: none !important; } + .openerp .oe_list_content button, .openerp .oe_list_content input[type=checkbox] { + visibility: hidden; } + .openerp .tree_header button, .openerp .oe_mail .oe_mail_thread_msg .oe_mail_unread, .openerp .oe_mail_fetch_more, .openerp .oe_m2o_drop_down_button img, .openerp .oe_form_field_one2many_list_row_add { + visibility: hidden; } + .openerp a.oe_m2o_cm_button, .openerp a.oe_e { + visibility: hidden; } + .openerp .oe_form .oe_form_field_date img, .openerp .oe_form .oe_form_field_datetime img { + visibility: hidden; } + .openerp .oe_notebook > li.ui-tabs-selected { + display: block; } + .openerp .oe_application .oe_form_sheet, .openerp .oe_application .oe_form_sheetbg { + border: 0px !important; + box-shadow: 0px 0px 0px; } + .openerp .oe_application .oe_form_sheet .oe_list, .openerp .oe_application .oe_form_sheetbg .oe_list { + overflow-x: visible; } + .openerp .oe_view_manager_current > .oe_view_manager_header { + border: 0px !important; + box-shadow: 0px 0px 0px; } + .openerp .text-core .text-wrap .text-arrow { + background: none; } + .openerp .openerp div.oe_mail_wall { + overflow: hidden !important; } } .blockUI.blockOverlay { background-color: black; - opacity: 0.6; -} + opacity: 0.6; } diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 072fda44357..9c52a658622 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -123,6 +123,7 @@ $sheet-padding: 16px font-size: 1px letter-spacing: -1px color: transparent + text-shadow: none font-weight: normal &:before font: 21px "mnmliconsRegular" @@ -133,6 +134,7 @@ $sheet-padding: 16px font-size: 1px letter-spacing: -1px color: transparent + text-shadow: none font-weight: normal &:before font: $size "entypoRegular" @@ -1979,9 +1981,9 @@ $sheet-padding: 16px .oe_form_field_float input width: 7em .oe_form_field_date input - width: 7.5em + width: 100px .oe_form_field_datetime input - width: 11.5em + width: 150px // }}} // FormView.fields_binary {{{ /* http://www.quirksmode.org/dom/inputfile.html @@ -2558,6 +2560,8 @@ div.ui-widget-overlay .placeholder color: $tag-border !important font-style: italic !important + .oe_form_binary_file + width: 80px .oe_form_field_boolean input background: #fff .db_option_table .oe_form_field_selection diff --git a/addons/web/static/src/fixbind.js b/addons/web/static/src/fixbind.js new file mode 100644 index 00000000000..4a441ce0b9e --- /dev/null +++ b/addons/web/static/src/fixbind.js @@ -0,0 +1,28 @@ +// Fix old versions of Webkit (such as ones used on iOS < 6 or PhantomJS <= 1.7) +// which does not have Function.prototype.bind function + +// Use moz polyfill: +// https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility +if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + // closest thing possible to the ECMAScript 5 internal IsCallable function + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable"); + } + + var aArgs = Array.prototype.slice.call(arguments, 1), + fToBind = this, + fNOP = function () {}, + fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis + ? this + : oThis, + aArgs.concat(Array.prototype.slice.call(arguments))); + }; + + fNOP.prototype = this.prototype; + fBound.prototype = new fNOP(); + + return fBound; + }; +} diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 3870a7999b4..396342b5f6e 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -251,9 +251,9 @@ instance.web.CrashManager = instance.web.Class.extend({ if (handler) { new (handler)(this, error).display(); return; - }; + } if (error.data.name === "openerp.addons.web.session SessionExpiredException") { - this.show_warning({type: "Session Expired", data: { message: "Your OpenERP session expired. Please refresh the current web page." }}); + this.show_warning({type: "Session Expired", data: { message: _t("Your OpenERP session expired. Please refresh the current web page.") }}); return; } if (error.data.exception_type === "except_osv" || error.data.exception_type === "warning" @@ -530,16 +530,11 @@ instance.web.DatabaseManager = instance.web.Widget.extend({ 'login': 'admin', 'password': form_obj['create_admin_pwd'], 'login_successful': function() { - var action = { - type: "ir.actions.client", - tag: 'reload', - params: { - url_search : { - db: form_obj['db_name'], - }, - } - }; - self.do_action(action); + var url = '/?db=' + form_obj['db_name']; + if (self.session.debug) { + url += '&debug'; + } + instance.web.redirect(url); }, }, _push_me: false, @@ -918,9 +913,7 @@ instance.web.Menu = instance.web.Widget.extend({ self.reflow(); // launch the fetch of needaction counters, asynchronous if (!_.isEmpty(menu_data.all_menu_ids)) { - this.rpc("/web/menu/load_needaction", {menu_ids: menu_data.all_menu_ids}).done(function(r) { - self.on_needaction_loaded(r); - }); + this.do_load_needaction(menu_data.all_menu_ids); } }); var lazyreflow = _.debounce(this.reflow.bind(this), 200); @@ -946,7 +939,7 @@ instance.web.Menu = instance.web.Widget.extend({ this.data = {data: data}; this.renderElement(); this.$secondary_menus.html(QWeb.render("Menu.secondary", { widget : this })); - this.$el.on('click', 'a[data-menu]', this.on_menu_click); + this.$el.on('click', 'a[data-menu]', this.on_top_menu_click); // Hide second level submenus this.$secondary_menus.find('.oe_menu_toggler').siblings('.oe_secondary_submenu').hide(); if (self.current_menu) { @@ -955,6 +948,12 @@ instance.web.Menu = instance.web.Widget.extend({ this.trigger('menu_loaded', data); this.has_been_loaded.resolve(); }, + do_load_needaction: function (menu_ids) { + var self = this; + return this.rpc("/web/menu/load_needaction", {'menu_ids': menu_ids}).done(function(r) { + self.on_needaction_loaded(r); + }); + }, on_needaction_loaded: function(data) { var self = this; this.needaction_data = data; @@ -1086,11 +1085,36 @@ instance.web.Menu = instance.web.Widget.extend({ } this.open_menu(id); }, + do_reload_needaction: function () { + var self = this; + self.do_load_needaction([self.current_menu]).then(function () { + self.trigger("need_action_reloaded"); + }); + }, /** * Jquery event handler for menu click * * @param {Event} ev the jquery event */ + on_top_menu_click: function(ev) { + var self = this; + var id = $(ev.currentTarget).data('menu'); + var menu_ids = [id]; + var menu = _.filter(this.data.data.children, function (menu) {return menu.id == id;})[0]; + function add_menu_ids (menu) { + if (menu.children) { + _.each(menu.children, function (menu) { + menu_ids.push(menu.id); + add_menu_ids(menu); + }); + } + }; + add_menu_ids(menu); + self.do_load_needaction(menu_ids).then(function () { + self.trigger("need_action_reloaded"); + }); + this.on_menu_click(ev); + }, on_menu_click: function(ev) { ev.preventDefault(); var needaction = $(ev.target).is('div.oe_menu_counter'); diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index f1b043bacf9..d60f72c6577 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -112,24 +112,27 @@ instance.web.Query = instance.web.Class.extend({ * @returns {jQuery.Deferred> | null} */ group_by: function (grouping) { - if (grouping === undefined) { - return null; + var ctx = instance.web.pyeval.eval( + 'context', this._model.context(this._context)); + + // undefined passed in explicitly (!) + if (_.isUndefined(grouping)) { + grouping = []; } if (!(grouping instanceof Array)) { grouping = _.toArray(arguments); } - if (_.isEmpty(grouping)) { return null; } + if (_.isEmpty(grouping) && !ctx['group_by_no_leaf']) { + return null; + } var self = this; - - var ctx = instance.web.pyeval.eval( - 'context', this._model.context(this._context)); return this._model.call('read_group', { groupby: grouping, fields: _.uniq(grouping.concat(this._fields || [])), domain: this._model.domain(this._filter), - context: this._model.context(this._context), + context: ctx, offset: this._offset, limit: this._limit, orderby: instance.web.serialize_sort(this._order_by) || false @@ -325,7 +328,7 @@ instance.web.Model = instance.web.Class.extend({ * Fetches the model's domain, combined with the provided domain if any * * @param {Array} [domain] to combine with the model's internal domain - * @returns The model's internal domain, or the AND-ed union of the model's internal domain and the provided domain + * @returns {instance.web.CompoundDomain} The model's internal domain, or the AND-ed union of the model's internal domain and the provided domain */ domain: function (domain) { if (!domain) { return this._domain; } @@ -337,7 +340,7 @@ instance.web.Model = instance.web.Class.extend({ * combined with the provided context if any * * @param {Object} [context] to combine with the model's internal context - * @returns The union of the user's context and the model's internal context, as well as the provided context if any. In that order. + * @returns {instance.web.CompoundContext} The union of the user's context and the model's internal context, as well as the provided context if any. In that order. */ context: function (context) { return new instance.web.CompoundContext( @@ -604,6 +607,9 @@ instance.web.DataSet = instance.web.Class.extend(instance.web.PropertiesMixin, alter_ids: function(n_ids) { this.ids = n_ids; }, + remove_ids: function (ids) { + this.alter_ids(_(this.ids).difference(ids)); + }, /** * Resequence records. * @@ -701,22 +707,28 @@ instance.web.DataSetSearch = instance.web.DataSet.extend({ get_domain: function (other_domain) { this._model.domain(other_domain); }, + alter_ids: function (ids) { + this._super(ids); + if (this.index !== null && this.index >= this.ids.length) { + this.index = this.ids.length > 0 ? this.ids.length - 1 : 0; + } + }, + remove_ids: function (ids) { + var before = this.ids.length; + this._super(ids); + if (this._length) { + this._length -= (before - this.ids.length); + } + }, unlink: function(ids, callback, error_callback) { var self = this; return this._super(ids).done(function(result) { - self.ids = _(self.ids).difference(ids); - if (self._length) { - self._length -= 1; - } - if (self.index !== null) { - self.index = self.index <= self.ids.length - 1 ? - self.index : (self.ids.length > 0 ? self.ids.length -1 : 0); - } + self.remove_ids( ids); self.trigger("dataset_changed", ids, callback, error_callback); }); }, size: function () { - if (this._length !== undefined) { + if (this._length != null) { return this._length; } return this._super(); diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 851b60af229..854c5f76218 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -314,4 +314,34 @@ instance.web.auto_date_to_str = function(value, type) { } }; +/** + * performs a half up rounding with arbitrary precision, correcting for float loss of precision + * See the corresponding float_round() in server/tools/float_utils.py for more info + * @param {Number} the value to be rounded + * @param {Number} a non zero precision parameter. eg: 0.01 rounds to two digits. + */ +instance.web.round_precision = function(value, precision){ + if(!value){ + return 0; + }else if(!precision){ + throw new Error('round_precision(...): Cannot round value: '+value+' with a precision of zero (or undefined)'); + } + var normalized_value = value / precision; + var epsilon_magnitude = Math.log(Math.abs(normalized_value))/Math.log(2); + var epsilon = Math.pow(2, epsilon_magnitude - 53); + normalized_value += normalized_value >= 0 ? epsilon : -epsilon; + var rounded_value = Math.round(normalized_value); + return rounded_value * precision; +}; + +/** + * performs a half up rounding with a fixed amount of decimals, correcting for float loss of precision + * See the corresponding float_round() in server/tools/float_utils.py for more info + * @param {Number} the value to be rounded + * @param {Number} the number of decimals. eg: round_decimals(3.141592,2) -> 3.14 + */ +instance.web.round_decimals = function(value, decimals){ + return instance.web.round_precision(value, Math.pow(10,-decimals)); +}; + }; diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index f5449ed8bba..0051598e48a 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -326,7 +326,7 @@ instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.Sea } }, 'autocompleteopen': function () { - this.$el.autocomplete('widget').css('z-index', 3); + this.$el.autocomplete('widget').css('z-index', 1004); }, }, /** @@ -1039,7 +1039,9 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in facet.values.each(function (v) { var i = _(self.filters).indexOf(v.get('value')); if (i === -1) { return; } - $filters.eq(i).addClass('oe_selected'); + $filters.filter(function () { + return Number($(this).data('index')) === i; + }).addClass('oe_selected'); }); }, /** @@ -1129,7 +1131,7 @@ instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends in }); }, toggle_filter: function (e) { - this.toggle(this.filters[$(e.target).index()]); + this.toggle(this.filters[Number($(e.target).data('index'))]); }, toggle: function (filter) { this.view.query.toggle(this.make_facet([this.make_value(filter)])); @@ -1337,20 +1339,22 @@ instance.web.search.CharField = instance.web.search.Field.extend( /** @lends ins } }); instance.web.search.NumberField = instance.web.search.Field.extend(/** @lends instance.web.search.NumberField# */{ - value_from: function () { - if (!this.$el.val()) { - return null; - } - var val = this.parse(this.$el.val()), - check = Number(this.$el.val()); - if (isNaN(val) || val !== check) { - this.$el.addClass('error'); - throw new instance.web.search.Invalid( - this.attrs.name, this.$el.val(), this.error_message); - } - this.$el.removeClass('error'); - return val; - } + complete: function (value) { + var val = this.parse(value); + if (isNaN(val)) { return $.when(); } + var label = _.str.sprintf( + _t("Search %(field)s for: %(value)s"), { + field: '' + this.attrs.string + '', + value: '' + _.str.escapeHTML(value) + ''}); + return $.when([{ + label: label, + facet: { + category: this.attrs.string, + field: this, + values: [{label: value, value: val}] + } + }]); + }, }); /** * @class diff --git a/addons/web/static/src/js/testing.js b/addons/web/static/src/js/testing.js index e7aad43ffc7..e665a43db01 100644 --- a/addons/web/static/src/js/testing.js +++ b/addons/web/static/src/js/testing.js @@ -176,9 +176,9 @@ openerp.testing = {}; }); QUnit.module(testing.current_module + '.' + name, {_oe: options}); - body(testing.case); + body(testing['case']); }; - testing.case = function (name, options, callback) { + testing['case'] = function (name, options, callback) { if (_.isFunction(options)) { callback = options; options = {}; diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 53a7425c036..0996019eaaa 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -91,6 +91,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM init: function(parent, dataset, view_id, options) { var self = this; this._super(parent); + this.ViewManager = parent; this.set_default_options(options); this.dataset = dataset; this.model = dataset.model; @@ -720,6 +721,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM return this.save().done(function(result) { self.trigger("save", result); self.to_view_mode(); + }).then(function(result) { + self.ViewManager.ActionManager.__parentedParent.menu.do_reload_needaction(); }); }, on_button_cancel: function(event) { @@ -765,7 +768,11 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM this.has_been_loaded.done(function() { if (self.datarecord.id && confirm(_t("Do you really want to delete this record?"))) { self.dataset.unlink([self.datarecord.id]).done(function() { - self.execute_pager_action('next'); + if (self.dataset.size()) { + self.execute_pager_action('next'); + } else { + self.do_action('history_back'); + } def.resolve(); }); } else { @@ -802,6 +809,8 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM if (save_obj.error) return $.Deferred().reject(); return $.when.apply($, save_obj.ret); + }).done(function() { + self.$el.removeClass('oe_form_dirty'); }); }, _process_save: function(save_obj) { @@ -1021,7 +1030,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM return value; } var fields = _.chain(this.fields) - .map(function (field, name) { + .map(function (field) { var value = field.get_value(); // ignore fields which are empty, invisible, readonly, o2m // or m2m @@ -1036,7 +1045,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM } return { - name: name, + name: field.name, string: field.string, value: value, displayed: display(field, value), @@ -1047,10 +1056,10 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM .value(); var conditions = _.chain(self.fields) .filter(function (field) { return field.field.change_default; }) - .map(function (field, name) { + .map(function (field) { var value = field.get_value(); return { - name: name, + name: field.name, string: field.string, value: value, displayed: display(field, value), @@ -1444,6 +1453,9 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt $(this).children().each(function() { var $td = $(this), $child = $td.children(':first'); + if ($child.attr('cell-class')) { + $td.addClass($child.attr('cell-class')); + } switch ($child[0].tagName.toLowerCase()) { case 'separator': break; @@ -1520,7 +1532,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt if (! page.__ic) return; page.__ic.on("change:effective_invisible", null, function() { - if (!page.__ic.get('effective_invisible')) { + if (!page.__ic.get('effective_invisible') && page.autofocus) { $new_notebook.tabs('select', i); return; } @@ -2126,7 +2138,7 @@ instance.web.form.AbstractField = instance.web.form.FormWidget.extend(instance.w value without triggering a re-rendering. */ internal_set_value: function(value_) { - var tmp = this.no_render; + var tmp = this.no_rerender; this.no_rerender = true; this.set({'value': value_}); this.no_rerender = tmp; @@ -2296,7 +2308,8 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(instance.we return this.get('value') === '' || this._super(); }, focus: function() { - this.$('input:first')[0].focus(); + var input = this.$('input:first')[0]; + return input ? input.focus() : false; }, set_dimensions: function (height, width) { this._super(height, width); @@ -2393,7 +2406,8 @@ instance.web.form.FieldFloat = instance.web.form.FieldChar.extend({ this._super.apply(this, [value_]); }, focus: function () { - this.$('input:first').select(); + var $input = this.$('input:first'); + return $input.length ? $input.select() : false; } }); @@ -2413,6 +2427,42 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({ this.$input = this.$el.find('input.oe_datepicker_master'); this.$input_picker = this.$el.find('input.oe_datepicker_container'); + $.datepicker.setDefaults({ + clearText: _t('Clear'), + clearStatus: _t('Erase the current date'), + closeText: _t('Done'), + closeStatus: _t('Close without change'), + prevText: _t(''), + nextStatus: _t('Show the next month'), + currentText: _t('Today'), + currentStatus: _t('Show the current month'), + monthNames: Date.CultureInfo.monthNames, + monthNamesShort: Date.CultureInfo.abbreviatedMonthNames, + monthStatus: _t('Show a different month'), + yearStatus: _t('Show a different year'), + weekHeader: _t('Wk'), + weekStatus: _t('Week of the year'), + dayNames: Date.CultureInfo.dayNames, + dayNamesShort: Date.CultureInfo.abbreviatedDayNames, + dayNamesMin: Date.CultureInfo.shortestDayNames, + dayStatus: _t('Set DD as first week day'), + dateStatus: _t('Select D, M d'), + firstDay: Date.CultureInfo.firstDayOfWeek, + initStatus: _t('Select a date'), + isRTL: false + }); + $.timepicker.setDefaults({ + timeOnlyTitle: _t('Choose Time'), + timeText: _t('Time'), + hourText: _t('Hour'), + minuteText: _t('Minute'), + secondText: _t('Second'), + currentText: _t('Now'), + closeText: _t('Done') + }); + this.picker({ onClose: this.on_picker_select, onSelect: this.on_picker_select, @@ -2539,9 +2589,8 @@ instance.web.form.FieldDatetime = instance.web.form.AbstractField.extend(instanc return this.get('value') === '' || this._super(); }, focus: function() { - if (this.datewidget && this.datewidget.$input) { - this.datewidget.$input[0].focus(); - } + var input = this.datewidget && this.datewidget.$input[0]; + return input ? input.focus() : false; }, set_dimensions: function (height, width) { this._super(height, width); @@ -2622,9 +2671,8 @@ instance.web.form.FieldText = instance.web.form.AbstractField.extend(instance.we return this.get('value') === '' || this._super(); }, focus: function($el) { - if (!this.get("effective_readonly") && this.$textarea) { - this.$textarea[0].focus(); - } + var input = !this.get("effective_readonly") && this.$textarea && this.$textarea[0]; + return input ? input.focus() : false; }, set_dimensions: function (height, width) { this._super(height, width); @@ -2707,7 +2755,8 @@ instance.web.form.FieldBoolean = instance.web.form.AbstractField.extend({ this.$checkbox[0].checked = this.get('value'); }, focus: function() { - this.$checkbox[0].focus(); + var input = this.$checkbox && this.$checkbox[0]; + return input ? input.focus() : false; } }); @@ -2793,7 +2842,8 @@ instance.web.form.FieldSelection = instance.web.form.AbstractField.extend(instan } }, focus: function() { - this.$('select:first')[0].focus(); + var input = this.$('select:first')[0]; + return input ? input.focus() : false; }, set_dimensions: function (height, width) { this._super(height, width); @@ -3336,7 +3386,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc } if (! no_recurse) { var dataset = new instance.web.DataSetStatic(this, this.field.relation, self.build_context()); - dataset.name_get([self.get("value")]).done(function(data) { + this.alive(dataset.name_get([self.get("value")])).done(function(data) { self.display_value["" + self.get("value")] = data[0][1]; self.render_value(true); }); @@ -3401,9 +3451,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instanc return ! this.get("value"); }, focus: function () { - if (!this.get('effective_readonly')) { - this.$input && this.$input[0].focus(); - } + var input = !this.get('effective_readonly') && this.$input && this.$input[0]; + return input ? input.focus() : false; }, _quick_create: function() { this.no_ed = true; @@ -4263,7 +4312,8 @@ instance.web.form.FieldMany2ManyTags = instance.web.form.AbstractField.extend(in this.set({'value': _.uniq(this.get('value').concat([id]))}); }, focus: function () { - this.$text[0].focus(); + var input = this.$text && this.$text[0]; + return input ? input.focus() : false; }, set_dimensions: function (height, width) { this._super(height, width); diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index b69ec6dbdca..b96079d2051 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -578,7 +578,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi this.no_leaf = !!context['group_by_no_leaf']; this.grouped = !!group_by; - return this.load_view(context).then( + return this.alive(this.load_view(context)).then( this.proxy('reload_content')); }, /** @@ -895,8 +895,9 @@ instance.web.ListView.List = instance.web.Class.extend( /** @lends instance.web. this.record_callbacks = { 'remove': function (event, record) { - var $row = self.$current.children( - '[data-id=' + record.get('id') + ']'); + var id = record.get('id'); + self.dataset.remove_ids([id]) + var $row = self.$current.children('[data-id=' + id + ']'); var index = $row.data('index'); $row.remove(); }, diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 1143bdfc2af..3af8b3d9fb0 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -521,6 +521,7 @@ instance.web.ViewManager = instance.web.Widget.extend({ return x; } }); + this.ActionManager = parent; this.views = {}; this.flags = flags || {}; this.registry = instance.web.views; @@ -1004,7 +1005,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({ switch_mode: function (view_type, no_store, options) { var self = this; - return $.when(this._super.apply(this, arguments)).done(function () { + return this.alive($.when(this._super.apply(this, arguments))).done(function () { var controller = self.views[self.active_view].controller; self.$el.find('.oe_debug_view').html(QWeb.render('ViewManagerDebug', { view: controller, @@ -1252,6 +1253,7 @@ instance.web.View = instance.web.Widget.extend({ view_type: undefined, init: function(parent, dataset, view_id, options) { this._super(parent); + this.ViewManager = parent; this.dataset = dataset; this.view_id = view_id; this.set_default_options(options); @@ -1323,7 +1325,6 @@ instance.web.View = instance.web.Widget.extend({ } }; var context = new instance.web.CompoundContext(dataset.get_context(), action_data.context || {}); - var handler = function (action) { if (action && action.constructor == Object) { var ncontext = new instance.web.CompoundContext(context); @@ -1360,7 +1361,11 @@ instance.web.View = instance.web.Widget.extend({ } } args.push(context); - return dataset.call_button(action_data.name, args).then(handler); + return dataset.call_button(action_data.name, args).then(handler).then(function () { + if (self.ViewManager.ActionManager) { + self.ViewManager.ActionManager.__parentedParent.menu.do_reload_needaction(); + } + }); } else if (action_data.type=="action") { return this.rpc('/web/action/load', { action_id: action_data.name, diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 943326f5011..c27e16cbb79 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -650,7 +650,7 @@
  • - /web/binary/upload_attachment + /web/binary/upload_attachment @@ -1552,8 +1552,9 @@
      -
    • +
    diff --git a/addons/web/static/test/data.js b/addons/web/static/test/data.js new file mode 100644 index 00000000000..6f1e5184063 --- /dev/null +++ b/addons/web/static/test/data.js @@ -0,0 +1,76 @@ +openerp.testing.section('data.model.group_by', { + rpc: 'mock', + dependencies: ['web.data'], +}, function (test) { + var group_result = [{ + bar: 3, bar_count: 5, __context: {}, __domain: [['bar', '=', 3]], + }, { + bar: 5, bar_count: 3, __context: {}, __domain: [['bar', '=', 5]], + }, { + bar: 8, bar_count: 0, __context: {}, __domain: [['bar', '=', 8]], + }]; + test('basic', {asserts: 7}, function (instance, $fix, mock) { + var m = new instance.web.Model('foo'); + mock('foo:read_group', function (args, kwargs) { + deepEqual(kwargs.fields, ['bar'], + "should read grouping field"); + deepEqual(kwargs.groupby, ['bar'], + "should have single grouping field"); + return group_result; + }); + mock('/web/dataset/search_read', function (args) { + deepEqual(args.params.domain, [['bar', '=', 3]], + "should have domain matching that of group_by result"); + return {records: [ + {bar: 3, id: 1}, + {bar: 3, id: 2}, + {bar: 3, id: 4}, + {bar: 3, id: 8}, + {bar: 3, id: 16} + ], length: 5}; + }); + + return m.query().group_by('bar') + .then(function (groups) { + ok(groups, "should have data"); + equal(groups.length, 3, "should have three results"); + var first = groups[0]; + ok(first.attributes.has_children, "should have children"); + return first.query().all(); + }).done(function (first) { + equal(first.length, 5, "should have 5 records") + }); + }); + test('noleaf', {asserts: 5}, function (instance, $fix, mock) { + var m = new instance.web.Model('foo', {group_by_no_leaf: true}); + mock('foo:read_group', function (args, kwargs) { + deepEqual(kwargs.fields, ['bar'], + "should read grouping field"); + deepEqual(kwargs.groupby, ['bar'], + "should have single grouping field"); + + return group_result; + }); + return m.query().group_by('bar') + .then(function (groups) { + ok(groups, "should have data"); + equal(groups.length, 3, "should have three results"); + ok(!groups[0].attributes.has_children, + "should not have children because no_leaf"); + }) + }); + test('nogroup', {rpc: false}, function (instance, $f, mock) { + var m = new instance.web.Model('foo'); + strictEqual(m.query().group_by(), null, "should not group"); + }); + test('empty.noleaf', {asserts: 1}, function (instance, $f, mock) { + var m = new instance.web.Model('foo', {group_by_no_leaf: true}); + mock('foo:read_group', function (args, kwargs) { + return [{__context: [], __domain: []}]; + }); + return m.query().group_by().done(function (groups) { + strictEqual(groups.length, 1, + "should generate a single fake-ish group"); + }); + }); +}); diff --git a/addons/web/static/test/search.js b/addons/web/static/test/search.js index 5c02d1f16db..73d984506b2 100644 --- a/addons/web/static/test/search.js +++ b/addons/web/static/test/search.js @@ -614,6 +614,59 @@ openerp.testing.section('search.completions', { {relation: 'dummy.model'}, view); return f.complete("bob"); }); + test('Integer: invalid', {asserts: 1}, function (instance) { + var view = {inputs: []}; + var f = new instance.web.search.IntegerField( + {attrs: {string: "Dummy"}}, {}, view); + return f.complete("qux") + .done(function (completions) { + ok(!completions, "non-number => no completion"); + }); + }); + test('Integer: non-zero', {asserts: 5}, function (instance) { + var view = {inputs: []}; + var f = new instance.web.search.IntegerField( + {attrs: {string: "Dummy"}}, {}, view); + return f.complete("-2") + .done(function (completions) { + equal(completions.length, 1, "number fields provide 1 completion only"); + var facet = new instance.web.search.Facet(completions[0].facet); + equal(facet.get('category'), f.attrs.string); + equal(facet.get('field'), f); + var value = facet.values.at(0); + equal(value.get('label'), "-2"); + equal(value.get('value'), -2); + }); + }); + test('Integer: zero', {asserts: 3}, function (instance) { + var view = {inputs: []}; + var f = new instance.web.search.IntegerField( + {attrs: {string: "Dummy"}}, {}, view); + return f.complete("0") + .done(function (completions) { + equal(completions.length, 1, "number fields provide 1 completion only"); + var facet = new instance.web.search.Facet(completions[0].facet); + var value = facet.values.at(0); + equal(value.get('label'), "0"); + equal(value.get('value'), 0); + }); + }); + test('Float: non-zero', {asserts: 5}, function (instance) { + var view = {inputs: []}; + var f = new instance.web.search.FloatField( + {attrs: {string: "Dummy"}}, {}, view); + return f.complete("42.37") + .done(function (completions) { + equal(completions.length, 1, "float fields provide 1 completion only"); + var facet = new instance.web.search.Facet(completions[0].facet); + equal(facet.get('category'), f.attrs.string); + equal(facet.get('field'), f); + var value = facet.values.at(0); + equal(value.get('label'), "42.37"); + equal(value.get('value'), 42.37); + }); + }); + }); openerp.testing.section('search.serialization', { dependencies: ['web.search'], @@ -1361,7 +1414,7 @@ openerp.testing.section('search.invisible', { }, ['', '', '', - ''].join()); + ''].join('')); return view.appendTo($fix) .then(function () { var done = $.Deferred(); @@ -1380,7 +1433,7 @@ openerp.testing.section('search.invisible', { '', '', '', - ''].join()); + ''].join('')); return view.appendTo($fix) .then(function () { var $fs = $fix.find('.oe_searchview_filters ul'); @@ -1400,6 +1453,26 @@ openerp.testing.section('search.invisible', { return done; }); }); + test('invisible-previous-sibling', {asserts: 3}, function (instance, $fix, mock) { + var view = makeView(instance, mock, {}, [ + '', + '', + '', + '', + '', + ''].join('')); + return view.appendTo($fix) + .done(function () { + // Select filter 3 + $fix.find('.oe_searchview_filters ul li:contains("filter 3")').click(); + equal(view.query.length, 1, "should have selected a filter"); + var facet = view.query.at(0); + strictEqual(facet.values.at(0).get('label'), "filter 3", + "should have correctly labelled the facet"); + deepEqual(view.build_search_data().contexts, [{test: 3}], + "should have built correct context"); + }); + }); // Invisible filter groups should not appear in the drawer // Group invisibility should be inherited by children test('group-invisibility', {asserts: 6}, function (instance, $fix, mock) { diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index 3c9a8a6fa9d..fdc2f947728 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -265,6 +265,12 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ //To parse Events we have to convert date Format var res_events = [], sidebar_items = {}; + var selection_label = {}; + if(this.fields[this.color_field].selection) { + _(this.fields[this.color_field].selection).each(function(value){ + selection_label[value[0]] = value[1]; + }); + } for (var e = 0; e < events.length; e++) { var evt = events[e]; if (!evt[this.date_start]) { @@ -274,6 +280,9 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ if (this.color_field) { var filter = evt[this.color_field]; if (filter) { + if(this.fields[this.color_field].selection) { + filter = selection_label[filter]; + } var filter_value = (typeof filter === 'object') ? filter[0] : filter; if (typeof(fn_filter) === 'function' && !fn_filter(filter_value)) { continue; @@ -339,9 +348,13 @@ instance.web_calendar.CalendarView = instance.web.View.extend({ }, get_event_data: function(event_obj) { var data = { - name: event_obj.text + name: event_obj.text || scheduler.locale.labels.new_event }; - data[this.date_start] = instance.web.datetime_to_str(event_obj.start_date); + if (this.fields[this.date_start].type == 'date') { + data[this.date_start] = instance.web.date_to_str(event_obj.start_date) + }else { + data[this.date_start] = instance.web.datetime_to_str(event_obj.start_date) + } if (this.date_stop) { data[this.date_stop] = instance.web.datetime_to_str(event_obj.end_date); } diff --git a/addons/web_diagram/controllers/main.py b/addons/web_diagram/controllers/main.py index c598a7e4652..3f3c1065504 100644 --- a/addons/web_diagram/controllers/main.py +++ b/addons/web_diagram/controllers/main.py @@ -1,6 +1,6 @@ import openerp -class DiagramView(openerp.addons.web.controllers.main.View): +class DiagramView(openerp.addons.web.http.Controller): _cp_path = "/web_diagram/diagram" @openerp.addons.web.http.jsonrequest diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 7feb371754c..9397c89de41 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -1,660 +1,531 @@ @charset "utf-8"; .openerp .oe_kanban_view { background: white; - height: inherit; -} -.openerp .oe_kanban_view .oe_view_nocontent { - position: relative; - z-index: 1; - max-width: none; - height: 100%; -} -.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content { - margin-left: 90px; - margin-top: 5px; - max-width: 700px; -} -.openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_bg { - background: #eeeeee; - opacity: 0.7; - position: absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index: -1; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_dummy_cell { - background: url(/web/static/src/img/form_sheetbg.png); - width: 100%; -} -.openerp .oe_kanban_view .oe_kanban_group_length { - text-align: center; - display: none; -} -.openerp .oe_kanban_view .oe_kanban_group_length .oe_tag { - position: relative; - top: 8px; - font-weight: bold; -} -.openerp .oe_kanban_view .ui-sortable-placeholder { - border: 1px solid rgba(0, 0, 0, 0.1); - visibility: visible !important; -} -.openerp .oe_kanban_view .ui-sortable-helper { - -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); - -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); - -box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); - -moz-transform: rotate(3deg); - -webkit-transform: rotate(3deg); - -o-transform: rotate(3deg); - -ms-transform: rotate(3deg); - -webkit-transition: -webkit-transform 100ms linear; - -moz-transition: -moz-transform 100ms linear; - transition: transform 100ms linear; -} -.openerp .oe_kanban_view .oe_kanban_left { - float: left; -} -.openerp .oe_kanban_view .oe_kanban_right { - float: right; -} -.openerp .oe_kanban_view .oe_kanban_clear { - clear: both; -} -.openerp .oe_kanban_view .oe_kanban_content { - word-wrap: break-word; -} -.openerp .oe_kanban_view .oe_kanban_content .oe_star_on, .openerp .oe_kanban_view .oe_kanban_content .oe_star_off { - color: #cccccc; - text-shadow: 0 0 2px black; - vertical-align: top; - position: relative; - top: -5px; -} -.openerp .oe_kanban_view .oe_kanban_content .oe_star_on:hover, .openerp .oe_kanban_view .oe_kanban_content .oe_star_off:hover { - text-decoration: none; -} -.openerp .oe_kanban_view .oe_kanban_content .oe_star_on { - color: gold; -} -.openerp .oe_kanban_view .oe_kanban_content div:first-child { - margin-right: 16px; -} -.openerp .oe_kanban_view .oe_kanban_button_new { - color: white; - background: #dc5f59; -} -.openerp .oe_kanban_view .oe_kanban_groups { - height: inherit; -} -.openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_groups { - width: 100%; -} -.openerp .oe_kanban_view.oe_kanban_grouped_by_m2o .oe_kanban_group_title { - cursor: move; -} -.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_kanban { - float: right; -} -.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_kanban > span { - visibility: hidden; -} -.openerp .oe_kanban_view .oe_kanban_header:hover .oe_dropdown_kanban > span { - visibility: visible; -} -.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_menu { - font-weight: normal; - font-size: 13px; -} -.openerp .oe_kanban_view .oe_kanban_group_title { - position: relative; - font-size: 16px; - font-weight: bold; - color: #333333; - text-shadow: 0 1px 0 white; - margin-right: 30px; - width: 200px; -} -.openerp .oe_kanban_view .oe_kanban_group_title .oe_kanban_group_title_text { - margin-right: 4px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -.openerp .oe_kanban_view .oe_fold_column .oe_kanban_group_length { - position: absolute; - top: -1px; - right: -14px; - float: right; - display: block; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header { - width: 185px; - min-width: 185px; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column.oe_kanban_group_folded, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header.oe_kanban_group_folded { - width: auto; - min-width: 30px; -} -.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header { - vertical-align: top; - padding: 5px 5px 5px 4px; -} -.openerp .oe_kanban_view .oe_kanban_column ul, .openerp .oe_kanban_view .oe_kanban_column li, .openerp .oe_kanban_view .oe_kanban_group_header ul, .openerp .oe_kanban_view .oe_kanban_group_header li { - margin: 0; - padding: 0; - list-style-type: none; -} -.openerp .oe_kanban_view .oe_kanban_group_header.oe_kanban_no_group { - padding: 0px; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header { - background: #f0eeee; - border-left: 1px solid #f0f8f8; - border-right: 1px solid #b9b9b9; -} -.openerp .oe_kanban_view .oe_form .oe_kanban_column { - padding: 0px; - background: white; -} -.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_column_cards { - height: 100%; -} -.openerp .oe_kanban_view .oe_kanban_aggregates { - padding: 0; - margin: 0px; -} -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add { - display: none; -} -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length { - display: block; -} -.openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban { - left: -5px; -} -.openerp .oe_kanban_view .oe_kanban_group_title_undefined { - color: #666666; -} -.openerp .oe_kanban_view .oe_kanban_group_title_vertical { - writing-mode: tb-rl; - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -o-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); - width: 30px; - font-size: 24px; - white-space: nowrap; - display: none; - position: relative; - opacity: 0.75; - top: 26px; -} -.openerp .oe_kanban_view .oe_kanban_add, .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { - margin-left: 4px; - cursor: pointer; - position: relative; -} -.openerp .oe_kanban_view .oe_kanban_add { - top: -8px; - z-index: 2; -} -.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { - top: -2px; - height: 14px; -} -.openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle { - cursor: pointer; - display: inline-block; -} -.openerp .oe_kanban_view .oe_kanban_add { - float: right; -} -.openerp .oe_kanban_view .oe_kanban_quick_create_buttons { - margin: 4px 0; -} -.openerp .oe_kanban_view .oe_kanban_no_group .oe_kanban_quick_create { - width: 185px; - padding: 10px; -} -.openerp .oe_kanban_view .oe_kanban_quick_create { - z-index: 2; -} -.openerp .oe_kanban_view .oe_kanban_quick_create input { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - outline: none; - border: 1px solid transparent; - display: block; - margin-bottom: 8px; - font-size: 13px; - width: 100%; - -moz-box-shadow: none; - -webkit-box-shadow: none; - -box-shadow: none; -} -.openerp .oe_kanban_view .oe_kanban_quick_create input:focus { - border: 1px solid #a6a6fe; - -moz-box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; - -webkit-box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; - -box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; -} -.openerp .oe_kanban_view .oe_kanban_vignette { - padding: 8px; - min-height: 100px; -} -.openerp .oe_kanban_view .oe_kanban_image { - display: inline-block; - vertical-align: top; - width: 64px; - height: 64px; - text-align: center; - overflow: hidden; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); - -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); -} -.openerp .oe_kanban_view .oe_kanban_details { - display: inline-block; - vertical-align: top; - width: 240px; - font-size: 13px; - padding: 0 5px; - color: #4c4c4c; -} -.openerp .oe_kanban_view .oe_kanban_details h4 { - margin: 0 0 4px 0; -} -.openerp .oe_kanban_view .oe_kanban_details .oe_tag { - display: inline-block; - margin: 0 2px 2px 0; -} -.openerp .oe_kanban_view .oe_kanban_record { - position: relative; - display: block; - min-height: 20px; - margin: 0; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} -.openerp .oe_kanban_view .oe_kanban_record:last-child { - margin-bottom: 0; -} -.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_title { - font-weight: bold; - margin: 2px 4px; -} -.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias { - margin: 0px 0 8px 0; -} -.openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias .oe_e { - font-size: 30px; - line-height: 6px; - vertical-align: top; - margin-right: 3px; - color: white; - text-shadow: 0px 0px 2px black; - float: left; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_record { - margin-bottom: 4px; -} -.openerp .oe_kanban_view .oe_kanban_avatar_smallbox { - height: 40px; - width: 40px; - border: 1px solid; - border-color: #e5e5e5 #dbdbdb #d2d2d2; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -} -.openerp .oe_kanban_view .oe_kanban_box { - background: white; - border: 2px solid #cccccc; - border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - margin-bottom: 5px; -} -.openerp .oe_kanban_view .oe_kanban_box_header { - border-bottom: 1px solid #cccccc; -} -.openerp .oe_kanban_view .oe_kanban_title { - font-size: 95%; - font-weight: bold; - padding: 0 4px 0 4px; -} -.openerp .oe_kanban_view .oe_kanban_small { - font-size: 80%; - font-weight: normal; -} -.openerp .oe_kanban_view .oe_kanban_show_more { - clear: both; - text-align: center; -} -.openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_show_more .oe_button { - width: 100%; -} -.openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record { - display: inline-block; - padding: 2px; - vertical-align: top; - box-sizing: border-box; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; -} -.openerp .oe_kanban_view .oe_kanban_action_button { - height: 22px; - margin: 0; -} -.openerp .oe_kanban_view .oe_kanban_action_a { - text-decoration: none; -} -.openerp .oe_kanban_view .oe_kanban_action_a:hover { - text-decoration: none; -} -.openerp .oe_kanban_view .oe_kanban_table { - width: 100%; - border: none; - border-collapse: collapse; - margin: 0; - padding: 0; -} -.openerp .oe_kanban_view .oe_kanban_table tr td { - padding: 0; -} -.openerp .oe_kanban_view .oe_kanban_table tr td.oe_kanban_title { - padding: 2px; -} -.openerp .oe_kanban_view .oe_kanban_box_content { - padding: 4px; - font-size: 90%; -} -.openerp .oe_kanban_view .oe_kanban_button { - border: 1px solid #8ec1da; - background-color: #ddeef6; - border-radius: 3px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - color: black; - text-shadow: 0 1px white; - padding: 0 4px; - font-size: 85%; - margin: 1px; -} -.openerp .oe_kanban_view a.oe_kanban_button:hover, .openerp .oe_kanban_view .openerp button.oe_kanban_button:hover { - background-color: #eeddf6; -} -.openerp .oe_kanban_view .oe_kanban_buttons_set { - border-top: 1px dotted; - white-space: nowrap; - padding-top: 2px; - position: relative; - clear: both; -} -.openerp .oe_kanban_view .oe_kanban_buttons_set a { - padding: 2px; -} -.openerp .oe_kanban_view .oe_kanban_box_show_onclick { - display: none; -} -.openerp .oe_kanban_view .oe_kanban_draghandle { - cursor: move; -} -.openerp .oe_kanban_view .oe_kanban_color_border { - border-color: #cccccc; -} -.openerp .oe_kanban_view .oe_kanban_color_border { - border-color: #cccccc; -} -.openerp .oe_kanban_view .oe_kanban_tooltip ul, .openerp .oe_kanban_view ul.oe_kanban_tooltip { - padding: 0 0 4px 0; - margin: 5px 0 0 15px; - list-style: circle; -} -.openerp .oe_kanban_view .oe_kanban_highlight { - border-radius: 2px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - padding: 1px 5px; - margin: 1px 4px; - white-space: nowrap; - display: inline-block; - line-height: 1em; -} -.openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_kanban_quick_create { - margin-bottom: 4px; - position: relative; - display: block; - background: white; - border: 1px solid rgba(0, 0, 0, 0.16); - border-bottom-color: rgba(0, 0, 0, 0.3); - padding: 5px; - display: block; - -webkit-transition: -webkit-transform, -webkit-box-shadow, border 200ms linear; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} -.openerp .oe_kanban_view .oe_kanban_card:not(.ui-sortable-helper):hover, .openerp .oe_kanban_view .oe_kanban_quick_create:not(.ui-sortable-helper):hover { - border: 1px solid #7c7bad; - -moz-box-shadow: 0 0 4px #7c7bad; - -webkit-box-shadow: 0 0 4px #7c7bad; - -box-shadow: 0 0 4px #7c7bad; -} -.openerp .oe_kanban_view .oe_kanban_card:not(.ui-sortable-helper):hover .oe_dropdown_kanban > span, .openerp .oe_kanban_view .oe_kanban_quick_create:not(.ui-sortable-helper):hover .oe_dropdown_kanban > span { - visibility: visible; -} -.openerp .oe_kanban_view .oe_kanban_card h3, .openerp .oe_kanban_view .oe_kanban_quick_create h3 { - margin: 0 16px 0 0; - color: #4c4c4c; - text-decoration: none; -} -.openerp .oe_kanban_view .oe_kanban_card h3:hover, .openerp .oe_kanban_view .oe_kanban_quick_create h3:hover { - text-decoration: none; -} -.openerp .oe_kanban_view .oe_kanban_card .oe_dropdown_kanban .oe_kanban_project_times li, .openerp .oe_kanban_view .oe_kanban_quick_create .oe_dropdown_kanban .oe_kanban_project_times li { - float: left; -} -.openerp .oe_kanban_view .oe_kanban_star { - float: left; - position: inline-block; - margin: 0 4px 0 0; -} -.openerp .oe_kanban_view .oe_kanban_avatar { - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); -} -.openerp .oe_kanban_view .oe_kanban_footer_left { - margin-top: 2px; -} -.openerp .oe_kanban_view .oe_kanban_footer_left > span { - margin-top: 2px; - display: inline-block; - background: #e6e6e6; - border: 1px solid #b9b9b9; - color: #666666; - padding: 0 2px; - line-height: 16px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; -} -.openerp .oe_kanban_view .oe_kanban_footer_left > span .oe_e { - line-height: 12px; - font-size: 22px; -} -.openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags { - margin-right: 0; -} -.openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags .oe_tag { - display: inline-block; - padding: 0 2px; - line-height: 14px; -} -.openerp .oe_kanban_view .oe_kanban_footer_left .oe_kanban_mail_new { - line-height: 18px; - background-color: #8a89ba; - color: white; - font-weight: bold; - position: relative; - top: -1px; -} -.openerp .oe_kanban_view .oe_kanban_bottom_right { - float: right; - position: relative; - top: 2px; -} -.openerp .oe_kanban_view .oe_kanban_status { - position: relative; - top: 4px; - display: inline-block; - height: 12px; - width: 12px; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - border-radius: 6px; - background-position: center center; - background-image: -webkit-radial-gradient(circle, #eeeeee 0%, #cccccc 40%, #bbbbbb 100%); - background-image: -moz-radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); - background-image: -ms-radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); - background-image: radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); -} -.openerp .oe_kanban_view .oe_kanban_status_green { - background: green; - background-position: center center; - background-image: -webkit-radial-gradient(circle, #55dd55 0%, #44aa44 40%, #339933 100%); - background-image: -moz-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); - background-image: -ms-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); - background-image: radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); -} -.openerp .oe_kanban_view .oe_kanban_status_red { - background: red; - background-position: center center; - background-image: -webkit-radial-gradient(circle, #ee7777 0%, #cc3333 40%, #bb0808 100%); - background-image: -moz-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); - background-image: -ms-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); - background-image: radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); -} -.openerp .oe_kanban_view .oe_kanban_text_red { - color: #a61300; - font-weight: bold; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; -} -.openerp .oe_kanban_view .oe_kanban_ellipsis { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} -.openerp .oe_kanban_view .oe_dropdown_kanban { - float: right; - cursor: pointer; - margin-top: -6px; -} -.openerp .oe_kanban_view .oe_dropdown_kanban:hover { - text-decoration: none; -} -.openerp .oe_kanban_view .oe_dropdown_kanban .oe_dropdown_menu { - left: 0; - top: 28px; - min-width: 160px; - padding: 2px; -} -.openerp .oe_kanban_view .oe_dropdown_kanban .oe_dropdown_menu > li { - padding: 3px; -} -.openerp .oe_kanban_view .oe_dropdown_kanban.oe_opened > span { - visibility: visible; -} -.openerp .oe_kanban_view .oe_dropdown_kanban > span { - visibility: hidden; -} -.openerp .oe_kanban_view .oe_kanban_colorpicker { - white-space: nowrap; -} -.openerp .oe_kanban_view .oe_kanban_colorpicker li { - float: left; - margin: 0; - padding: 0; -} -.openerp .oe_kanban_view .oe_kanban_colorpicker li a { - display: inline-block; - width: 16px; - height: 16px; - border: 1px solid white; -} -.openerp .oe_kanban_view .oe_kanban_colorpicker li a:hover { - border: 1px solid gray !important; -} -.openerp .oe_kanban_view .oe_kanban_colorpicker li:first-child a { - border: 1px solid #cccccc; -} -.openerp .oe_kanban_view .oe_kanban_color_0 { - background-color: white; - color: #5a5a5a; -} -.openerp .oe_kanban_view .oe_kanban_color_1 { - background-color: #cccccc; - color: #424242; -} -.openerp .oe_kanban_view .oe_kanban_color_2 { - background-color: #ffc7c7; - color: #7a3737; -} -.openerp .oe_kanban_view .oe_kanban_color_3 { - background-color: #fff1c7; - color: #756832; -} -.openerp .oe_kanban_view .oe_kanban_color_4 { - background-color: #e3ffc7; - color: #5d6937; -} -.openerp .oe_kanban_view .oe_kanban_color_5 { - background-color: #c7ffd5; - color: #1a7759; -} -.openerp .oe_kanban_view .oe_kanban_color_6 { - background-color: #c7ffff; - color: #1a5d83; -} -.openerp .oe_kanban_view .oe_kanban_color_7 { - background-color: #c7d5ff; - color: #3b3e75; -} -.openerp .oe_kanban_view .oe_kanban_color_8 { - background-color: #e3c7ff; - color: #4c3668; -} -.openerp .oe_kanban_view .oe_kanban_color_9 { - background-color: #ffc7f1; - color: #6d2c70; -} + height: inherit; } + .openerp .oe_kanban_view .oe_view_nocontent { + position: relative; + z-index: 1; + max-width: none; + height: 100%; } + .openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_content { + margin-left: 90px; + margin-top: 5px; + max-width: 700px; } + .openerp .oe_kanban_view .oe_view_nocontent .oe_view_nocontent_bg { + background: #eeeeee; + opacity: 0.7; + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: -1; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_dummy_cell { + background: url(/web/static/src/img/form_sheetbg.png); + width: 100%; } + .openerp .oe_kanban_view .oe_kanban_group_length { + text-align: center; + display: none; } + .openerp .oe_kanban_view .oe_kanban_group_length .oe_tag { + position: relative; + top: 8px; + font-weight: bold; } + .openerp .oe_kanban_view .oe_kanban_header:hover .oe_kanban_group_length { + display: none; } + .openerp .oe_kanban_view .ui-sortable-placeholder { + border: 1px solid rgba(0, 0, 0, 0.1); + visibility: visible !important; } + .openerp .oe_kanban_view .ui-sortable-helper { + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); + -box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3); + -moz-transform: rotate(3deg); + -webkit-transform: rotate(3deg); + -o-transform: rotate(3deg); + -ms-transform: rotate(3deg); + -webkit-transition: -webkit-transform 100ms linear; + -moz-transition: -moz-transform 100ms linear; + transition: transform 100ms linear; } + .openerp .oe_kanban_view .oe_kanban_left { + float: left; } + .openerp .oe_kanban_view .oe_kanban_right { + float: right; } + .openerp .oe_kanban_view .oe_kanban_clear { + clear: both; } + .openerp .oe_kanban_view .oe_kanban_content { + word-wrap: break-word; } + .openerp .oe_kanban_view .oe_kanban_content .oe_star_on, .openerp .oe_kanban_view .oe_kanban_content .oe_star_off { + color: #cccccc; + text-shadow: 0 0 2px black; + vertical-align: top; + position: relative; + top: -5px; } + .openerp .oe_kanban_view .oe_kanban_content .oe_star_on:hover, .openerp .oe_kanban_view .oe_kanban_content .oe_star_off:hover { + text-decoration: none; } + .openerp .oe_kanban_view .oe_kanban_content .oe_star_on { + color: gold; } + .openerp .oe_kanban_view .oe_kanban_content div:first-child { + margin-right: 16px; } + .openerp .oe_kanban_view .oe_kanban_button_new { + color: white; + background: #dc5f59; } + .openerp .oe_kanban_view .oe_kanban_groups { + height: inherit; } + .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_groups { + width: 100%; } + .openerp .oe_kanban_view.oe_kanban_grouped_by_m2o .oe_kanban_group_title { + cursor: move; } + .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_kanban { + float: right; } + .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_kanban > span { + visibility: hidden; } + .openerp .oe_kanban_view .oe_kanban_header:hover .oe_dropdown_kanban > span { + visibility: visible; } + .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_menu { + font-weight: normal; + font-size: 13px; } + .openerp .oe_kanban_view .oe_kanban_group_title { + position: relative; + font-size: 16px; + font-weight: bold; + color: #333333; + text-shadow: 0 1px 0 white; + margin-right: 30px; + width: 200px; } + .openerp .oe_kanban_view .oe_kanban_group_title .oe_kanban_group_title_text { + margin-right: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + .openerp .oe_kanban_view .oe_fold_column .oe_kanban_group_length { + position: absolute; + top: -1px; + right: -14px; + float: right; + display: block; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header { + width: 185px; + min-width: 185px; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column.oe_kanban_group_folded, .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header.oe_kanban_group_folded { + width: auto; + min-width: 30px; } + .openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header { + vertical-align: top; + padding: 5px 5px 5px 4px; } + .openerp .oe_kanban_view .oe_kanban_column ul, .openerp .oe_kanban_view .oe_kanban_column li, .openerp .oe_kanban_view .oe_kanban_group_header ul, .openerp .oe_kanban_view .oe_kanban_group_header li { + margin: 0; + padding: 0; + list-style-type: none; } + .openerp .oe_kanban_view .oe_kanban_group_header.oe_kanban_no_group { + padding: 0px; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_group_header { + background: #f0eeee; + border-left: 1px solid #f0f8f8; + border-right: 1px solid #b9b9b9; } + .openerp .oe_kanban_view .oe_form .oe_kanban_column { + padding: 0px; + background: white; } + .openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_column_cards { + height: 100%; } + .openerp .oe_kanban_view .oe_kanban_aggregates { + padding: 0; + margin: 0px; } + .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add { + display: none; } + .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title_vertical, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_length { + display: block; } + .openerp .oe_kanban_view .oe_kanban_group_folded .oe_dropdown_kanban { + left: -5px; } + .openerp .oe_kanban_view .oe_kanban_group_title_undefined { + color: #666666; } + .openerp .oe_kanban_view .oe_kanban_group_title_vertical { + writing-mode: tb-rl; + -webkit-transform: rotate(90deg); + -moz-transform: rotate(90deg); + -o-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); + width: 30px; + font-size: 24px; + white-space: nowrap; + display: none; + position: relative; + opacity: 0.75; + top: 26px; } + .openerp .oe_kanban_view .oe_kanban_add, .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { + margin-left: 4px; + cursor: pointer; + position: relative; } + .openerp .oe_kanban_view .oe_kanban_add { + top: -8px; + z-index: 2; } + .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle { + top: -2px; + height: 14px; } + .openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle { + cursor: pointer; + display: inline-block; } + .openerp .oe_kanban_view .oe_kanban_add { + float: right; } + .openerp .oe_kanban_view .oe_kanban_quick_create_buttons { + margin: 4px 0; } + .openerp .oe_kanban_view .oe_kanban_no_group .oe_kanban_quick_create { + width: 185px; + padding: 10px; } + .openerp .oe_kanban_view .oe_kanban_quick_create { + z-index: 2; } + .openerp .oe_kanban_view .oe_kanban_quick_create input { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + outline: none; + border: 1px solid transparent; + display: block; + margin-bottom: 8px; + font-size: 13px; + width: 100%; + -moz-box-shadow: none; + -webkit-box-shadow: none; + -box-shadow: none; } + .openerp .oe_kanban_view .oe_kanban_quick_create input:focus { + border: 1px solid #a6a6fe; + -moz-box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; + -webkit-box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; + -box-shadow: 0px 0px 7px rgba(0, 133, 255, 0.3) inset; } + .openerp .oe_kanban_view .oe_kanban_vignette { + padding: 8px; + min-height: 100px; } + .openerp .oe_kanban_view .oe_kanban_image { + display: inline-block; + vertical-align: top; + width: 64px; + height: 64px; + text-align: center; + overflow: hidden; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + -box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); } + .openerp .oe_kanban_view .oe_kanban_details { + display: inline-block; + vertical-align: top; + width: 240px; + font-size: 13px; + padding: 0 5px; + color: #4c4c4c; } + .openerp .oe_kanban_view .oe_kanban_details h4 { + margin: 0 0 4px 0; } + .openerp .oe_kanban_view .oe_kanban_details .oe_tag { + display: inline-block; + margin: 0 2px 2px 0; } + .openerp .oe_kanban_view .oe_kanban_record { + position: relative; + display: block; + min-height: 20px; + margin: 0; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } + .openerp .oe_kanban_view .oe_kanban_record:last-child { + margin-bottom: 0; } + .openerp .oe_kanban_view .oe_kanban_record .oe_kanban_title { + font-weight: bold; + margin: 2px 4px; } + .openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias { + margin: 0px 0 8px 0; } + .openerp .oe_kanban_view .oe_kanban_record .oe_kanban_alias .oe_e { + font-size: 30px; + line-height: 6px; + vertical-align: top; + margin-right: 3px; + color: white; + text-shadow: 0px 0px 2px black; + float: left; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_record { + margin-bottom: 4px; } + .openerp .oe_kanban_view .oe_kanban_avatar_smallbox { + height: 40px; + width: 40px; + border: 1px solid; + border-color: #e5e5e5 #dbdbdb #d2d2d2; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + .openerp .oe_kanban_view .oe_kanban_box { + background: white; + border: 2px solid #cccccc; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + margin-bottom: 5px; } + .openerp .oe_kanban_view .oe_kanban_box_header { + border-bottom: 1px solid #cccccc; } + .openerp .oe_kanban_view .oe_kanban_title { + font-size: 95%; + font-weight: bold; + padding: 0 4px 0 4px; } + .openerp .oe_kanban_view .oe_kanban_small { + font-size: 80%; + font-weight: normal; } + .openerp .oe_kanban_view .oe_kanban_show_more { + clear: both; + text-align: center; } + .openerp .oe_kanban_view.oe_kanban_grouped .oe_kanban_show_more .oe_button { + width: 100%; } + .openerp .oe_kanban_view.oe_kanban_ungrouped .oe_kanban_column .oe_kanban_record { + display: inline-block; + padding: 2px; + vertical-align: top; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; } + .openerp .oe_kanban_view .oe_kanban_action_button { + height: 22px; + margin: 0; } + .openerp .oe_kanban_view .oe_kanban_action_a { + text-decoration: none; } + .openerp .oe_kanban_view .oe_kanban_action_a:hover { + text-decoration: none; } + .openerp .oe_kanban_view .oe_kanban_table { + width: 100%; + border: none; + border-collapse: collapse; + margin: 0; + padding: 0; } + .openerp .oe_kanban_view .oe_kanban_table tr td { + padding: 0; } + .openerp .oe_kanban_view .oe_kanban_table tr td.oe_kanban_title { + padding: 2px; } + .openerp .oe_kanban_view .oe_kanban_box_content { + padding: 4px; + font-size: 90%; } + .openerp .oe_kanban_view .oe_kanban_button { + border: 1px solid #8ec1da; + background-color: #ddeef6; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: black; + text-shadow: 0 1px white; + padding: 0 4px; + font-size: 85%; + margin: 1px; } + .openerp .oe_kanban_view a.oe_kanban_button:hover, .openerp .oe_kanban_view .openerp button.oe_kanban_button:hover { + background-color: #eeddf6; } + .openerp .oe_kanban_view .oe_kanban_buttons_set { + border-top: 1px dotted; + white-space: nowrap; + padding-top: 2px; + position: relative; + clear: both; } + .openerp .oe_kanban_view .oe_kanban_buttons_set a { + padding: 2px; } + .openerp .oe_kanban_view .oe_kanban_box_show_onclick { + display: none; } + .openerp .oe_kanban_view .oe_kanban_draghandle { + cursor: move; } + .openerp .oe_kanban_view .oe_kanban_color_border { + border-color: #cccccc; } + .openerp .oe_kanban_view .oe_kanban_color_border { + border-color: #cccccc; } + .openerp .oe_kanban_view .oe_kanban_tooltip ul, .openerp .oe_kanban_view ul.oe_kanban_tooltip { + padding: 0 0 4px 0; + margin: 5px 0 0 15px; + list-style: circle; } + .openerp .oe_kanban_view .oe_kanban_highlight { + border-radius: 2px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + padding: 1px 5px; + margin: 1px 4px; + white-space: nowrap; + display: inline-block; + line-height: 1em; } + .openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_kanban_quick_create { + margin-bottom: 4px; + position: relative; + display: block; + background: white; + border: 1px solid rgba(0, 0, 0, 0.16); + border-bottom-color: rgba(0, 0, 0, 0.3); + padding: 5px; + display: block; + -webkit-transition: -webkit-transform, -webkit-box-shadow, border 200ms linear; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } + .openerp .oe_kanban_view .oe_kanban_card:not(.ui-sortable-helper):hover, .openerp .oe_kanban_view .oe_kanban_quick_create:not(.ui-sortable-helper):hover { + border: 1px solid #7c7bad; + -moz-box-shadow: 0 0 4px #7c7bad; + -webkit-box-shadow: 0 0 4px #7c7bad; + -box-shadow: 0 0 4px #7c7bad; } + .openerp .oe_kanban_view .oe_kanban_card:not(.ui-sortable-helper):hover .oe_dropdown_kanban > span, .openerp .oe_kanban_view .oe_kanban_quick_create:not(.ui-sortable-helper):hover .oe_dropdown_kanban > span { + visibility: visible; } + .openerp .oe_kanban_view .oe_kanban_card h3, .openerp .oe_kanban_view .oe_kanban_quick_create h3 { + margin: 0 16px 0 0; + color: #4c4c4c; + text-decoration: none; } + .openerp .oe_kanban_view .oe_kanban_card h3:hover, .openerp .oe_kanban_view .oe_kanban_quick_create h3:hover { + text-decoration: none; } + .openerp .oe_kanban_view .oe_kanban_card .oe_dropdown_kanban .oe_kanban_project_times li, .openerp .oe_kanban_view .oe_kanban_quick_create .oe_dropdown_kanban .oe_kanban_project_times li { + float: left; } + .openerp .oe_kanban_view .oe_kanban_star { + float: left; + position: inline-block; + margin: 0 4px 0 0; } + .openerp .oe_kanban_view .oe_kanban_avatar { + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } + .openerp .oe_kanban_view .oe_kanban_footer_left { + margin-top: 2px; } + .openerp .oe_kanban_view .oe_kanban_footer_left > span { + margin-top: 2px; + display: inline-block; + background: #e6e6e6; + border: 1px solid #b9b9b9; + color: #666666; + padding: 0 2px; + line-height: 16px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + border-radius: 3px; } + .openerp .oe_kanban_view .oe_kanban_footer_left > span .oe_e { + line-height: 12px; + font-size: 22px; } + .openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags { + margin-right: 0; } + .openerp .oe_kanban_view .oe_kanban_footer_left .oe_tags .oe_tag { + display: inline-block; + padding: 0 2px; + line-height: 14px; } + .openerp .oe_kanban_view .oe_kanban_footer_left .oe_kanban_mail_new { + line-height: 18px; + background-color: #8a89ba; + color: white; + font-weight: bold; + position: relative; + top: -1px; } + .openerp .oe_kanban_view .oe_kanban_bottom_right { + float: right; + position: relative; + top: 2px; } + .openerp .oe_kanban_view .oe_kanban_status { + position: relative; + top: 4px; + display: inline-block; + height: 12px; + width: 12px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + border-radius: 6px; + background-position: center center; + background-image: -webkit-radial-gradient(circle, #eeeeee 0%, #cccccc 40%, #bbbbbb 100%); + background-image: -moz-radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); + background-image: -ms-radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); + background-image: radial-gradient(#eeeeee 0%, #cccccc 40%, #bbbbbb 100%); } + .openerp .oe_kanban_view .oe_kanban_status_green { + background: green; + background-position: center center; + background-image: -webkit-radial-gradient(circle, #55dd55 0%, #44aa44 40%, #339933 100%); + background-image: -moz-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); + background-image: -ms-radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); + background-image: radial-gradient(#55dd55 0%, #44aa44 40%, #339933 100%); } + .openerp .oe_kanban_view .oe_kanban_status_red { + background: red; + background-position: center center; + background-image: -webkit-radial-gradient(circle, #ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: -moz-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: -ms-radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); + background-image: radial-gradient(#ee7777 0%, #cc3333 40%, #bb0808 100%); } + .openerp .oe_kanban_view .oe_kanban_text_red { + color: #a61300; + font-weight: bold; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } + .openerp .oe_kanban_view .oe_kanban_ellipsis { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .openerp .oe_kanban_view .oe_dropdown_kanban { + float: right; + cursor: pointer; + margin-top: -6px; } + .openerp .oe_kanban_view .oe_dropdown_kanban:hover { + text-decoration: none; } + .openerp .oe_kanban_view .oe_dropdown_kanban .oe_dropdown_menu { + left: 0; + top: 28px; + min-width: 160px; + padding: 2px; } + .openerp .oe_kanban_view .oe_dropdown_kanban .oe_dropdown_menu > li { + padding: 3px; } + .openerp .oe_kanban_view .oe_dropdown_kanban.oe_opened > span { + visibility: visible; } + .openerp .oe_kanban_view .oe_dropdown_kanban > span { + visibility: hidden; } + .openerp .oe_kanban_view .oe_kanban_colorpicker { + white-space: nowrap; } + .openerp .oe_kanban_view .oe_kanban_colorpicker li { + float: left; + margin: 0; + padding: 0; } + .openerp .oe_kanban_view .oe_kanban_colorpicker li a { + display: inline-block; + width: 16px; + height: 16px; + border: 1px solid white; } + .openerp .oe_kanban_view .oe_kanban_colorpicker li a:hover { + border: 1px solid gray !important; } + .openerp .oe_kanban_view .oe_kanban_colorpicker li:first-child a { + border: 1px solid #cccccc; } + .openerp .oe_kanban_view .oe_kanban_color_0 { + background-color: white; + color: #5a5a5a; } + .openerp .oe_kanban_view .oe_kanban_color_1 { + background-color: #cccccc; + color: #424242; } + .openerp .oe_kanban_view .oe_kanban_color_2 { + background-color: #ffc7c7; + color: #7a3737; } + .openerp .oe_kanban_view .oe_kanban_color_3 { + background-color: #fff1c7; + color: #756832; } + .openerp .oe_kanban_view .oe_kanban_color_4 { + background-color: #e3ffc7; + color: #5d6937; } + .openerp .oe_kanban_view .oe_kanban_color_5 { + background-color: #c7ffd5; + color: #1a7759; } + .openerp .oe_kanban_view .oe_kanban_color_6 { + background-color: #c7ffff; + color: #1a5d83; } + .openerp .oe_kanban_view .oe_kanban_color_7 { + background-color: #c7d5ff; + color: #3b3e75; } + .openerp .oe_kanban_view .oe_kanban_color_8 { + background-color: #e3c7ff; + color: #4c3668; } + .openerp .oe_kanban_view .oe_kanban_color_9 { + background-color: #ffc7f1; + color: #6d2c70; } .openerp .oe_form .oe_kanban_view .oe_kanban_column, .openerp .oe_form .oe_kanban_view .oe_kanban_group_header { padding: 0px; - background: white; -} + background: white; } .openerp .oe_popup_form .oe_kanban_buttons .oe_highlight { color: #404040; - background: none; -} + background: none; } .openerp .oe_popup_form .oe_kanban_buttons button.oe_highlight { background-color: #efefef; background-image: -webkit-gradient(linear, left top, left bottom, from(#efefef), to(#d8d8d8)); @@ -665,8 +536,7 @@ background-image: linear-gradient(to bottom, #efefef, #d8d8d8); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -} + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; } .openerp .oe_popup_form .oe_kanban_buttons button.oe_highlight:active { background-color: #e3e3e3; background-image: -webkit-gradient(linear, left top, left bottom, from(#e3e3e3), to(#f6f6f6)); @@ -677,8 +547,7 @@ background-image: linear-gradient(to bottom, #e3e3e3, #f6f6f6); -moz-box-shadow: none; -webkit-box-shadow: none; - -box-shadow: none; -} + -box-shadow: none; } .openerp .oe_popup_form .oe_kanban_buttons button.oe_highlight:hover { background-color: #f6f6f6; background-image: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#e3e3e3)); @@ -689,32 +558,23 @@ background-image: linear-gradient(to bottom, #f6f6f6, #e3e3e3); -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; - -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; -} + -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(255, 255, 255, 0.8) inset; } .openerp_ie .oe_kanban_view .oe_kanban_group_header .oe_kanban_group_title_vertical { - display: none !important; -} + display: none !important; } .openerp_ie .oe_kanban_view .oe_kanban_group_header.oe_kanban_group_folded .oe_kanban_group_title_vertical { - display: inline-block !important; -} + display: inline-block !important; } .openerp_ie .oe_kanban_view .oe_kanban_group_title_vertical { -ms-writing-mode: lr-tb !important; background: #f0eeee; - top: -5px !important; -} + top: -5px !important; } .openerp_ie .oe_kanban_view.oe_kanban_grouped .oe_kanban_group_header { - height: 1%; -} + height: 1%; } @media print { .openerp .oe_kanban_groups button { - visibility: hidden; - } + visibility: hidden; } .openerp .oe_kanban_groups a[data-type=object], .openerp .oe_kanban_groups a[data-type=delete] { - visibility: hidden; - } + visibility: hidden; } .openerp .oe_kanban_view .oe_kanban_group_title { - text-shadow: none !important; - } -} + text-shadow: none !important; } } diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 2752cecd294..b97eb27315d 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -80,6 +80,8 @@ position: relative top: +8px font-weight: bold + .oe_kanban_header:hover .oe_kanban_group_length + display: none .ui-sortable-placeholder border: 1px solid rgba(0,0,0,0.1) visibility: visible !important diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index b02f8d12151..534d78c2801 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -261,10 +261,13 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ var remaining = groups.length - 1, groups_array = []; return $.when.apply(null, _.map(groups, function (group, index) { + var def = $.when([]); var dataset = new instance.web.DataSetSearch(self, self.dataset.model, new instance.web.CompoundContext(self.dataset.get_context(), group.model.context()), group.model.domain()); - return dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }) - .then(function (records) { + if (group.attributes.length >= 1) { + def = dataset.read_slice(self.fields_keys.concat(['__last_update']), { 'limit': self.limit }); + } + return def.then(function(records) { self.nb_records += records.length; self.dataset.ids.push.apply(self.dataset.ids, dataset.ids); groups_array[index] = new instance.web_kanban.KanbanGroup(self, records, group, dataset); diff --git a/addons/web_view_editor/static/src/js/view_editor.js b/addons/web_view_editor/static/src/js/view_editor.js index a7906689cce..524c415d34a 100644 --- a/addons/web_view_editor/static/src/js/view_editor.js +++ b/addons/web_view_editor/static/src/js/view_editor.js @@ -15,7 +15,7 @@ instance.web.ViewManagerAction.include({ } evt.currentTarget.selectedIndex = 0; }else{ - return this._super.apply(this,arguments); + return this._super.apply(this,arguments); } } }); @@ -232,10 +232,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ return main_object; }, parse_xml: function(arch, view_id) { + //First element of att_list must be element tagname. main_object = { 'level': 0, 'id': this.xml_element_id +=1, - 'att_list': [], + 'att_list': ["view"], 'name': _.str.sprintf("", view_id), 'child_id': [] }; @@ -535,15 +536,22 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var field_dataset = new instance.web.DataSetSearch(this, this.model, null, null); parent_tr = self.get_object_by_id(parseInt($(parent_tr).attr('id').replace(/[^0-9]+/g, '')), this.one_object['main_object'], [])[0].att_list[0]; _.each([tr, parent_tr],function(element) { - var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; + var value = _.has(_CHILDREN, element) ? element : _.str.include(html_tag, element)?"html_tag":false; property_to_check.push(value); }); field_dataset.call( 'fields_get', []).done(function(result) { var fields = _.keys(result); fields.push(" "),fields.sort(); - self.on_add_node(property_to_check, fields); + self.on_add_node(property_to_check, fields, self.inject_position(parent_tr,tr)); }); }, + inject_position : function(parent_tag,current_tag){ + if(parent_tag == "view") + return ['Inside']; + if(current_tag == "field") + return ['After','Before']; + return ['After','Before','Inside']; + }, do_node_edit: function(side) { var self = this; var result = self.get_object_by_id(this.one_object.clicked_tr_id, this.one_object['main_object'], []); @@ -637,12 +645,12 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ var children = _.filter(xml_arch.childNodes[0].childNodes, function (child) { return child.nodeType == 1; }); - arch.arch = _.detect(children, function(xml_child) { + var inherited_view = _.detect(children, function(xml_child) { var temp_obj = self.create_View_Node(xml_child), insert = _.intersection(_.flatten(temp_obj.att_list),_.uniq(check_list)); if (insert.length == _.uniq(check_list).length ) {return xml_child;} }); - xml_arch = QWeb.load_xml(arch.arch); + xml_arch = QWeb.load_xml(instance.web.xml_to_str(inherited_view)); } return self.do_save_xml(xml_arch.documentElement, obj[0].child_id[0],obj[0].child_id, move_direct, update_values,arch); }, @@ -941,11 +949,11 @@ instance.web_view_editor.ViewEditor = instance.web.Widget.extend({ }); return def.promise(); }, - on_add_node: function(properties, fields){ + on_add_node: function(properties, fields, position){ var self = this; var render_list = [{'name': 'node_type','selection': _.keys(_CHILDREN).sort(), 'value': 'field', 'string': 'Node Type','type': 'selection'}, {'name': 'field_value','selection': fields, 'value': false, 'string': '','type': 'selection'}, - {'name': 'position','selection': ['After','Before','Inside'], 'value': false, 'string': 'Position','type': 'selection'}]; + {'name': 'position','selection': position, 'value': false, 'string': 'Position','type': 'selection'}]; this.add_widget = []; this.add_node_dialog = new instance.web.Dialog(this,{ title: _t("Properties"), @@ -1186,7 +1194,7 @@ var _CHILDREN = { //e.g.:xyz 'td' : ['field'] }; // Generic html_tag list and can be added html tag in future. It's support above _CHILDREN dict's *html_tag* by default. -// For specific child node one has to define tag above and specify children tag in list. Like above xyz example. +// For specific child node one has to define tag above and specify children tag in list. Like above xyz example. var html_tag = ['div','h1','h2','h3','h4','h5','h6','td','tr']; var _ICONS = ['','STOCK_ABOUT', 'STOCK_ADD', 'STOCK_APPLY', 'STOCK_BOLD',