Thibault Delavallée 2012-06-21 10:16:13 +02:00
commit cefce78cb6
356 changed files with 7122 additions and 3277 deletions

View File

@ -332,12 +332,9 @@ def httprequest(f):
# OpenERP Web werkzeug Session Managment wraped using with
#----------------------------------------------------------
STORES = {}
SESSION_TIMEOUT = 7 * 24 * 60 * 60 # FIXME make it configurable ?
SESSION_COUNTER = 0
@contextlib.contextmanager
def session_context(request, storage_path, session_cookie='sessionid'):
global SESSION_COUNTER
session_store, session_lock = STORES.get(storage_path, (None, None))
if not session_store:
session_store = werkzeug.contrib.sessions.FilesystemSessionStore(
@ -347,22 +344,10 @@ def session_context(request, storage_path, session_cookie='sessionid'):
sid = request.cookies.get(session_cookie)
with session_lock:
SESSION_COUNTER += 1
if SESSION_COUNTER % 100 == 0:
SESSION_COUNTER = 0
for s in session_store.list():
ss = session_store.get(s)
t = ss.get('timestamp')
if not t or t + SESSION_TIMEOUT < time.time():
_logger.debug('deleting http session %s', s)
session_store.delete(ss)
if sid:
request.session = session_store.get(sid)
else:
request.session = session_store.new()
request.session['timestamp'] = time.time()
try:
yield request.session
@ -379,7 +364,7 @@ def session_context(request, storage_path, session_cookie='sessionid'):
and not value.jsonp_requests
# FIXME do not use a fixed value
and value._creation_time + (60*5) < time.time()):
_logger.debug('remove OpenERP session %s', key)
_logger.debug('remove session %s', key)
removed_sessions.add(key)
del request.session[key]

View File

@ -1331,19 +1331,39 @@ class Binary(openerpweb.Controller):
@openerpweb.httprequest
def image(self, req, model, id, field, **kw):
last_update = '__last_update'
Model = req.session.model(model)
context = req.session.eval_context(req.context)
headers = [('Content-Type', 'image/png')]
etag = req.httprequest.headers.get('If-None-Match')
hashed_session = hashlib.md5(req.session_id).hexdigest()
if etag:
if not id and hashed_session == etag:
return werkzeug.wrappers.Response(status=304)
else:
date = Model.read([int(id)], [last_update], context)[0].get(last_update)
if hashlib.md5(date).hexdigest() == etag:
return werkzeug.wrappers.Response(status=304)
retag = hashed_session
try:
if not id:
res = Model.default_get([field], context).get(field)
image_data = base64.b64decode(res)
else:
res = Model.read([int(id)], [field], context)[0].get(field)
image_data = base64.b64decode(res)
res = Model.read([int(id)], [last_update, field], context)[0]
retag = hashlib.md5(res.get(last_update)).hexdigest()
image_data = base64.b64decode(res.get(field))
except (TypeError, xmlrpclib.Fault):
image_data = self.placeholder(req)
return req.make_response(image_data, [
('Content-Type', 'image/png'), ('Content-Length', len(image_data))])
headers.append(('ETag', retag))
headers.append(('Content-Length', len(image_data)))
try:
ncache = int(kw.get('cache'))
headers.append(('Cache-Control', 'no-cache' if ncache == 0 else 'max-age=%s' % (ncache)))
except:
pass
return req.make_response(image_data, headers)
def placeholder(self, req):
addons_path = openerpweb.addons_manifest['web']['addons_path']
return open(os.path.join(addons_path, 'web', 'static', 'src', 'img', 'placeholder.png'), 'rb').read()
@ -1420,16 +1440,8 @@ class Binary(openerpweb.Controller):
# TODO: might be useful to have a configuration flag for max-length file uploads
try:
out = """<script language="javascript" type="text/javascript">
var win = window.top.window,
callback = win[%s];
if (typeof(callback) === 'function') {
callback.apply(this, %s);
} else {
win.jQuery('#oe_notification', win.document).notify('create', {
title: "Ajax File Upload",
text: "Could not find callback"
});
}
var win = window.top.window;
win.jQuery(win).trigger(%s, %s);
</script>"""
data = ufile.read()
args = [len(data), ufile.filename,
@ -1444,11 +1456,8 @@ class Binary(openerpweb.Controller):
Model = req.session.model('ir.attachment')
try:
out = """<script language="javascript" type="text/javascript">
var win = window.top.window,
callback = win[%s];
if (typeof(callback) === 'function') {
callback.call(this, %s);
}
var win = window.top.window;
win.jQuery(win).trigger(%s, %s);
</script>"""
attachment_id = Model.create({
'name': ufile.filename,

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

1544
addons/web/i18n/ca.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
"X-Poedit-Language: Czech\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
"Language: es\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

1544
addons/web/i18n/hi.po Normal file

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-05 05:07+0000\n"
"X-Generator: Launchpad (build 15353)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-05 05:07+0000\n"
"X-Generator: Launchpad (build 15353)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

File diff suppressed because it is too large Load Diff

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -920,7 +920,7 @@ msgstr "Prijava"
#. openerp-web
#: addons/web/static/src/xml/base.xml:314
msgid "Manage Databases"
msgstr ""
msgstr "Upravljanje podatkovnih zbir"
#. openerp-web
#: addons/web/static/src/xml/base.xml:332
@ -1133,7 +1133,7 @@ msgstr "Domena:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:968
msgid "Change default:"
msgstr ""
msgstr "Spremeni privzete vrednosti:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:972

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:36+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:39+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172
@ -517,21 +517,21 @@ msgstr "您确定要删除附件“%s”吗"
#: addons/web/static/src/js/view_form.js:828
#, python-format
msgid "Unknown operator %s in domain %s"
msgstr "未知操作符“%s”位于域“%s”中"
msgstr "发现未知操作符 %s ,过滤条件 %s 有误"
#. openerp-web
#: addons/web/static/src/js/view_form.js:830
#: addons/web/static/src/js/view_form.js:836
#, python-format
msgid "Unknown field %s in domain %s"
msgstr "未知字段“%s”位于域“%s”中"
msgstr "发现未知字段 %s ,过滤条件 %s 有误"
#. openerp-web
#: addons/web/static/src/js/view_form.js:868
#: addons/web/static/src/js/view_form.js:874
#, python-format
msgid "Unsupported operator %s in domain %s"
msgstr "不支持的操作符“%s”位于域“%s”中"
msgstr "有不支持的操作符 %s ,过滤条件 %s 有误"
#. openerp-web
#: addons/web/static/src/js/view_form.js:1225
@ -1126,7 +1126,7 @@ msgstr "上下文:"
#. openerp-web
#: addons/web/static/src/xml/base.xml:960
msgid "Domain:"
msgstr "域:"
msgstr "过滤条件"
#. openerp-web
#: addons/web/static/src/xml/base.xml:968

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web/static/src/js/chrome.js:172

View File

@ -4774,7 +4774,8 @@
return node;
};
})(jQuery);
;(function(a){var b=document,c="getElementsByTagName",d=b[c]("head")[0]||b[c]("body")[0],e=b.createElement("style");e.innerHTML=a,d.appendChild(e)})('\n.text-core {\
;
(function(a){var b=document,c="getElementsByTagName",d=b[c]("head")[0]||b[c]("body")[0],e=b.createElement("style");e.innerHTML=a,d.appendChild(e)})('\n.text-core {\
position: relative;\
}\
.text-core .text-wrap {\
@ -4785,10 +4786,9 @@
-webkit-box-sizing: border-box;\
-moz-box-sizing: border-box;\
box-sizing: border-box;\
-webkit-border-radius: 0px;\
-moz-border-radius: 0px;\
border-radius: 0px;\
border: 1px solid #9daccc;\
-webkit-border-radius: 3px;\
-moz-border-radius: 3px;\
border-radius: 3px;\
outline: none;\
resize: none;\
position: absolute;\
@ -4927,4 +4927,4 @@
.text-core .text-wrap .text-tags .text-tag .text-button a.text-remove:active {\
background-position: 0 -22px;\
}\
');
');

View File

@ -824,7 +824,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
background:whiteSmoke;
border-bottom:1px solid #ddd;
padding-bottom:0px;
color:#00438A;
color:#4c4c4c;
}
@ -861,7 +861,7 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
border: 1px solid #ddd;
border-bottom-color: #ffffff;
cursor: default;
color:gray;
color:#4c4c4c;
outline:none;
}

View File

@ -913,7 +913,7 @@ $.fn.extend({
tmp_args = arguments;
if (typeof(o) == 'string'){
if(o == 'getDate')
if(o == 'getDate' || o == 'widget')
return $.fn.datepicker.apply($(this[0]), tmp_args);
else
return this.each(function() {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -54,11 +54,6 @@ openerp.web = function(session) {
openerp.web[files[i]](session);
}
}
session.log = function() {
if (session.connection.debug && window.console) {
console.log.apply(console, arguments);
}
}
};
// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax:

View File

@ -9,8 +9,7 @@ instance.web.Notification = instance.web.Widget.extend({
template: 'Notification',
init: function() {
this._super.apply(this, arguments);
// move to instance.web.notification
instance.notification = this;
instance.web.notification = this;
},
start: function() {
this._super.apply(this, arguments);
@ -141,7 +140,6 @@ instance.web.Dialog = instance.web.Widget.extend({
}
},
on_resized: function() {
//openerp.log("Dialog resized to %d x %d", this.$element.width(), this.$element.height());
},
destroy: function () {
this.close();
@ -208,7 +206,14 @@ instance.web.CrashManager = instance.web.CallbackEnabled.extend({
buttons: buttons
}).open();
dialog.$element.html(QWeb.render('CrashManager.error', {session: instance.connection, error: error}));
}
},
on_javascript_exception: function(exception) {
this.on_traceback({
type: _t("Client Error"),
message: exception,
data: {debug: ""}
});
},
});
instance.web.Loading = instance.web.Widget.extend({
@ -577,10 +582,6 @@ instance.web.Menu = instance.web.Widget.extend({
this.renderElement();
this.limit_entries();
this.$secondary_menus.html(QWeb.render("Menu.secondary", { widget : this }));
this.$element.on('click', 'a.oe_menu_more_link', function() {
self.$element.find('.oe_menu_more').toggle();
return false;
});
this.$element.on('click', 'a[data-menu]', this.on_menu_click);
this.$secondary_menus.on('click', 'a[data-menu]', this.on_menu_click);
// Hide second level submenus
@ -601,16 +602,12 @@ instance.web.Menu = instance.web.Widget.extend({
$index.after($more);
$more.find('.oe_menu_more').append($index.next().nextAll());
}
this.do_hide_more();
},
auto_limit_entries: function() {
// TODO: auto detect overflow and bind window on resize
var width = $(window).width();
return Math.floor(width / 125);
},
do_hide_more: function() {
this.$element.find('.oe_menu_more').hide();
},
/**
* Opens a given menu by id, as if a user had browsed to that menu by hand
* except does not trigger any event on the way
@ -708,9 +705,8 @@ instance.web.Menu = instance.web.Widget.extend({
*/
on_menu_click: function(ev) {
var needaction = !!$(ev.target).filter('div.oe_menu_counter').length;
ev.preventDefault();
this.menu_click($(ev.currentTarget).data('menu'), needaction);
ev.stopPropagation();
return false;
},
});
@ -723,20 +719,12 @@ instance.web.UserMenu = instance.web.Widget.extend({
start: function() {
var self = this;
this._super.apply(this, arguments);
$('html').bind('click', function() {
self.$element.find('.oe_dropdown_options').hide();
});
this.$element.find('.oe_dropdown_toggle').click(function() {
self.$element.find('.oe_dropdown_options').toggle();
return false;
});
this.$element.on('click', '.oe_dropdown_options li a[data-menu]', function() {
this.$element.on('click', '.oe_dropdown_menu li a[data-menu]', function(ev) {
ev.preventDefault();
var f = self['on_menu_' + $(this).data('menu')];
if (f) {
f($(this));
}
self.$element.find('.oe_dropdown_options').hide();
return false;
});
},
change_password :function() {
@ -880,6 +868,27 @@ instance.web.WebClient = instance.web.Widget.extend({
this.$element.on('mouseenter', '.oe_systray > div:not([data-tipsy=true])', function() {
$(this).attr('data-tipsy', 'true').tipsy().trigger('mouseenter');
});
this.$element.on('click', '.oe_dropdown_toggle', function(ev) {
var $menu = $(this).find('.oe_dropdown_menu');
var state = $menu.is('.oe_opened');
setTimeout(function() {
// Do not alter propagation
$menu.toggleClass('oe_opened', !state);
if (!state) {
// Move $menu if outside window's edge
var doc_width = $(document).width();
var offset = $menu.offset();
var menu_width = $menu.width();
var x = doc_width - offset.left - menu_width - 15;
if (x < 0) {
$menu.offset({ left: offset.left + x }).width(menu_width);
}
}
}, 0);
});
instance.web.bus.on('click', this, function() {
self.$element.find('.oe_dropdown_menu.oe_opened').removeClass('oe_opened');
});
},
show_common: function() {
var self = this;

View File

@ -400,6 +400,29 @@ instance.web.Session = instance.web.JsonRPC.extend( /** @lends instance.web.Sess
}
});
/**
* Event Bus used to bind events scoped in the current instance
*/
instance.web.bus = new (instance.web.Class.extend(instance.web.EventDispatcherMixin, {
init: function() {
instance.web.EventDispatcherMixin.init.call(this, parent);
var self = this;
// TODO fme: allow user to bind keys for some global actions.
// check gtk bindings
// http://unixpapa.com/js/key.html
_.each('click,dblclick,keydown,keypress,keyup'.split(','), function(evtype) {
$('html').on(evtype, self, function(ev) {
self.trigger(evtype, ev);
});
});
_.each('resize,scroll'.split(','), function(evtype) {
$(window).on(evtype, self, function(ev) {
self.trigger(evtype, ev);
});
});
}
}))();
/** OpenERP Translations */
instance.web.TranslationDataBase = instance.web.Class.extend(/** @lends instance.web.TranslationDataBase# */{
/**
@ -597,13 +620,18 @@ instance.web.Reload = instance.web.Widget.extend({
this.menu_id = (params && params.menu_id) || false;
},
start: function() {
var l = window.location;
var timestamp = new Date().getTime();
var search = "?ts=" + timestamp;
if (l.search) {
search = l.search + "&ts=" + timestamp;
}
var hash = l.hash;
if (this.menu_id) {
// open the given menu id
var url_without_fragment = window.location.toString().split("#", 1)[0];
window.location = url_without_fragment + "#menu_id=" + this.menu_id;
} else {
window.location.reload();
hash = "#menu_id=" + this.menu_id;
}
var url = l.protocol + "//" + l.host + l.pathname + search + hash;
window.location = url;
}
});

View File

@ -1571,7 +1571,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
$filter.remove();
});
})
.prependTo($filter);
.appendTo($filter);
}
$filter.unbind('click').click(function () {

View File

@ -472,7 +472,7 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
return self.on_processed_onchange(response, processed);
} catch(e) {
console.error(e);
instance.webclient.crashmanager.on_javascript_exception(e);
return $.Deferred().reject();
}
});
@ -728,7 +728,6 @@ instance.web.FormView = instance.web.View.extend(_.extend({}, instance.web.form.
if (this.sidebar) {
this.sidebar.do_attachement_update(this.dataset, this.datarecord.id);
}
//instance.log("The record has been created with id #" + this.datarecord.id);
this.reload();
return $.when(_.extend(r, {created: true})).then(success);
}
@ -914,6 +913,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
},
set_fields_view: function(fvg) {
this.fvg = fvg;
this.version = parseFloat(this.fvg.arch.attrs.version);
if (isNaN(this.version)) {
this.version = 6.1;
}
},
set_tags_registry: function(tags_registry) {
this.tags_registry = tags_registry;
@ -921,6 +924,18 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
set_fields_registry: function(fields_registry) {
this.fields_registry = fields_registry;
},
// Backward compatibility tools, current default version: v6.1
process_version: function() {
if (this.version < 7.0) {
this.$form.find('form:first').wrapInner('<group col="4"/>');
this.$form.find('page').each(function() {
if (!$(this).parents('field').length) {
$(this).wrapInner('<group col="4"/>');
}
});
}
selector = 'form[version!="7.0"] page,form[version!="7.0"]';
},
render_to: function($target) {
var self = this;
this.$target = $target;
@ -930,6 +945,8 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
var xml = instance.web.json_node_to_xml(this.fvg.arch);
this.$form = $('<div class="oe_form">' + xml + '</div>');
this.process_version();
this.fields_to_init = [];
this.tags_to_init = [];
this.labels = {};
@ -2526,6 +2543,7 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten
var tip_delay = 200;
var tip_duration = 3000;
var anyoneLoosesFocus = function() {
var used = false;
if (self.floating) {
if (self.last_search.length > 0) {
if (self.last_search[0][0] != self.get("value")) {
@ -2533,13 +2551,17 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten
self.display_value["" + self.last_search[0][0]] = self.last_search[0][1];
self.set({value: self.last_search[0][0]});
} else {
used = true;
self.render_value();
}
} else {
used = true;
self.set({value: false});
self.render_value();
}
self.floating = false;
}
if (! self.get("value")) {
if (used) {
tip_def.reject();
untip_def.reject();
tip_def = $.Deferred();
@ -2586,7 +2608,8 @@ instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(_.exten
e.preventDefault();
},
html: true,
close: anyoneLoosesFocus,
// disabled to solve a bug, but may cause others
//close: anyoneLoosesFocus,
minLength: 0,
delay: 0
});
@ -2724,6 +2747,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
},
start: function() {
this._super.apply(this, arguments);
this.$element.addClass('oe_form_field_one2many');
var self = this;
@ -2731,7 +2755,6 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
this.dataset.o2m = this;
this.dataset.parent_view = this.view;
this.dataset.child_name = this.name;
//this.dataset.child_name =
this.dataset.on_change.add_last(function() {
self.trigger_on_change();
});
@ -2763,6 +2786,13 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
modes = !!modes ? modes.split(",") : ["tree"];
var views = [];
_.each(modes, function(mode) {
if (! _.include(["list", "tree", "graph", "kanban"], mode)) {
try {
throw new Error(_.str.sprintf("View type '%s' is not supported in One2Many.", mode));
} catch(e) {
instance.webclient.crashmanager.on_javascript_exception(e)
}
}
var view = {
view_id: false,
view_type: mode == "tree" ? "list" : mode,
@ -2773,9 +2803,11 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
}
if(view.view_type === "list") {
view.options.selectable = self.multi_selection;
view.options.sortable = false;
if (self.get("effective_readonly")) {
view.options.addable = null;
view.options.deletable = null;
view.options.reorderable = false;
}
} else if (view.view_type === "form") {
if (self.get("effective_readonly")) {
@ -2796,6 +2828,7 @@ instance.web.form.FieldOne2Many = instance.web.form.AbstractField.extend({
this.views = views;
this.viewmanager = new instance.web.form.One2ManyViewManager(this, this.dataset, views, {});
this.viewmanager.$element.addClass("oe_view_manager_one2many");
this.viewmanager.o2m = self;
var once = $.Deferred().then(function() {
self.init_form_last_update.resolve();
@ -3260,6 +3293,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
},
start: function() {
this._super.apply(this, arguments);
this.$element.addClass('oe_form_field_many2many');
var self = this;
@ -3268,7 +3302,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
this.dataset.on_unlink.add_last(function(ids) {
self.dataset_changed();
});
this.is_setted.then(function() {
self.load_view();
});
@ -3281,7 +3315,7 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
});
});
});
})
});
},
set_value: function(value_) {
value_ = value_ || [];
@ -3303,6 +3337,8 @@ instance.web.form.FieldMany2Many = instance.web.form.AbstractField.extend({
'addable': self.get("effective_readonly") ? null : _t("Add"),
'deletable': self.get("effective_readonly") ? false : true,
'selectable': self.multi_selection,
'sortable': false,
'reorderable': false,
});
var embedded = (this.field.views || {}).tree;
if (embedded) {
@ -3948,13 +3984,22 @@ instance.web.form.FieldReference = instance.web.form.AbstractField.extend(_.exte
instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend({}, instance.web.form.ReinitializeFieldMixin, {
init: function(field_manager, node) {
var self = this;
this._super(field_manager, node);
this.iframe = this.element_id + '_iframe';
this.binary_value = false;
this.fileupload_id = _.uniqueId('oe_fileupload');
$(window).on(this.fileupload_id, function() {
var args = [].slice.call(arguments).slice(1);
self.on_file_uploaded.apply(self, args);
});
},
stop: function() {
$(window).off(this.fileupload_id);
this._super.apply(this, arguments);
},
initialize_content: function() {
this.$element.find('input.oe-binary-file').change(this.on_file_change);
this.$element.find('button.oe-binary-file-save').click(this.on_save_as);
this.$element.find('button.oe_binary_file_save').click(this.on_save_as);
this.$element.find('.oe-binary-file-clear').click(this.on_clear);
},
human_filesize : function(size) {
@ -3970,8 +4015,8 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend(
// TODO: on modern browsers, we could directly read the file locally on client ready to be used on image cropper
// http://www.html5rocks.com/tutorials/file/dndfiles/
// http://deepliquid.com/projects/Jcrop/demos.php?demo=handler
window[this.iframe] = this.on_file_uploaded;
if ($(e.target).val() != '') {
if ($(e.target).val() !== '') {
this.$element.find('form.oe-binary-form input[name=session_id]').val(this.session.session_id);
this.$element.find('form.oe-binary-form').submit();
this.$element.find('.oe-binary-progress').show();
@ -3979,12 +4024,12 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend(
}
},
on_file_uploaded: function(size, name, content_type, file_base64) {
delete(window[this.iframe]);
if (size === false) {
this.do_warn("File Upload", "There was a problem while uploading your file");
// TODO: use openerp web crashmanager
console.warn("Error while uploading file : ", name);
} else {
this.filename = name;
this.on_file_uploaded_and_valid.apply(this, arguments);
}
this.$element.find('.oe-binary-progress').hide();
@ -3992,20 +4037,33 @@ instance.web.form.FieldBinary = instance.web.form.AbstractField.extend(_.extend(
},
on_file_uploaded_and_valid: function(size, name, content_type, file_base64) {
},
on_save_as: function() {
$.blockUI();
this.session.get_file({
url: '/web/binary/saveas_ajax',
data: {data: JSON.stringify({
model: this.view.dataset.model,
id: (this.view.datarecord.id || ''),
field: this.name,
filename_field: (this.node.attrs.filename || ''),
context: this.view.dataset.get_context()
})},
complete: $.unblockUI,
error: instance.webclient.crashmanager.on_rpc_error
});
on_save_as: function(ev) {
var value = this.get('value');
if (!value) {
this.do_warn(_t("Save As..."), _t("The field is empty, there's nothing to save !"));
ev.stopPropagation();
} else if (this._dirty_flag) {
var link = this.$('.oe_binary_file_save_data')[0];
link.download = this.filename || "download.bin"; // Works on only on Google Chrome
//link.target = '_blank';
link.href = "data:application/octet-stream;base64," + value;
} else {
$.blockUI();
this.session.get_file({
url: '/web/binary/saveas_ajax',
data: {data: JSON.stringify({
model: this.view.dataset.model,
id: (this.view.datarecord.id || ''),
field: this.name,
filename_field: (this.node.attrs.filename || ''),
context: this.view.dataset.get_context()
})},
complete: $.unblockUI,
error: instance.webclient.crashmanager.on_rpc_error
});
ev.stopPropagation();
return false;
}
},
on_clear: function() {
if (this.get('value') !== false) {
@ -4073,14 +4131,6 @@ instance.web.form.FieldBinaryFile = instance.web.form.FieldBinary.extend({
instance.web.form.FieldBinaryImage = instance.web.form.FieldBinary.extend({
template: 'FieldBinaryImage',
initialize_content: function() {
this._super();
if (!this.get("effective_readonly")) {
this.$element.find('.oe_form_field_image_controls').show();
} else {
this.$element.find('.oe_form_field_image_controls').hide();
}
},
set_value: function(value_) {
this._super.apply(this, arguments);
this.render_value();

View File

@ -364,6 +364,7 @@ instance.web.ListView = instance.web.View.extend( /** @lends instance.web.ListVi
}
var total = dataset.size();
this.$pager.toggleClass('oe_list_pager_single_page', (total <= this.limit()));
var spager = '-';
if (total) {
var range_start = this.page * this.limit() + 1;

View File

@ -77,7 +77,14 @@ instance.web.ActionManager = instance.web.Widget.extend({
});
} else if (state.client_action) {
this.null_action();
this.ir_actions_client(state.client_action);
var action = state.client_action;
if(_.isString(action)) {
action = {
tag: action,
params: state,
};
}
this.ir_actions_client(action);
}
$.when(action_loaded || null).then(function() {
@ -150,6 +157,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
this.inner_action = action;
this.inner_viewmanager = new instance.web.ViewManagerAction(this, action);
this.inner_viewmanager.appendTo(this.$element);
this.inner_viewmanager.$element.addClass("oe_view_manager_global");
}
},
ir_actions_act_window_close: function (action, on_closed) {
@ -320,7 +328,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
}
this.$element
.find('.oe_view_manager_switch a').parent().removeClass('active')
.find('.oe_view_manager_switch a').parent().removeClass('active');
this.$element
.find('.oe_view_manager_switch a').filter('[data-view-type="' + view_type + '"]')
.parent().addClass('active');
@ -329,9 +337,12 @@ instance.web.ViewManager = instance.web.Widget.extend({
_.each(_.keys(self.views), function(view_name) {
var controller = self.views[view_name].controller;
if (controller) {
var container = self.$element.find(".oe_view_manager_view_" + view_name + ":first");
if (view_name === view_type) {
container.show();
controller.do_show(view_options || {});
} else {
container.hide();
controller.do_hide();
}
}
@ -696,6 +707,7 @@ instance.web.ViewManagerAction = instance.web.ViewManager.extend({
instance.web.Sidebar = instance.web.Widget.extend({
init: function(parent) {
var self = this;
this._super(parent);
var view = this.getParent();
this.sections = [
@ -712,19 +724,24 @@ instance.web.Sidebar = instance.web.Widget.extend({
var item = { label: _t("Translate"), callback: view.on_sidebar_translate, title: _t("Technical translation") };
this.items.other.push(item);
}
this.fileupload_id = _.uniqueId('oe_fileupload');
$(window).on(this.fileupload_id, function() {
var args = [].slice.call(arguments).slice(1);
if (args[0] && args[0].error) {
alert(args[0].error);
} else {
self.do_attachement_update(self.dataset, self.model_id);
}
$.unblockUI();
});
},
start: function() {
var self = this;
this._super(this);
this.redraw();
this.$element.on('click','.oe_dropdown_toggle',function(event) {
$(this).parent().find('ul').toggle();
return false;
});
this.$element.on('click','.oe_dropdown_menu li a', function(event) {
var section = $(this).data('section');
var index = $(this).data('index');
$(this).closest('ul').hide();
var item = self.items[section][index];
if (item.callback) {
item.callback.apply(self, [item]);
@ -733,16 +750,12 @@ instance.web.Sidebar = instance.web.Widget.extend({
} else if (item.url) {
return true;
}
return false;
event.preventDefault();
});
//this.$div.html(QWeb.render('FormView.sidebar.attachments', this));
//this.$element.find('.oe-binary-file').change(this.on_attachment_changed);
//this.$element.find('.oe-sidebar-attachment-delete').click(this.on_attachment_delete);
},
redraw: function() {
var self = this;
self.$element.html(QWeb.render('Sidebar', {widget: self}));
this.$element.find('ul').hide();
// Hides Sidebar sections when item list is empty
this.$('.oe_form_dropdown_section').each(function() {
@ -826,6 +839,8 @@ instance.web.Sidebar = instance.web.Widget.extend({
});
},
do_attachement_update: function(dataset, model_id) {
this.dataset = dataset;
this.model_id = model_id;
if (!model_id) {
this.on_attachments_loaded([]);
} else {
@ -837,42 +852,37 @@ instance.web.Sidebar = instance.web.Widget.extend({
on_attachments_loaded: function(attachments) {
var self = this;
var items = [];
// TODO: preprend: _s +
var prefix = '/web/binary/saveas?session_id=' + self.session.session_id + '&model=ir.attachment&field=datas&filename_field=name&id=';
var prefix = this.session.origin + '/web/binary/saveas?session_id=' + self.session.session_id + '&model=ir.attachment&field=datas&filename_field=name&id=';
_.each(attachments,function(a) {
a.label = a.name;
if(a.type === "binary") {
a.url = prefix + a.id + '&t=' + (new Date().getTime());
}
});
attachments.push( { label: _t("Add..."), callback: self.on_attachment_add } );
self.items['files'] = attachments;
self.redraw();
},
on_attachment_add: function(e) {
this.$element.find('.oe_sidebar_add').show();
this.$('.oe_sidebar_add_attachment .oe-binary-file').change(this.on_attachment_changed);
this.$element.find('.oe_sidebar_delete_item').click(this.on_attachment_delete);
},
on_attachment_changed: function(e) {
return;
window[this.element_id + '_iframe'] = this.do_update;
var $e = $(e.target);
if ($e.val() != '') {
if ($e.val() !== '') {
this.$element.find('form.oe-binary-form').submit();
$e.parent().find('input[type=file]').prop('disabled', true);
$e.parent().find('button').prop('disabled', true).find('img, span').toggle();
this.$('.oe_sidebar_add_attachment span').text(_t('Uploading...'));
$.blockUI();
}
},
on_attachment_delete: function(e) {
return;
var self = this, $e = $(e.currentTarget);
var name = _.str.trim($e.parent().find('a.oe-sidebar-attachments-link').text());
if (confirm(_.str.sprintf(_t("Do you really want to delete the attachment %s?"), name))) {
this.rpc('/web/dataset/unlink', {
model: 'ir.attachment',
ids: [parseInt($e.attr('data-id'))]
}, function(r) {
$e.parent().remove();
self.do_notify("Delete an attachment", "The attachment '" + name + "' has been deleted");
var self = this;
e.preventDefault();
e.stopPropagation();
var self = this;
var $e = $(e.currentTarget);
if (confirm(_t("Do you really want to delete this attachment ?"))) {
(new instance.web.DataSet(this, 'ir.attachment')).unlink([parseInt($e.attr('data-id'), 10)]).then(function() {
self.do_attachement_update(self.dataset, self.model_id);
});
}
}

View File

@ -117,7 +117,7 @@
<t t-name="DatabaseManager">
<div class="oe_database_manager">
<div class="oe_database_manager_menu">
<ul class="oe_form_notebook">
<ul class="oe_notebook">
<li><a href="#db_create">Create</a></li>
<li><a href="#db_drop">Drop</a></li>
<li><a href="#db_backup">Backup</a></li>
@ -273,8 +273,10 @@
</t>
<t t-name="Menu.more">
<li class="oe_menu_more_container">
<a href="#" class="oe_menu_more_link oe_dropdown_toggle">More</a>
<ul class="oe_menu_more" 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>
</t>
<t t-name="Menu.secondary">
@ -316,19 +318,15 @@
</t>
<t t-name="UserMenu">
<ul class="oe_user_menu oe_topbar_item">
<li class="oe_dropdown">
<a href="#" class="oe_dropdown_toggle">
<img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>
<span class="oe_topbar_name"/>
</a>
<ul class="oe_dropdown_options">
<li><a href="#" data-menu="about">About OpenERP</a></li>
<li><a href="#" data-menu="settings">Preferences</a></li>
<li><a href="#" data-menu="logout">Log out</a></li>
</ul>
</li>
</ul>
<span class="oe_user_menu oe_topbar_item oe_dropdown_toggle oe_dropdown_arrow">
<img class="oe_topbar_avatar" t-att-data-default-src="_s + '/web/static/src/img/user_menu_avatar.png'"/>
<span class="oe_topbar_name"/>
<ul class="oe_dropdown_menu">
<li><a href="#" data-menu="about">About OpenERP</a></li>
<li><a href="#" data-menu="settings">Preferences</a></li>
<li><a href="#" data-menu="logout">Log out</a></li>
</ul>
</span>
</t>
<t t-name="UserMenu.about">
<div>
@ -404,7 +402,7 @@
<col width="33%"/>
<col width="33%"/>
<col width="34%"/>
<tr class="oe_header_row">
<tr class="oe_header_row oe_header_row_top">
<td colspan="2">
<h2 class="oe_view_title" t-if="widget.flags.display_title !== false">
<span class="oe_view_title_text"><t t-esc="widget.display_title()"/></span>
@ -423,8 +421,8 @@
</td>
<td>
<ul class="oe_view_manager_switch oe_button_group oe_right">
<t t-if="widget.views_src.length > 2" t-foreach="widget.views_src" t-as="view">
<li t-if="view.view_type != 'form'" class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="_t('Switch to ') + (view.label || view.view_type)">
<t t-if="widget.views_src.length > 1" t-foreach="widget.views_src" t-as="view">
<li class="oe_e"><a t-attf-class="oe_vm_switch_#{view.view_type}" t-att-data-view-type="view.view_type" t-att-title="_t('Switch to ') + (view.label || view.view_type)">
</a></li>
</t>
</ul>
@ -433,7 +431,6 @@
</tr>
</table>
<div class="oe_view_manager_body">
<t t-foreach="widget.views_src" t-as="view">
<div t-attf-class="oe_view_manager_view_#{view.view_type}"/>
@ -511,55 +508,31 @@
<div class="oe_sidebar">
<t t-foreach="widget.sections" t-as="section">
<div class="oe_form_dropdown_section">
<button class="oe_dropdown_toggle"><t t-esc="section.label"/></button>
<ul class="oe_dropdown_menu">
<li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname">
<a class="oe_sidebar_action_a" t-att-title="item.title" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank">
<t t-raw="item.label"/>
</a>
</li>
<li t-if="section.name == 'files'" class="oe_sidebar_add" style="display:none;">
Input type file stuff
</li>
</ul>
<button class="oe_dropdown_toggle oe_dropdown_arrow">
<t t-esc="section.label"/>
<ul class="oe_dropdown_menu">
<li t-foreach="widget.items[section.name]" t-as="item" t-att-class="item.classname">
<a class="oe_sidebar_action_a" t-att-title="item.title" t-att-data-section="section.name" t-att-data-index="item_index" t-att-href="item.url" target="_blank">
<t t-raw="item.label"/>
</a>
<a t-if="section.name == 'files'" class="oe_sidebar_delete_item" t-att-data-id="item.id" title="Delete this attachment">x</a>
</li>
<li t-if="section.name == 'files'" class="oe_sidebar_add_attachment">
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.dataset and widget.dataset.model"/>
<input type="hidden" name="id" t-att-value="widget.model_id"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id"/>
<span>Add...</span>
</t>
</li>
</ul>
</button>
</div>
</t>
</div>
</t>
<t t-name="Sidebar.attachments">
<div class="oe-sidebar-attachments-toolbar">
<div class="oe-binary-file-set" style="float: right">
<form class="oe-binary-form" t-attf-target="#{element_id}_iframe"
method="post" enctype="multipart/form-data" action="/web/binary/upload_attachment">
<input type="hidden" name="session_id" t-att-value="session.session_id"/>
<input type="hidden" name="callback" t-attf-value="#{element_id}_iframe"/>
<input type="hidden" name="model" t-att-value="view.dataset.model"/>
<input type="hidden" name="id" t-att-value="view.datarecord.id"/>
<button class="oe_button" type="button">
<img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16" style="display: none"/>
<span>Add</span>
</button>
<input type="file" class="oe-binary-file" name="ufile" title="Add attachment"
t-att-onclick="view.datarecord.id ? null : 'alert(\'No record selected ! You can only attach to existing record.\'); return false;'"/>
</form>
<iframe t-attf-id="#{element_id}_iframe" t-attf-name="#{element_id}_iframe" style="display: none"/>
</div>
</div>
<br style="clear: both"/>
<ul class="oe-sidebar-attachments-items">
<li t-foreach="attachments" t-as="attachment">
<t t-if="attachment.type == 'binary'" t-set="attachment.url" t-value="_s + '/web/binary/saveas?session_id='
+ session.session_id + '&amp;model=ir.attachment&amp;id=' + attachment.id
+ '&amp;field=datas&amp;filename_field=name&amp;t=' + (new Date().getTime())"/>
<a class="oe-sidebar-attachments-link" t-att-href="attachment.url" target="_blank">
<t t-esc="attachment.name"/>
</a>
<a href="#" class="oe-sidebar-attachment-delete" t-att-data-id="attachment.id" t-attf-title="Delete the attachment #{attachment.name}">
<img t-att-src='_s + "/web/static/src/img/attachments-close.png"' width="15" height="15" border="0"/>
</a>
</li>
</ul>
</t>
<t t-name="TreeView">
<select t-if="toolbar" style="width: 30%">
@ -642,8 +615,8 @@
</tfoot>
</table>
<div t-name="ListView.buttons" class="oe_list_buttons">
<t t-if="!widget.no_leaf and widget.options.action_buttons !== false">
<button type="button" class="oe_button oe_list_add oe_form_button_hi" t-if="widget.options.addable">
<t t-if="!widget.no_leaf and widget.options.action_buttons !== false and widget.options.addable">
<button type="button" class="oe_button oe_list_add oe_highlight">
<t t-esc="widget.options.addable"/>
</button>
<span class="oe_fade">or</span> <a href="#" class="oe_bold oe_list_button_import">Import</a>
@ -791,11 +764,11 @@
</t>
<t t-name="FormRenderingGroup">
<t t-if="string" t-call="FormRenderingSeparator"/>
<table border="0" cellpadding="0" cellspacing="0" width="100%" t-attf-class="oe_form_group #{classnames}"/>
<table border="0" cellpadding="0" cellspacing="0" t-attf-class="oe_form_group #{classnames}"/>
</t>
<t t-name="FormRenderingNotebook">
<div>
<ul t-attf-class="oe_form_notebook #{classnames}">
<ul t-attf-class="oe_notebook #{classnames}">
<li t-foreach="pages" t-as="page" t-att-modifiers="page.modifiers">
<a t-attf-href="##{page.id}">
<t t-esc="page.string"/>
@ -805,7 +778,7 @@
</div>
</t>
<t t-name="FormRenderingNotebookPage">
<div t-attf-class="oe_form_notebook_page #{classnames}" t-att-id="id">
<div t-attf-class="oe_notebook_page #{classnames}" t-att-id="id">
</div>
</t>
<t t-name="FormRenderingSeparator">
@ -903,9 +876,6 @@
<span class="oe_form_field oe_form_field_email oe_form_field_with_button">
<a t-if="widget.get('effective_readonly')" href="#" class="oe_form_uri"/>
<t t-if="!widget.get('effective_readonly')">
<button class="oe_button" tabindex="-1" type="button" title="Send an e-mail with your default e-mail client">
<img t-att-src='_s + "/web/static/src/img/icons/terp-mail-message-new.png"'/>
</button>
<div>
<input type="text"
t-att-id="widget.id_for_label"
@ -1009,7 +979,7 @@
</t>
</t>
<t t-name="FieldReference">
<table class="oe_form_field oe_form_field_reference oe_form" border="0" cellpadding="0" cellspacing="0">
<table class="oe_form_field oe_form_field_reference" border="0" cellpadding="0" cellspacing="0">
<tr>
<td t-attf-class="oe_form_frame_cell oe_form_selection">
<span t-attf-class="oe_form_view_reference_selection"/>
@ -1049,21 +1019,13 @@
</t>
<t t-name="FieldBinaryImage">
<span class="oe_form_field oe_form_field_image">
<div class="oe_form_field_image_controls">
<div class="oe-binary-file-set">
<form class="oe-binary-form" t-att-target="widget.iframe"
method="post" enctype="multipart/form-data" action="/web/binary/upload">
<input type="hidden" name="session_id" value=""/>
<input type="hidden" name="callback" t-att-value="widget.iframe"/>
<button class="oe_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
</button>
<input type="file" class="oe-binary-file" name="ufile"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
/>
</form>
</div>
<div class="oe_form_field_image_controls oe_edit_only">
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<button class="oe_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
</button>
</t>
<button class="oe_button oe-binary-file-clear" type="button" title="Clear">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_MISSING_IMAGE.png"'/>
</button>
@ -1071,7 +1033,6 @@
<img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
<b>Uploading ...</b>
</div>
<iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"/>
</div>
</span>
</t>
@ -1099,24 +1060,22 @@
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td>
<div class="oe-binary-file-set" style="width: 80px; height:22px;">
<form class="oe-binary-form" t-att-target="widget.iframe"
method="post" enctype="multipart/form-data" action="/web/binary/upload">
<input type="hidden" name="session_id" value=""/>
<input type="hidden" name="callback" t-att-value="widget.iframe"/>
<button class="oe_button oe_field_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
<span>Select</span>
</button>
<input type="file" class="oe-binary-file" name="ufile"/>
</form>
</div>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_style">width: 83px;</t>
<button class="oe_button oe_field_button" type="button" title="Set Image">
<img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
<span>Select</span>
</button>
</t>
</td>
<td>
<button class="oe_button oe-binary-file-save" type="button" title="Save As">
<img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/>
<span>Save As</span>
</button>
<a class="oe_binary_file_save_data">
<button class="oe_button oe_binary_file_save" type="button" title="Save As">
<img t-att-src='_s + "/web/static/src/img/icons/gtk-save.png"'/>
<span>Save As</span>
</button>
</a>
</td>
<td>
<button class="oe_button oe-binary-file-clear" type="button" title="Clear">
@ -1130,7 +1089,6 @@
<td class="oe-binary-progress" style="display: none" nowrap="true">
<img t-att-src='_s + "/web/static/src/img/throbber.gif"' width="16" height="16"/>
<b>Uploading ...</b>
<iframe t-att-id="widget.iframe" t-att-name="widget.iframe" style="display: none"/>
</td>
</tr>
</table>
@ -1141,6 +1099,18 @@
</span>
</t>
</t>
<t t-name="HiddenInputFile">
<div t-attf-class="oe_hidden_input_file #{fileupload_class or ''}" t-att-style="fileupload_style">
<form class="oe-binary-form" t-att-target="fileupload_id"
method="post" enctype="multipart/form-data" t-att-action="fileupload_action || '/web/binary/upload'">
<input type="hidden" name="session_id" value=""/>
<input type="hidden" name="callback" t-att-value="fileupload_id"/>
<t t-raw="__content__"/>
<input type="file" class="oe-binary-file" name="ufile"/>
</form>
<iframe t-att-id="fileupload_id" t-att-name="fileupload_id" style="display: none"/>
</div>
</t>
<t t-name="WidgetButton">
<button type="button" class="oe_button oe_form_button"
t-att-tabindex="widget.node.attrs.tabindex"
@ -1204,8 +1174,6 @@
</t>
<t t-name="One2Many.viewmanager" t-extend="ViewManager">
<t t-jquery="span.oe_view_title_text" t-operation="replace"/>
<t t-jquery=".oe-view-manager-header">
this.attr('t-if', 'views.length != 1');
</t>
@ -1282,7 +1250,7 @@
</div>
</t>
<t t-name="SearchView.add_to_dashboard">
<div class="oe_form">
<div>
<p><b>Select Dashboard to add this filter to:</b></p>
<select style="width: 100%; margin-right: 1em;">
<option t-foreach="dashboards" t-as="menu" t-att-value="menu.id" t-att-selected="(menu.id == selected_menu_id) || undefined"><t t-esc="menu.name"/></option>
@ -1409,10 +1377,10 @@
</t>
</t>
</t>
<div t-name="SearchView.Filters" class="oe_searchview_section">
<div t-name="SearchView.Filters" class="oe_searchview_filters oe_searchview_section">
</div>
<div t-name="SearchView.CustomFilters" class="oe_searchview_section">
<div t-name="SearchView.CustomFilters" class="oe_searchview_custom oe_searchview_section">
<div>
<h3><span class="oe_i">M</span> Custom Filters</h3>
<ul class="oe_searchview_custom_list"/>

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -0,0 +1,41 @@
# Catalan translation for openerp-web
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-06 17:33+0100\n"
"PO-Revision-Date: 2012-06-16 17:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Catalan <ca@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-06-17 04:44+0000\n"
"X-Generator: Launchpad (build 15419)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
msgid "Calendar"
msgstr ""
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:466
#: addons/web_calendar/static/src/js/calendar.js:467
msgid "Responsible"
msgstr ""
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:504
#: addons/web_calendar/static/src/js/calendar.js:505
msgid "Navigator"
msgstr ""
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
#: addons/web_calendar/static/src/xml/web_calendar.xml:6
msgid "&nbsp;"
msgstr ""

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
"X-Poedit-Language: Czech\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
"Language: es\n"
#. openerp-web

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -0,0 +1,41 @@
# Mongolian translation for openerp-web
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openerp-web package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openerp-web\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-06 17:33+0100\n"
"PO-Revision-Date: 2012-06-13 17:27+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Mongolian <mn@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-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
msgid "Calendar"
msgstr "Цаглабар"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:466
#: addons/web_calendar/static/src/js/calendar.js:467
msgid "Responsible"
msgstr "Хариуцагч"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:504
#: addons/web_calendar/static/src/js/calendar.js:505
msgid "Navigator"
msgstr "Жолоо"
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5
#: addons/web_calendar/static/src/xml/web_calendar.xml:6
msgid "&nbsp;"
msgstr "&nbsp;"

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,25 +14,25 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11
msgid "Calendar"
msgstr ""
msgstr "Calendário"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:466
#: addons/web_calendar/static/src/js/calendar.js:467
msgid "Responsible"
msgstr ""
msgstr "Responsável"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:504
#: addons/web_calendar/static/src/js/calendar.js:505
msgid "Navigator"
msgstr ""
msgstr "Navegador"
#. openerp-web
#: addons/web_calendar/static/src/xml/web_calendar.xml:5

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

View File

@ -14,8 +14,8 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-06-01 05:37+0000\n"
"X-Generator: Launchpad (build 15342)\n"
"X-Launchpad-Export-Date: 2012-06-14 04:40+0000\n"
"X-Generator: Launchpad (build 15405)\n"
#. openerp-web
#: addons/web_calendar/static/src/js/calendar.js:11

Some files were not shown because too many files have changed in this diff Show More