[MERGE] merge with trunk
bzr revid: nwi@openerp.com-20121220100314-98ka2wahul3lbu57
This commit is contained in:
commit
fb07bf7234
|
@ -679,9 +679,7 @@ class WebClient(openerpweb.Controller):
|
|||
|
||||
@openerpweb.jsonrequest
|
||||
def version_info(self, req):
|
||||
return {
|
||||
"version": openerp.release.version
|
||||
}
|
||||
return openerp.service.web_services.RPC_VERSION_1
|
||||
|
||||
class Proxy(openerpweb.Controller):
|
||||
_cp_path = '/web/proxy'
|
||||
|
|
|
@ -478,10 +478,9 @@ class Root(object):
|
|||
"""
|
||||
def __init__(self):
|
||||
self.addons = {}
|
||||
self.statics = {}
|
||||
|
||||
static_dirs = self._load_addons()
|
||||
app = werkzeug.wsgi.SharedDataMiddleware( self.dispatch, static_dirs)
|
||||
self.dispatch = DisableCacheMiddleware(app)
|
||||
self.load_addons()
|
||||
|
||||
# Setup http sessions
|
||||
path = session_path()
|
||||
|
@ -530,12 +529,10 @@ class Root(object):
|
|||
|
||||
return response(environ, start_response)
|
||||
|
||||
def _load_addons(self):
|
||||
"""
|
||||
Loads all addons at the specified addons path, returns a mapping of
|
||||
static URLs to the corresponding directories
|
||||
"""
|
||||
statics = {}
|
||||
def load_addons(self):
|
||||
""" Load all addons from addons patch containg static files and
|
||||
controllers and configure them. """
|
||||
|
||||
for addons_path in openerp.modules.module.ad_paths:
|
||||
for module in sorted(os.listdir(addons_path)):
|
||||
if module not in addons_module:
|
||||
|
@ -551,14 +548,17 @@ class Root(object):
|
|||
m = __import__(module)
|
||||
addons_module[module] = m
|
||||
addons_manifest[module] = manifest
|
||||
statics['/%s/static' % module] = path_static
|
||||
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
|
||||
if hasattr(o, '_cp_path'):
|
||||
controllers_path[o._cp_path] = o
|
||||
return statics
|
||||
|
||||
app = werkzeug.wsgi.SharedDataMiddleware(self.dispatch, self.statics)
|
||||
self.dispatch = DisableCacheMiddleware(app)
|
||||
|
||||
def find_handler(self, *l):
|
||||
"""
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
|
||||
"PO-Revision-Date: 2012-12-17 20:17+0000\n"
|
||||
"PO-Revision-Date: 2012-12-19 20:37+0000\n"
|
||||
"Last-Translator: Ahti Hinnov <sipelgas@gmail.com>\n"
|
||||
"Language-Team: Estonian <et@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-18 05:08+0000\n"
|
||||
"X-Generator: Launchpad (build 16372)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-20 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -147,7 +147,7 @@ msgstr "Fail"
|
|||
#: code:addons/web/controllers/main.py:842
|
||||
#, python-format
|
||||
msgid "You cannot leave any password empty."
|
||||
msgstr ""
|
||||
msgstr "Sa ei saa jätta ühtegi salasõna tühjaks."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -192,7 +192,7 @@ msgstr "Versioon"
|
|||
#: code:addons/web/static/src/xml/base.xml:564
|
||||
#, python-format
|
||||
msgid "Latest Modification Date:"
|
||||
msgstr ""
|
||||
msgstr "Viimase muudatuse kuupäev:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -213,7 +213,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:1583
|
||||
#, python-format
|
||||
msgid "Share with all users"
|
||||
msgstr ""
|
||||
msgstr "Jaga kõigi kasutajatega"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -242,7 +242,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/search.js:1299
|
||||
#, python-format
|
||||
msgid "not a valid number"
|
||||
msgstr ""
|
||||
msgstr "ei ole korrektne number"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -263,7 +263,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/view_list.js:1319
|
||||
#, python-format
|
||||
msgid "Undefined"
|
||||
msgstr ""
|
||||
msgstr "Määramata"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -277,7 +277,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/coresetup.js:598
|
||||
#, python-format
|
||||
msgid "about a month ago"
|
||||
msgstr ""
|
||||
msgstr "umbes kuu eest"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -298,7 +298,7 @@ msgstr "Nupu tüüp:"
|
|||
#: code:addons/web/static/src/xml/base.xml:419
|
||||
#, python-format
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr ""
|
||||
msgstr "OpenERP SA Ettevõte"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -377,7 +377,7 @@ msgstr "Valik:"
|
|||
#: code:addons/web/static/src/js/view_form.js:869
|
||||
#, python-format
|
||||
msgid "The following fields are invalid:"
|
||||
msgstr ""
|
||||
msgstr "Järgnevad väljad on vigased:"
|
||||
|
||||
#. module: web
|
||||
#: code:addons/web/controllers/main.py:863
|
||||
|
@ -390,7 +390,7 @@ msgstr "Keeled"
|
|||
#: code:addons/web/static/src/xml/base.xml:1245
|
||||
#, python-format
|
||||
msgid "...Upload in progress..."
|
||||
msgstr ""
|
||||
msgstr "...Toimub üleslaadimine..."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -447,7 +447,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:413
|
||||
#, python-format
|
||||
msgid "Activate the developer mode"
|
||||
msgstr ""
|
||||
msgstr "Aktiveeri arendusreziim"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -468,7 +468,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/view_list.js:684
|
||||
#, python-format
|
||||
msgid "You must select at least one record."
|
||||
msgstr ""
|
||||
msgstr "Sa pead valima vähemalt ühe kirje."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -489,7 +489,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:956
|
||||
#, python-format
|
||||
msgid "Relation:"
|
||||
msgstr ""
|
||||
msgstr "Seos:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -503,7 +503,7 @@ msgstr "vähe kui minuti eest"
|
|||
#: code:addons/web/static/src/xml/base.xml:829
|
||||
#, python-format
|
||||
msgid "Condition:"
|
||||
msgstr ""
|
||||
msgstr "Seisukord:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -524,7 +524,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/chrome.js:549
|
||||
#, python-format
|
||||
msgid "Restored"
|
||||
msgstr ""
|
||||
msgstr "Taastatud"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -559,7 +559,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/search.js:1963
|
||||
#, python-format
|
||||
msgid "is not"
|
||||
msgstr ""
|
||||
msgstr "ei ole"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -587,7 +587,7 @@ msgstr "UTF-8"
|
|||
#: code:addons/web/static/src/xml/base.xml:421
|
||||
#, python-format
|
||||
msgid "For more information visit"
|
||||
msgstr ""
|
||||
msgstr "Rohkema info saamiseks külastage"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -601,7 +601,7 @@ msgstr "Lisa kogu info..."
|
|||
#: code:addons/web/static/src/xml/base.xml:1658
|
||||
#, python-format
|
||||
msgid "Export Formats"
|
||||
msgstr ""
|
||||
msgstr "Ekspordi formaadid"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -666,7 +666,7 @@ msgstr "Toimingu ID:"
|
|||
#: code:addons/web/static/src/xml/base.xml:453
|
||||
#, python-format
|
||||
msgid "Your user's preference timezone does not match your browser timezone:"
|
||||
msgstr ""
|
||||
msgstr "Sinu kasutaja ajatvöönd ei ühti brauseri ajatsooniga."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -751,7 +751,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/view_list.js:325
|
||||
#, python-format
|
||||
msgid "Unlimited"
|
||||
msgstr ""
|
||||
msgstr "Piiramatu"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -762,6 +762,9 @@ msgid ""
|
|||
"\n"
|
||||
"Are you sure you want to leave this page ?"
|
||||
msgstr ""
|
||||
"Hoiatus. Kirjet on muudetud ja su muudatused hüljatakse.\n"
|
||||
"\n"
|
||||
"Kas oled kindel, et soovid sellelt lehelt lahkuda?"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -789,7 +792,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:458
|
||||
#, python-format
|
||||
msgid "Browser's timezone"
|
||||
msgstr "Brauseri ajatsoon"
|
||||
msgstr "Brauseri ajavöönd"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -834,7 +837,7 @@ msgstr "OpenERP.com"
|
|||
#: code:addons/web/static/src/js/view_form.js:2316
|
||||
#, python-format
|
||||
msgid "Can't send email to invalid e-mail address"
|
||||
msgstr ""
|
||||
msgstr "Ei saa saata kirja vigasele e-posti aadressile"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -870,7 +873,7 @@ msgstr "Andmebaasi Hülgamine"
|
|||
#: code:addons/web/static/src/xml/base.xml:462
|
||||
#, python-format
|
||||
msgid "Click here to change your user's timezone."
|
||||
msgstr "Klõpsa siia, et vahetada oma kasutaja ajatsooni."
|
||||
msgstr "Klõpsa siia, et vahetada oma kasutaja ajavööndit."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -902,7 +905,7 @@ msgstr "Salvesta"
|
|||
#: code:addons/web/static/src/xml/base.xml:355
|
||||
#, python-format
|
||||
msgid "More"
|
||||
msgstr ""
|
||||
msgstr "Lisaks"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1039,7 +1042,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/view_form.js:4313
|
||||
#, python-format
|
||||
msgid "Open: "
|
||||
msgstr ""
|
||||
msgstr "Avatud "
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1093,7 +1096,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:1835
|
||||
#, python-format
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
msgstr "Loobu"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1108,7 +1111,7 @@ msgstr "Laadimine..."
|
|||
#: code:addons/web/static/src/xml/base.xml:561
|
||||
#, python-format
|
||||
msgid "Latest Modification by:"
|
||||
msgstr ""
|
||||
msgstr "Viimase muudatuse tegija:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1116,7 +1119,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/xml/base.xml:466
|
||||
#, python-format
|
||||
msgid "Timezone mismatch"
|
||||
msgstr ""
|
||||
msgstr "Ajavööndi ebakõla"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1137,7 +1140,7 @@ msgstr "%d / %d"
|
|||
#: code:addons/web/static/src/xml/base.xml:1757
|
||||
#, python-format
|
||||
msgid "2. Check your file format"
|
||||
msgstr ""
|
||||
msgstr "2. Kontrolli oma faili formaati"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1324,7 +1327,7 @@ msgstr "Salvesta kui..."
|
|||
#: code:addons/web/static/src/js/view_form.js:4971
|
||||
#, python-format
|
||||
msgid "Could not display the selected image."
|
||||
msgstr ""
|
||||
msgstr "Ei saa kuvada valitud pilti."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1790,7 +1793,7 @@ msgstr "Domeen:"
|
|||
#: code:addons/web/static/src/xml/base.xml:812
|
||||
#, python-format
|
||||
msgid "Default:"
|
||||
msgstr ""
|
||||
msgstr "Vaikimisi:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1815,7 +1818,7 @@ msgstr "Andmebaas:"
|
|||
#: code:addons/web/static/src/xml/base.xml:1215
|
||||
#, python-format
|
||||
msgid "Uploading ..."
|
||||
msgstr ""
|
||||
msgstr "Üleslaadimine ..."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1829,14 +1832,14 @@ msgstr "Nimi:"
|
|||
#: code:addons/web/static/src/js/chrome.js:1027
|
||||
#, python-format
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
msgstr "Infot"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
#: code:addons/web/static/src/xml/base.xml:1406
|
||||
#, python-format
|
||||
msgid "Search Again"
|
||||
msgstr ""
|
||||
msgstr "Otsi Uuesti"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1997,14 +2000,14 @@ msgstr "Latin 1"
|
|||
#: code:addons/web/static/src/xml/base.xml:1727
|
||||
#, python-format
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
msgstr "Olgu"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
#: code:addons/web/static/src/js/views.js:1163
|
||||
#, python-format
|
||||
msgid "Uploading..."
|
||||
msgstr ""
|
||||
msgstr "Üleslaadimine..."
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -2071,7 +2074,7 @@ msgstr ""
|
|||
#: code:addons/web/static/src/js/view_form.js:3880
|
||||
#, python-format
|
||||
msgid "Add an item"
|
||||
msgstr "Lisa element"
|
||||
msgstr "Lisa kirje"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -2271,7 +2274,7 @@ msgstr "Tee koopia"
|
|||
#: code:addons/web/static/src/xml/base.xml:1366
|
||||
#, python-format
|
||||
msgid "Discard"
|
||||
msgstr ""
|
||||
msgstr "Unusta"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -2348,7 +2351,7 @@ msgstr "Filter"
|
|||
#: code:addons/web/static/src/xml/base.xml:928
|
||||
#, python-format
|
||||
msgid "Widget:"
|
||||
msgstr ""
|
||||
msgstr "Vidin:"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -2411,7 +2414,7 @@ msgstr "Andmebaas %s on eemaldatud"
|
|||
#: code:addons/web/static/src/xml/base.xml:456
|
||||
#, python-format
|
||||
msgid "User's timezone"
|
||||
msgstr "Kasutaja ajatsoon"
|
||||
msgstr "Kasutaja ajavöönd"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -2549,7 +2552,7 @@ msgstr "Tagasi sisenemiskuvale"
|
|||
#: code:addons/web/static/src/xml/base.xml:1429
|
||||
#, python-format
|
||||
msgid "Filters"
|
||||
msgstr ""
|
||||
msgstr "Filtrid"
|
||||
|
||||
#~ msgid "Translations"
|
||||
#~ msgstr "Tõlked"
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
|
||||
"PO-Revision-Date: 2012-12-13 19:55+0000\n"
|
||||
"PO-Revision-Date: 2012-12-19 19:44+0000\n"
|
||||
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.com>\n"
|
||||
"Language-Team: Italian <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-14 05:48+0000\n"
|
||||
"X-Generator: Launchpad (build 16369)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-20 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
@ -1685,7 +1685,7 @@ msgstr "Linee da saltare"
|
|||
#: code:addons/web/static/src/js/view_form.js:2831
|
||||
#, python-format
|
||||
msgid "Create \"<strong>%s</strong>\""
|
||||
msgstr "Creato \"<strong>%s</strong>\""
|
||||
msgstr "Crea \"<strong>%s</strong>\""
|
||||
|
||||
#. module: web
|
||||
#. openerp-web
|
||||
|
|
|
@ -6484,9 +6484,9 @@ jQuery.uaMatch = function( ua ) {
|
|||
ua = ua.toLowerCase();
|
||||
|
||||
var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
|
||||
/(msie) ([\w.]+)/.exec( ua ) ||
|
||||
(/(webkit)[ \/]([\w.]+)/.exec( ua )) ||
|
||||
(/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua )) ||
|
||||
(/(msie) ([\w.]+)/.exec( ua )) ||
|
||||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
|
||||
[];
|
||||
|
||||
|
|
|
@ -819,6 +819,16 @@
|
|||
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;
|
||||
|
@ -1182,6 +1192,7 @@
|
|||
padding-bottom: 16px;
|
||||
}
|
||||
.openerp a.oe_logo {
|
||||
position: relative;
|
||||
width: 220px;
|
||||
display: block;
|
||||
text-align: center;
|
||||
|
@ -1190,6 +1201,24 @@
|
|||
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;
|
||||
|
|
|
@ -696,6 +696,15 @@ $sheet-padding: 16px
|
|||
margin-top: 1px
|
||||
background-color: #f6cf3b
|
||||
// }}}
|
||||
// CrashManager {{{
|
||||
.oe_dialog_warning
|
||||
width: 100%
|
||||
p
|
||||
text-align: center
|
||||
.oe_dialog_icon
|
||||
padding: 5px
|
||||
width: 32px
|
||||
// }}}
|
||||
// Login {{{
|
||||
.oe_login
|
||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=)
|
||||
|
@ -958,12 +967,26 @@ $sheet-padding: 16px
|
|||
text-shadow: 0 1px 1px white
|
||||
padding-bottom: 16px
|
||||
a.oe_logo
|
||||
position: relative
|
||||
width: 220px
|
||||
display: block
|
||||
text-align: center
|
||||
img
|
||||
margin: 14px 0
|
||||
border: 0
|
||||
.oe_logo_edit
|
||||
margin: 14px 0
|
||||
position: absolute
|
||||
top: 1px
|
||||
padding: 4px
|
||||
width: 100%
|
||||
display: none
|
||||
text-align: center
|
||||
color: #eee
|
||||
background: rgba(37,37,37,0.9)
|
||||
@include box-sizing(border)
|
||||
&:hover .oe_logo_edit_admin
|
||||
display: block
|
||||
.oe_footer
|
||||
position: fixed
|
||||
bottom: 0
|
||||
|
|
|
@ -1,6 +1,12 @@
|
|||
/* This css contains the styling specific to the 'normal mode'. (as opposite to the embedded mode) */
|
||||
/* In embedded mode [1], this stylesheet won't be loaded. */
|
||||
|
||||
/* [1] The web client features an embedded mode in which the webclient */
|
||||
/* or a part of it can be started in any element of any webpage host. */
|
||||
|
||||
body {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
overflow-y: scroll;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -691,6 +691,7 @@ instance.web.Login = instance.web.Widget.extend({
|
|||
});
|
||||
instance.web.client_actions.add("login", "instance.web.Login");
|
||||
|
||||
|
||||
/**
|
||||
* Redirect to url by replacing window.location
|
||||
* If wait is true, sleep 1s and wait for the server i.e. after a restart.
|
||||
|
@ -804,6 +805,7 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
this.maximum_visible_links = 'auto'; // # of menu to show. 0 = do not crop, 'auto' = algo
|
||||
this.data = {data:{children:[]}};
|
||||
this.on("menu_loaded", this, function (menu_data) {
|
||||
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) {
|
||||
|
@ -811,6 +813,11 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
});
|
||||
}
|
||||
});
|
||||
var lazyreflow = _.debounce(this.reflow.bind(this), 200);
|
||||
instance.web.bus.on('resize', this, function() {
|
||||
self.$el.height(0);
|
||||
lazyreflow();
|
||||
});
|
||||
},
|
||||
start: function() {
|
||||
this._super.apply(this, arguments);
|
||||
|
@ -828,12 +835,6 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
this.data = {data: data};
|
||||
this.renderElement();
|
||||
this.limit_entries();
|
||||
// Hide toplevel item if there is only one
|
||||
var $toplevel = this.$("li");
|
||||
if($toplevel.length == 1) {
|
||||
$toplevel.hide();
|
||||
}
|
||||
this.$secondary_menus.html(QWeb.render("Menu.secondary", { widget : this }));
|
||||
this.$el.on('click', 'a[data-menu]', this.on_menu_click);
|
||||
// Hide second level submenus
|
||||
|
@ -855,23 +856,34 @@ instance.web.Menu = instance.web.Widget.extend({
|
|||
}
|
||||
});
|
||||
},
|
||||
limit_entries: function() {
|
||||
var maximum_visible_links = this.maximum_visible_links;
|
||||
if (maximum_visible_links === 'auto') {
|
||||
maximum_visible_links = this.auto_limit_entries();
|
||||
/**
|
||||
* Reflow the menu items and dock overflowing items into a "More" menu item.
|
||||
* Automatically called when 'menu_loaded' event is triggered and on window resizing.
|
||||
*/
|
||||
reflow: function() {
|
||||
var self = this;
|
||||
this.$el.height('auto').show();
|
||||
var $more_container = this.$('.oe_menu_more_container').hide();
|
||||
var $more = this.$('.oe_menu_more');
|
||||
$more.children('li').insertBefore($more_container);
|
||||
var $toplevel_items = this.$el.children('li').not($more_container).hide();
|
||||
$toplevel_items.each(function() {
|
||||
var remaining_space = self.$el.parent().width() - $more_container.outerWidth();
|
||||
self.$el.parent().children(':visible').each(function() {
|
||||
remaining_space -= $(this).outerWidth();
|
||||
});
|
||||
if ($(this).width() > remaining_space) {
|
||||
return false;
|
||||
}
|
||||
$(this).show();
|
||||
});
|
||||
$more.append($toplevel_items.filter(':hidden').show());
|
||||
$more_container.toggle(!!$more.children().length);
|
||||
// Hide toplevel item if there is only one
|
||||
var $toplevel = this.$el.children("li:visible");
|
||||
if ($toplevel.length === 1) {
|
||||
$toplevel.hide();
|
||||
}
|
||||
if (maximum_visible_links < this.data.data.children.length) {
|
||||
var $more = $(QWeb.render('Menu.more')),
|
||||
$index = this.$el.find('li').eq(maximum_visible_links - 1);
|
||||
$index.after($more);
|
||||
//$('.oe_topbar').append($more);
|
||||
$more.find('.oe_menu_more').append($index.next().nextAll());
|
||||
}
|
||||
},
|
||||
auto_limit_entries: function() {
|
||||
// TODO: auto detect overflow and bind window on resize
|
||||
var width = $(window).width();
|
||||
return Math.floor(width / 125);
|
||||
},
|
||||
/**
|
||||
* Opens a given menu by id, as if a user had browsed to that menu by hand
|
||||
|
@ -1118,6 +1130,9 @@ instance.web.Client = instance.web.Widget.extend({
|
|||
|
||||
instance.web.WebClient = instance.web.Client.extend({
|
||||
_template: 'WebClient',
|
||||
events: {
|
||||
'click .oe_logo_edit_admin': 'logo_edit'
|
||||
},
|
||||
init: function(parent) {
|
||||
this._super(parent);
|
||||
this._current_state = null;
|
||||
|
@ -1188,7 +1203,29 @@ instance.web.WebClient = instance.web.Client.extend({
|
|||
},
|
||||
update_logo: function() {
|
||||
var img = this.session.url('/web/binary/company_logo');
|
||||
this.$el.find('.oe_logo img').attr('src', '').attr('src', img);
|
||||
this.$('.oe_logo img').attr('src', '').attr('src', img);
|
||||
this.$('.oe_logo_edit').toggleClass('oe_logo_edit_admin', this.session.uid === 1);
|
||||
},
|
||||
logo_edit: function(ev) {
|
||||
var self = this;
|
||||
new instance.web.Model("res.users").get_func("read")(this.session.uid, ["company_id"]).then(function(res) {
|
||||
self.rpc("/web/action/load", { action_id: "base.action_res_company_form" }).done(function(result) {
|
||||
result.res_id = res['company_id'][0];
|
||||
result.target = "new";
|
||||
result.views = [[false, 'form']];
|
||||
result.flags = {
|
||||
action_buttons: true,
|
||||
};
|
||||
self.action_manager.do_action(result);
|
||||
var form = self.action_manager.dialog_widget.views.form.controller;
|
||||
form.on("on_button_cancel", self.action_manager.dialog, self.action_manager.dialog.close);
|
||||
form.on('record_saved', self, function() {
|
||||
self.action_manager.dialog.close();
|
||||
self.update_logo();
|
||||
});
|
||||
});
|
||||
});
|
||||
return false;
|
||||
},
|
||||
check_timezone: function() {
|
||||
var self = this;
|
||||
|
@ -1343,17 +1380,17 @@ instance.web.EmbeddedClient = instance.web.Client.extend({
|
|||
_template: 'EmbedClient',
|
||||
init: function(parent, origin, dbname, login, key, action_id, options) {
|
||||
this._super(parent, origin);
|
||||
|
||||
this.dbname = dbname;
|
||||
this.login = login;
|
||||
this.key = key;
|
||||
this.bind_credentials(dbname, login, key);
|
||||
this.action_id = action_id;
|
||||
this.options = options || {};
|
||||
},
|
||||
start: function() {
|
||||
var self = this;
|
||||
return $.when(this._super()).then(function() {
|
||||
return instance.session.session_authenticate(self.dbname, self.login, self.key, true).then(function() {
|
||||
return self.authenticate().then(function() {
|
||||
if (!self.action_id) {
|
||||
return;
|
||||
}
|
||||
return self.rpc("/web/action/load", { action_id: self.action_id }).done(function(result) {
|
||||
var action = result;
|
||||
action.flags = _.extend({
|
||||
|
@ -1364,11 +1401,30 @@ instance.web.EmbeddedClient = instance.web.Client.extend({
|
|||
//pager : false
|
||||
}, self.options, action.flags || {});
|
||||
|
||||
self.action_manager.do_action(action);
|
||||
self.do_action(action);
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
do_action: function(action) {
|
||||
return this.action_manager.do_action(action);
|
||||
},
|
||||
|
||||
authenticate: function() {
|
||||
var s = instance.session;
|
||||
if (s.session_is_valid() && s.db === this.dbname && s.login === this.login) {
|
||||
return $.when();
|
||||
}
|
||||
return instance.session.session_authenticate(this.dbname, this.login, this.key, true);
|
||||
},
|
||||
|
||||
bind_credentials: function(dbname, login, key) {
|
||||
this.dbname = dbname;
|
||||
this.login = login;
|
||||
this.key = key;
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
instance.web.embed = function (origin, dbname, login, key, action, options) {
|
||||
|
|
|
@ -30,6 +30,12 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess
|
|||
* Setup a sessionm
|
||||
*/
|
||||
session_bind: function(origin) {
|
||||
if (!_.isUndefined(this.origin)) {
|
||||
if (this.origin === origin) {
|
||||
return $.when();
|
||||
}
|
||||
throw new Error('Session already bound to ' + this.origin);
|
||||
}
|
||||
var self = this;
|
||||
this.setup(origin);
|
||||
instance.web.qweb.default_dict['_s'] = this.origin;
|
||||
|
@ -471,6 +477,11 @@ $.fn.openerpClass = function(additionalClass) {
|
|||
$(this).addClass('openerp ' + additionalClass);
|
||||
});
|
||||
};
|
||||
$.fn.openerpBounce = function() {
|
||||
return this.each(function() {
|
||||
$(this).css('box-sizing', 'content-box').effect('bounce', {distance: 18, times: 5}, 250);
|
||||
});
|
||||
};
|
||||
|
||||
/** Jquery extentions */
|
||||
$.Mutex = (function() {
|
||||
|
|
|
@ -206,16 +206,16 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
this.$el.find(".oe_form_group_row,.oe_form_field,label").on('click', function (e) {
|
||||
if(self.get("actual_mode") == "view") {
|
||||
var $button = self.options.$buttons.find(".oe_form_button_edit");
|
||||
$button.css('box-sizing', 'content-box').effect('bounce', {distance: 18, times: 5}, 150);
|
||||
$button.openerpBounce();
|
||||
e.stopPropagation();
|
||||
instance.web.bus.trigger('click', e);
|
||||
}
|
||||
});
|
||||
//bounce effect on red button when click on statusbar.
|
||||
this.$el.find(".oe_form_field_status:not(.oe_form_status_clickable)").on('click', function (e) {
|
||||
if((self.get("actual_mode") == "view")) {
|
||||
if((self.get("actual_mode") == "view")) {
|
||||
var $button = self.$el.find(".oe_highlight:not(.oe_form_invisible)").css({'float':'left','clear':'none'});
|
||||
$button.effect('bounce', {distance:18, times: 5}, 150);
|
||||
$button.openerpBounce();
|
||||
e.stopPropagation();
|
||||
}
|
||||
});
|
||||
|
@ -919,7 +919,7 @@ instance.web.FormView = instance.web.View.extend(instance.web.form.FieldManagerM
|
|||
this.do_update_pager();
|
||||
if (this.sidebar) {
|
||||
this.sidebar.do_attachement_update(this.dataset, this.datarecord.id);
|
||||
}
|
||||
}
|
||||
//openerp.log("The record has been created with id #" + this.datarecord.id);
|
||||
return $.when(this.reload()).then(function () {
|
||||
self.trigger('record_created', r);
|
||||
|
@ -2289,7 +2289,10 @@ instance.web.form.FieldChar = instance.web.form.AbstractField.extend(instance.we
|
|||
});
|
||||
|
||||
instance.web.form.FieldID = instance.web.form.FieldChar.extend({
|
||||
|
||||
process_modifiers: function () {
|
||||
this._super();
|
||||
this.set({ readonly: true });
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.form.FieldEmail = instance.web.form.FieldChar.extend({
|
||||
|
@ -2389,7 +2392,7 @@ instance.web.DateTimeWidget = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
this.$input = this.$el.find('input.oe_datepicker_master');
|
||||
this.$input_picker = this.$el.find('input.oe_datepicker_container');
|
||||
|
||||
|
||||
this.picker({
|
||||
onClose: this.on_picker_select,
|
||||
onSelect: this.on_picker_select,
|
||||
|
@ -5092,7 +5095,7 @@ instance.web.form.FieldMany2ManyBinaryMultiFiles = instance.web.form.AbstractFie
|
|||
_.each(datas, function (data) {
|
||||
data.no_unlink = true;
|
||||
data.url = self.session.url('/web/binary/saveas', {model: 'ir.attachment', field: 'datas', filename_field: 'datas_fname', id: data.id});
|
||||
|
||||
|
||||
_.each(self.get('value'), function (val, key) {
|
||||
if(val == data.id) {
|
||||
self.get('value')[key] = data;
|
||||
|
@ -5258,7 +5261,8 @@ instance.web.form.FieldStatus = instance.web.form.AbstractField.extend({
|
|||
if (this.field.type == "many2one") {
|
||||
var domain = [];
|
||||
if(!_.isEmpty(this.field.domain) || !_.isEmpty(this.node.attrs.domain)) {
|
||||
domain = new instance.web.CompoundDomain(['|'], self.build_domain(), [['id', '=', self.get('value')]]);
|
||||
var d = instance.web.pyeval.eval('domain', self.build_domain());
|
||||
domain = ['|', ['id', '=', self.get('value')]].concat(d);
|
||||
}
|
||||
var ds = new instance.web.DataSetSearch(this, this.field.relation, self.build_context(), domain);
|
||||
return ds.read_slice(['name'], {}).then(function (records) {
|
||||
|
|
|
@ -833,7 +833,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
|
|||
);
|
||||
var create_nocontent = this.$buttons;
|
||||
this.$el.find('.oe_view_nocontent').click(function() {
|
||||
create_nocontent.effect('bounce', {distance: 18, times: 5}, 150);
|
||||
create_nocontent.openerpBounce();
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
<t t-name="CrashManager.warning">
|
||||
<table cellspacing="0" cellpadding="0" border="0" class="oe_dialog_warning">
|
||||
<tr>
|
||||
<td><img t-att-src='_s + "/web/static/src/img/warning.png"' class="oe_dialog_icon"/></td>
|
||||
<td class="oe_dialog_icon"><img t-att-src='_s + "/web/static/src/img/warning.png"'/></td>
|
||||
<td>
|
||||
<p>
|
||||
<t t-js="d">
|
||||
|
@ -348,16 +348,14 @@
|
|||
<li t-foreach="widget.data.data.children" t-as="menu">
|
||||
<t t-call="Menu.link"/>
|
||||
</li>
|
||||
<li class="oe_menu_more_container" style="display: none;">
|
||||
<span class="oe_topbar_item oe_menu_more_link oe_dropdown_toggle oe_dropdown_arrow">
|
||||
More
|
||||
<ul class="oe_menu_more oe_dropdown_menu"/>
|
||||
</span>
|
||||
</li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="Menu.more">
|
||||
<li class="oe_menu_more_container">
|
||||
<span class="oe_topbar_item oe_menu_more_link oe_dropdown_toggle oe_dropdown_arrow">
|
||||
More
|
||||
<ul class="oe_menu_more oe_dropdown_menu"/>
|
||||
</span>
|
||||
</li>
|
||||
</t>
|
||||
<t t-name="Menu.secondary">
|
||||
<div t-foreach="widget.data.data.children" t-as="menu" style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu.id">
|
||||
<t t-foreach="menu.children" t-as="menu">
|
||||
|
@ -414,7 +412,7 @@
|
|||
<div class="oe_about">
|
||||
<a class="oe_activate_debug_mode oe_right" href="?debug" style="background-color: white; padding:2px 6px; border-radius: 10px;">Activate the developer mode</a>
|
||||
<img class="oe_logo" src="/web/static/src/img/logo2.png"/>
|
||||
<h3>Version <t t-esc="version_info.version"/></h3>
|
||||
<h3>Version <t t-esc="version_info.server_version"/></h3>
|
||||
|
||||
<div class="oe_bottom">
|
||||
<p>Copyright © 2004-TODAY OpenERP SA. All Rights Reserved.<br />
|
||||
|
@ -439,7 +437,10 @@
|
|||
<tr>
|
||||
<td class="oe_leftbar" valign="top">
|
||||
<t t-set="debug" t-value="__debug__ ? '&debug' : ''"/>
|
||||
<a class="oe_logo" t-attf-href="/?ts=#{Date.now()}#{debug}"><img t-att-src='widget.session.url("/web/binary/company_logo")'/></a>
|
||||
<a class="oe_logo" t-attf-href="/?ts=#{Date.now()}#{debug}">
|
||||
<span class="oe_logo_edit">Edit Company data</span>
|
||||
<img t-att-src='widget.session.url("/web/binary/company_logo")'/>
|
||||
</a>
|
||||
<div class="oe_secondary_menus_container"/>
|
||||
<div class="oe_footer">
|
||||
Powered by <a href="http://www.openerp.com" target="_blank"><span>OpenERP</span></a>
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
|
||||
"PO-Revision-Date: 2012-12-04 00:57+0000\n"
|
||||
"Last-Translator: OscarAlca <oscarolar@hotmail.com>\n"
|
||||
"PO-Revision-Date: 2012-12-19 14:45+0000\n"
|
||||
"Last-Translator: OscarAlca <oszckar@gmail.com>\n"
|
||||
"Language-Team: Spanish (Mexico) <es_MX@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-05 05:43+0000\n"
|
||||
"X-Generator: Launchpad (build 16335)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-20 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
|
||||
#. module: web_calendar
|
||||
#. openerp-web
|
||||
|
@ -43,7 +43,7 @@ msgstr "Guardar"
|
|||
#: code:addons/web_calendar/static/src/js/calendar.js:99
|
||||
#, python-format
|
||||
msgid "Calendar view has a 'date_delay' type != float"
|
||||
msgstr ""
|
||||
msgstr "La vista de calendario tiene un tipo 'date_delay' != Flotante"
|
||||
|
||||
#. module: web_calendar
|
||||
#. openerp-web
|
||||
|
|
|
@ -465,12 +465,12 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
|
|||
});
|
||||
} else {
|
||||
var pop = new instance.web.form.FormOpenPopup(this);
|
||||
var id_for_buggy_addons = this.dataset.ids[index]; // ids could be non numeric
|
||||
pop.show_element(this.dataset.model, id_for_buggy_addons, this.dataset.get_context(), {
|
||||
var id_from_dataset = this.dataset.ids[index]; // dhtmlx scheduler loses id's type
|
||||
pop.show_element(this.dataset.model, id_from_dataset, this.dataset.get_context(), {
|
||||
title: _t("Edit: ") + this.name
|
||||
});
|
||||
pop.on('write_completed', self, function(){
|
||||
self.reload_event(event_id);
|
||||
self.reload_event(id_from_dataset);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
|
|
@ -8,14 +8,14 @@ msgstr ""
|
|||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-11-30 18:13+0000\n"
|
||||
"PO-Revision-Date: 2012-12-07 15:34+0000\n"
|
||||
"Last-Translator: ccdos <ccdos@163.com>\n"
|
||||
"PO-Revision-Date: 2012-12-19 06:43+0000\n"
|
||||
"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-08 05:21+0000\n"
|
||||
"X-Generator: Launchpad (build 16341)\n"
|
||||
"X-Launchpad-Export-Date: 2012-12-20 04:59+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
|
||||
#. module: web_graph
|
||||
#. openerp-web
|
||||
|
@ -64,7 +64,7 @@ msgstr "饼状图"
|
|||
#: code:addons/web_graph/static/src/xml/web_graph.xml:28
|
||||
#, python-format
|
||||
msgid "Actions"
|
||||
msgstr "动作"
|
||||
msgstr "操作"
|
||||
|
||||
#. module: web_graph
|
||||
#. openerp-web
|
||||
|
@ -106,7 +106,7 @@ msgstr "隐藏"
|
|||
#: code:addons/web_graph/static/src/xml/web_graph.xml:3
|
||||
#, python-format
|
||||
msgid "Graph Options"
|
||||
msgstr "图形选择"
|
||||
msgstr "图表选项"
|
||||
|
||||
#. module: web_graph
|
||||
#. openerp-web
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
padding: 0px;
|
||||
background: white;
|
||||
}
|
||||
.openerp .oe_kanban_view .oe_kanban_column {
|
||||
.openerp .oe_kanban_view .oe_kanban_column, .openerp .oe_kanban_view .oe_kanban_column_cards {
|
||||
height: 100%;
|
||||
}
|
||||
.openerp .oe_kanban_view .oe_kanban_aggregates {
|
||||
|
@ -618,6 +618,18 @@
|
|||
-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_group_header .oe_kanban_group_title_vertical {
|
||||
display: none !important;
|
||||
}
|
||||
.openerp_ie .oe_kanban_group_header.oe_kanban_group_folded .oe_kanban_group_title_vertical {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.openerp_ie .oe_kanban_group_title_vertical {
|
||||
-ms-writing-mode: lr-tb !important;
|
||||
background: #f0eeee;
|
||||
top: -5px !important;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.openerp .oe_kanban_groups button {
|
||||
visibility: hidden;
|
||||
|
|
|
@ -136,7 +136,7 @@
|
|||
padding: 0px
|
||||
background: #ffffff
|
||||
|
||||
.oe_kanban_column
|
||||
.oe_kanban_column, .oe_kanban_column_cards
|
||||
height: 100%
|
||||
.oe_kanban_aggregates
|
||||
padding: 0
|
||||
|
@ -507,6 +507,17 @@
|
|||
@include vertical-gradient(#f6f6f6, #e3e3e3)
|
||||
@include box-shadow((0 1px 2px rgba(0, 0, 0, .1), 0 1px 1px rgba(255, 255, 255, .8) inset))
|
||||
|
||||
|
||||
.openerp_ie
|
||||
|
||||
.oe_kanban_group_header .oe_kanban_group_title_vertical
|
||||
display: none !important
|
||||
.oe_kanban_group_header.oe_kanban_group_folded .oe_kanban_group_title_vertical
|
||||
display: inline-block !important
|
||||
.oe_kanban_group_title_vertical
|
||||
-ms-writing-mode: lr-tb !important
|
||||
background: rgb(240, 238, 238)
|
||||
top: -5px !important
|
||||
@media print
|
||||
.openerp
|
||||
.oe_kanban_groups
|
||||
|
|
|
@ -52,7 +52,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
this._super.apply(this, arguments);
|
||||
this.$el.on('click', '.oe_kanban_dummy_cell', function() {
|
||||
if (self.$buttons) {
|
||||
self.$buttons.find('.oe_kanban_add_column').effect('bounce', {distance: 18, times: 5}, 150);
|
||||
self.$buttons.find('.oe_kanban_add_column').openerpBounce();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@ -322,7 +322,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
this.compute_groups_width();
|
||||
if (this.group_by) {
|
||||
// Kanban cards drag'n'drop
|
||||
var $columns = this.$el.find('.oe_kanban_column');
|
||||
var $columns = this.$el.find('.oe_kanban_column .oe_kanban_column_cards');
|
||||
$columns.sortable({
|
||||
handle : '.oe_kanban_draghandle',
|
||||
start: function(event, ui) {
|
||||
|
@ -366,7 +366,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
scroll: false,
|
||||
start: function(event, ui) {
|
||||
start_index = ui.item.index();
|
||||
self.$('.oe_kanban_record').css({ visibility: 'hidden' });
|
||||
self.$('.oe_kanban_record, .oe_kanban_quick_create').css({ visibility: 'hidden' });
|
||||
},
|
||||
stop: function(event, ui) {
|
||||
var stop_index = ui.item.index();
|
||||
|
@ -384,7 +384,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
}
|
||||
});
|
||||
}
|
||||
self.$('.oe_kanban_record').css({ visibility: 'visible' });
|
||||
self.$('.oe_kanban_record, .oe_kanban_quick_create').css({ visibility: 'visible' });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -471,7 +471,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
);
|
||||
var create_nocontent = this.$buttons;
|
||||
this.$el.find('.oe_view_nocontent').click(function() {
|
||||
create_nocontent.effect('bounce', {distance: 18, times: 5}, 150);
|
||||
create_nocontent.openerpBounce();
|
||||
});
|
||||
},
|
||||
|
||||
|
@ -612,10 +612,10 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
|||
this.$has_been_started.resolve();
|
||||
var add_btn = this.$el.find('.oe_kanban_add');
|
||||
add_btn.tipsy({delayIn: 500, delayOut: 1000});
|
||||
this.$records.click(function (ev) {
|
||||
this.$records.find(".oe_kanban_column_cards").click(function (ev) {
|
||||
if (ev.target == ev.currentTarget) {
|
||||
if (!self.state.folded) {
|
||||
add_btn.effect('bounce', {distance: 18, times: 5}, 150);
|
||||
add_btn.openerpBounce();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -660,14 +660,15 @@ instance.web_kanban.KanbanGroup = instance.web.Widget.extend({
|
|||
var self = this;
|
||||
var $list_header = this.$records.find('.oe_kanban_group_list_header');
|
||||
var $show_more = this.$records.find('.oe_kanban_show_more');
|
||||
var $cards = this.$records.find('.oe_kanban_column_cards');
|
||||
|
||||
_.each(records, function(record) {
|
||||
var rec = new instance.web_kanban.KanbanRecord(self, record);
|
||||
if (!prepend) {
|
||||
rec.insertBefore($show_more);
|
||||
rec.appendTo($cards);
|
||||
self.records.push(rec);
|
||||
} else {
|
||||
rec.insertAfter($list_header);
|
||||
rec.prependTo($cards);
|
||||
self.records.unshift(rec);
|
||||
}
|
||||
});
|
||||
|
@ -792,6 +793,7 @@ instance.web_kanban.KanbanRecord = instance.web.Widget.extend({
|
|||
},
|
||||
renderElement: function() {
|
||||
this.qweb_context = {
|
||||
instance: instance,
|
||||
record: this.record,
|
||||
widget: this,
|
||||
read_only_mode: this.view.options.read_only_mode,
|
||||
|
|
|
@ -68,6 +68,7 @@
|
|||
<t t-name="KanbanView.group_records_container">
|
||||
<td class="oe_kanban_column">
|
||||
<div class="oe_kanban_group_list_header"/>
|
||||
<div class="oe_kanban_column_cards"/>
|
||||
<div class="oe_kanban_show_more">
|
||||
<button class="oe_button">Show more... (<span class="oe_kanban_remaining"></span> remaining)</button>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue