[merge]
bzr revid: nicolas.vanhoren@openerp.com-20111205132532-4v7papq4jdvmtvs0
@@ -1,6 +1,11 @@
|
||||
{
|
||||
"name" : "web",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web core module.
|
||||
This module provides the core of the OpenERP web client.
|
||||
""",
|
||||
"depends" : [],
|
||||
'active': True,
|
||||
'post_load' : 'wsgi_postload',
|
||||
@@ -10,7 +15,7 @@
|
||||
"static/lib/datejs/parser.js",
|
||||
"static/lib/datejs/sugarpak.js",
|
||||
"static/lib/datejs/extras.js",
|
||||
"static/lib/jquery/jquery-1.6.2.js",
|
||||
"static/lib/jquery/jquery-1.6.4.js",
|
||||
"static/lib/jquery.MD5/jquery.md5.js",
|
||||
"static/lib/jquery.form/jquery.form.js",
|
||||
"static/lib/jquery.validate/jquery.validate.js",
|
||||
|
||||
@@ -16,7 +16,7 @@ class Xml2Json(object):
|
||||
return Xml2Json.convert_element(root)
|
||||
|
||||
@staticmethod
|
||||
def convert_element(el, skip_whitespaces=True):
|
||||
def convert_element(el, preserve_whitespaces=False):
|
||||
res = {}
|
||||
if el.tag[0] == "{":
|
||||
ns, name = el.tag.rsplit("}", 1)
|
||||
@@ -28,11 +28,11 @@ class Xml2Json(object):
|
||||
for k, v in el.items():
|
||||
res["attrs"][k] = v
|
||||
kids = []
|
||||
if el.text and (not skip_whitespaces or el.text.strip() != ''):
|
||||
if el.text and (preserve_whitespaces or el.text.strip() != ''):
|
||||
kids.append(el.text)
|
||||
for kid in el:
|
||||
kids.append(Xml2Json.convert_element(kid))
|
||||
if kid.tail and (not skip_whitespaces or kid.tail.strip() != ''):
|
||||
kids.append(Xml2Json.convert_element(kid, preserve_whitespaces))
|
||||
if kid.tail and (preserve_whitespaces or kid.tail.strip() != ''):
|
||||
kids.append(kid.tail)
|
||||
res["children"] = kids
|
||||
return res
|
||||
|
||||
@@ -841,12 +841,12 @@ class View(openerpweb.Controller):
|
||||
context = req.session.eval_context(req.context)
|
||||
fvg = Model.fields_view_get(view_id, view_type, context, toolbar, submenu)
|
||||
# todo fme?: check that we should pass the evaluated context here
|
||||
self.process_view(req.session, fvg, context, transform)
|
||||
self.process_view(req.session, fvg, context, transform, (view_type == 'kanban'))
|
||||
if toolbar and transform:
|
||||
self.process_toolbar(req, fvg['toolbar'])
|
||||
return fvg
|
||||
|
||||
def process_view(self, session, fvg, context, transform):
|
||||
def process_view(self, session, fvg, context, transform, preserve_whitespaces=False):
|
||||
# depending on how it feels, xmlrpclib.ServerProxy can translate
|
||||
# XML-RPC strings to ``str`` or ``unicode``. ElementTree does not
|
||||
# enjoy unicode strings which can not be trivially converted to
|
||||
@@ -864,7 +864,7 @@ class View(openerpweb.Controller):
|
||||
xml = self.transform_view(arch, session, evaluation_context)
|
||||
else:
|
||||
xml = ElementTree.fromstring(arch)
|
||||
fvg['arch'] = web.common.xml2json.Xml2Json.convert_element(xml)
|
||||
fvg['arch'] = web.common.xml2json.Xml2Json.convert_element(xml, preserve_whitespaces)
|
||||
|
||||
for field in fvg['fields'].itervalues():
|
||||
if field.get('views'):
|
||||
@@ -1064,6 +1064,44 @@ class SearchView(View):
|
||||
}, context)
|
||||
return to_return
|
||||
|
||||
@openerpweb.jsonrequest
|
||||
def add_to_dashboard(self, req, menu_id, action_id, context_to_save, domain, view_mode, name=''):
|
||||
ctx = web.common.nonliterals.CompoundContext(context_to_save)
|
||||
ctx.session = req.session
|
||||
ctx = ctx.evaluate()
|
||||
domain = web.common.nonliterals.CompoundDomain(domain)
|
||||
domain.session = req.session
|
||||
domain = domain.evaluate()
|
||||
|
||||
dashboard_action = load_actions_from_ir_values(req, 'action', 'tree_but_open',
|
||||
[('ir.ui.menu', menu_id)], False)
|
||||
if dashboard_action:
|
||||
action = dashboard_action[0][2]
|
||||
if action['res_model'] == 'board.board' and action['views'][0][1] == 'form':
|
||||
# Maybe should check the content instead of model board.board ?
|
||||
view_id = action['views'][0][0]
|
||||
board = req.session.model(action['res_model']).fields_view_get(view_id, 'form')
|
||||
if board and 'arch' in board:
|
||||
xml = ElementTree.fromstring(board['arch'])
|
||||
column = xml.find('./board/column')
|
||||
if column:
|
||||
new_action = ElementTree.Element('action', {
|
||||
'name' : str(action_id),
|
||||
'string' : name,
|
||||
'view_mode' : view_mode,
|
||||
'context' : str(ctx),
|
||||
'domain' : str(domain)
|
||||
})
|
||||
column.insert(0, new_action)
|
||||
arch = ElementTree.tostring(xml, 'utf-8')
|
||||
return req.session.model('ir.ui.view.custom').create({
|
||||
'user_id': req.session._uid,
|
||||
'ref_id': view_id,
|
||||
'arch': arch
|
||||
}, req.session.eval_context(req.context))
|
||||
|
||||
return False
|
||||
|
||||
class Binary(openerpweb.Controller):
|
||||
_cp_path = "/web/binary"
|
||||
|
||||
@@ -1348,7 +1386,7 @@ class Export(View):
|
||||
|
||||
context = req.session.eval_context(req.context)
|
||||
Model = req.session.model(model)
|
||||
ids = ids or Model.search(domain, context=context)
|
||||
ids = ids or Model.search(domain, 0, False, False, context)
|
||||
|
||||
field_names = map(operator.itemgetter('name'), fields)
|
||||
import_data = Model.export_data(ids, field_names, context).get('datas',[])
|
||||
|
||||
@@ -0,0 +1,677 @@
|
||||
# Bengali translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-11-24 12:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Bengali <bn@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: 2011-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14376)\n"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:355
|
||||
msgid ""
|
||||
"Warning, the record has been modified, your changes will be discarded."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1659
|
||||
msgid "<em> Search More...</em>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1672
|
||||
#, python-format
|
||||
msgid "<em> Create \"<strong>%s</strong>\"</em>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1678
|
||||
msgid "<em> Create and Edit...</em>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/views.js:568
|
||||
msgid "You must choose at least one record."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/views.js:569
|
||||
msgid "Warning"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/views.js:609
|
||||
msgid "Translations"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/views.js:615
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "x"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{title}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{text}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "openerp.com"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Backup"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Restore"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Back to Login"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CREATE DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New database name:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Load Demonstration data:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Default language:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Admin password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "DROP DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "BACKUP DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "RESTORE DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "File:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CHANGE MASTER PASSWORD"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New master password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm new master password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"We think that daily job activities can be more intuitive, efficient, "
|
||||
"automated, .. and even fun."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP's vision to be:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Full featured"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Today's enterprise challenges are multiple. We provide one module for each "
|
||||
"need."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open Source"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"To Build a great product, we rely on the knowledge of thousands of "
|
||||
"contributors."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User Friendly"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"In order to be productive, people need clean and easy to use interface."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "LOGOUT"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "«"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "»"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_menu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_submenu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Hide this tip"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Disable all tips"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View#"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View labels"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Sidebar Relates"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Field"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ":"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate view"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "First"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Last"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "♻"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Edit"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create & Edit"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Duplicate"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Readonly/Editable"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<<"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "0"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "/"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Unhandled widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Search..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Uploading ..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save As"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Advanced Filter"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Filters --"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Actions --"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save Filter"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Manage Filters"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Filter Name:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "(Any existing filter with the same name will be replaced)"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Any of the following conditions must match"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "All the following conditions must match"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "None of the following conditions must match"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add condition"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & New"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Close"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"This wizard will export all data that matches the current search criteria to "
|
||||
"a CSV file.\n"
|
||||
" You can export all data or only the fields that can be "
|
||||
"reimported after modification."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Type:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Compatible Export"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export all Data"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Formats"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Available fields"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields to export"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save fields list"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove All"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid " "
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save as:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Saved exports:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Old Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "1. Import a .CSV file"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Select a .CSV file to import. If you need a sample of file to import,\n"
|
||||
" you should use the export tool with the \"Import Compatible\" option."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CSV File:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "2. Check your file format"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Options"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Does your file have titles?"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Separator:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delimiter:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Encoding:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "UTF-8"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Latin 1"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Lines to skip"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "The import failed due to:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Here is a preview of the file we could not import:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP Web"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP is a trademark of the"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Licenced under the terms of"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "GNU Affero General Public License"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "About OpenERP"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"is a free enterprise-scale software system that is designed to boost\n"
|
||||
" productivity and profit through data integration. It connects, "
|
||||
"improves and\n"
|
||||
" manages business processes in areas such as sales, finance, "
|
||||
"supply chain,\n"
|
||||
" project management, production, services, CRM, etc..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"The system is platform-independent, and can be installed on Windows, Mac OS "
|
||||
"X,\n"
|
||||
" and various Linux and other Unix-based distributions. Its "
|
||||
"architecture enables\n"
|
||||
" new functionality to be rapidly created, modifications to be "
|
||||
"made to a\n"
|
||||
" production system and migration to a new version to be "
|
||||
"straightforward."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Depending on your needs, OpenERP is available through a web or application "
|
||||
"client."
|
||||
msgstr ""
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-10-10 20:59+0000\n"
|
||||
"Last-Translator: Felix Schubert <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-12-03 10:42+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2011-11-21 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 14299)\n"
|
||||
"X-Launchpad-Export-Date: 2011-12-04 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:355
|
||||
msgid ""
|
||||
@@ -373,7 +373,7 @@ msgstr "Hinzufügen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Unhandled widget"
|
||||
msgstr ""
|
||||
msgstr "unbekanntes Oberflächenelement"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "?"
|
||||
|
||||
@@ -0,0 +1,677 @@
|
||||
# Croatian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-11-28 14:05+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: Croatian <hr@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: 2011-11-29 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 14399)\n"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:355
|
||||
msgid ""
|
||||
"Warning, the record has been modified, your changes will be discarded."
|
||||
msgstr "Upozorenje, zapis je promjenjen. Promjene se neće zapisati."
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1659
|
||||
msgid "<em> Search More...</em>"
|
||||
msgstr "<em> Traži dalje...</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1672
|
||||
#, python-format
|
||||
msgid "<em> Create \"<strong>%s</strong>\"</em>"
|
||||
msgstr "<em> Kreiraj \"<strong>%s</strong>\"</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1678
|
||||
msgid "<em> Create and Edit...</em>"
|
||||
msgstr "<em> Kreiraj i uredi...</em>"
|
||||
|
||||
#: addons/web/static/src/js/views.js:568
|
||||
msgid "You must choose at least one record."
|
||||
msgstr "Odaberite barem jedan zapis."
|
||||
|
||||
#: addons/web/static/src/js/views.js:569
|
||||
msgid "Warning"
|
||||
msgstr "Upozorenje"
|
||||
|
||||
#: addons/web/static/src/js/views.js:609
|
||||
msgid "Translations"
|
||||
msgstr "Prijevodi"
|
||||
|
||||
#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save"
|
||||
msgstr "Snimi"
|
||||
|
||||
#: addons/web/static/src/js/views.js:615
|
||||
msgid "Close"
|
||||
msgstr "Zatvori"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "x"
|
||||
msgstr "x"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{title}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{text}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "openerp.com"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Loading..."
|
||||
msgstr "Učitavanje..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create"
|
||||
msgstr "Kreiraj"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Drop"
|
||||
msgstr "Obriši"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Backup"
|
||||
msgstr "Arhiviranje/Backup"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Restore"
|
||||
msgstr "Obnovi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password"
|
||||
msgstr "Zaporka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Back to Login"
|
||||
msgstr "Nazad na prijavu"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CREATE DATABASE"
|
||||
msgstr "Nova baza podataka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master password:"
|
||||
msgstr "Glavna zaporka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New database name:"
|
||||
msgstr "Naziv nove baze podataka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Load Demonstration data:"
|
||||
msgstr "Učitaj demonstracijske podatke:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Default language:"
|
||||
msgstr "Zadani jezik:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Admin password:"
|
||||
msgstr "Lozinka administratora"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm password:"
|
||||
msgstr "Potvrda lozinke:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "DROP DATABASE"
|
||||
msgstr "Briši bazu podataka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database:"
|
||||
msgstr "Baza podataka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master Password:"
|
||||
msgstr "Glavna lozinka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "BACKUP DATABASE"
|
||||
msgstr "Backup baze podataka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "RESTORE DATABASE"
|
||||
msgstr "Obnovi bazu podatka (restore)"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "File:"
|
||||
msgstr "Datoteka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CHANGE MASTER PASSWORD"
|
||||
msgstr "Promjeni glavnu zaporku"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New master password:"
|
||||
msgstr "Nova glavna zaporka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm new master password:"
|
||||
msgstr "Potvrdi glavnu zaporku:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User:"
|
||||
msgstr "Korisnik:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password:"
|
||||
msgstr "Zaporka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database"
|
||||
msgstr "Baza podataka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Login"
|
||||
msgstr "Korisničko ime"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr "Neispravno korisničko ime ili lozinka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"We think that daily job activities can be more intuitive, efficient, "
|
||||
"automated, .. and even fun."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP's vision to be:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Full featured"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Today's enterprise challenges are multiple. We provide one module for each "
|
||||
"need."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open Source"
|
||||
msgstr "Otvorenog koda"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"To Build a great product, we rely on the knowledge of thousands of "
|
||||
"contributors."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User Friendly"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"In order to be productive, people need clean and easy to use interface."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "LOGOUT"
|
||||
msgstr "ODJAVA"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "«"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "»"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_menu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_submenu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Hide this tip"
|
||||
msgstr "Sakrij savjet"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Disable all tips"
|
||||
msgstr "Sakrij sve savjete"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View#"
|
||||
msgstr "Pogled#"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields"
|
||||
msgstr "Polja"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View labels"
|
||||
msgstr "Labele"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Sidebar Relates"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Field"
|
||||
msgstr "Polje"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate view"
|
||||
msgstr "Prevedi pogled"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate sidebar"
|
||||
msgstr "Prevedi sidebar"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delete"
|
||||
msgstr "Obriši"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "First"
|
||||
msgstr "Prvi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<"
|
||||
msgstr "<"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">"
|
||||
msgstr ">"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Last"
|
||||
msgstr "Posljednji"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "♻"
|
||||
msgstr "♻"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Edit"
|
||||
msgstr "Snimi i uredi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create & Edit"
|
||||
msgstr "Novi i uredi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New"
|
||||
msgstr "Novi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Duplicate"
|
||||
msgstr "Dupliciraj"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Readonly/Editable"
|
||||
msgstr "Čitanje/Pisanje"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<<"
|
||||
msgstr "<<"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "0"
|
||||
msgstr "0"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "/"
|
||||
msgstr "/"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">>"
|
||||
msgstr ">>"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add"
|
||||
msgstr "Dodaj"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Unhandled widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#"
|
||||
msgstr "#"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Done"
|
||||
msgstr "Izvršeno"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open..."
|
||||
msgstr "Otvori…"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create..."
|
||||
msgstr "Kreiraj..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Search..."
|
||||
msgstr "Traži…"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Uploading ..."
|
||||
msgstr "Učitavanje..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Select"
|
||||
msgstr "Odaberi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save As"
|
||||
msgstr "Spremi kao"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Clear"
|
||||
msgstr "Očisti"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Advanced Filter"
|
||||
msgstr "Napredni filter"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Filters --"
|
||||
msgstr "-- Filteri --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Actions --"
|
||||
msgstr "-- Akcije --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save Filter"
|
||||
msgstr "Spremi filter"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Manage Filters"
|
||||
msgstr "Uredi filtere"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Filter Name:"
|
||||
msgstr "Naziv"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "(Any existing filter with the same name will be replaced)"
|
||||
msgstr "(Zamjenit će postojeći filter istog naziva)"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Any of the following conditions must match"
|
||||
msgstr "Barem jedan od uvjeta zadovoljava"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "All the following conditions must match"
|
||||
msgstr "Svi uvjeti zadovoljavaju"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "None of the following conditions must match"
|
||||
msgstr "Niti jedan od uvjeta zadovoljava"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add condition"
|
||||
msgstr "Dodaj uvjet"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "and"
|
||||
msgstr "i"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Cancel"
|
||||
msgstr "Odustani"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & New"
|
||||
msgstr "Spremi i novi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Close"
|
||||
msgstr "Snimi i zatvori"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export"
|
||||
msgstr "Izvoz"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"This wizard will export all data that matches the current search criteria to "
|
||||
"a CSV file.\n"
|
||||
" You can export all data or only the fields that can be "
|
||||
"reimported after modification."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Type:"
|
||||
msgstr "Vrsta izvoza:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Compatible Export"
|
||||
msgstr "Izvoz kompatibilan uvozu"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export all Data"
|
||||
msgstr "Izvoz svih podataka"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Formats"
|
||||
msgstr "Formati izvoza"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Available fields"
|
||||
msgstr "Dostupna polja"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields to export"
|
||||
msgstr "Polja za izvoz"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save fields list"
|
||||
msgstr "Snimi popis polja"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove"
|
||||
msgstr "Ukloni"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove All"
|
||||
msgstr "Ukloni sve"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Name"
|
||||
msgstr "Naziv"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save as:"
|
||||
msgstr "Spremi kao:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Ok"
|
||||
msgstr "U redu"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Saved exports:"
|
||||
msgstr "Snimljeni izvozi"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Old Password:"
|
||||
msgstr "Stara lozinka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New Password:"
|
||||
msgstr "Nova lozinka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm Password:"
|
||||
msgstr "Potvrda lozinke:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import"
|
||||
msgstr "Uvoz"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "1. Import a .CSV file"
|
||||
msgstr "Uvezi .CSV datoteku"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Select a .CSV file to import. If you need a sample of file to import,\n"
|
||||
" you should use the export tool with the \"Import Compatible\" option."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CSV File:"
|
||||
msgstr "CSV datoteka:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "2. Check your file format"
|
||||
msgstr "2. Provjera formata datoteke"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Options"
|
||||
msgstr "Opcije uvoza"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Does your file have titles?"
|
||||
msgstr "Datoteka ima naslove"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Separator:"
|
||||
msgstr "Razdjelnik:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delimiter:"
|
||||
msgstr "Graničnik:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Encoding:"
|
||||
msgstr "Kodna stranica:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "UTF-8"
|
||||
msgstr "UTF-8"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Latin 1"
|
||||
msgstr "Latin 1"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Lines to skip"
|
||||
msgstr "Preskočiti linija"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "The import failed due to:"
|
||||
msgstr "Uvoz nije izvršen:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Here is a preview of the file we could not import:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP Web"
|
||||
msgstr "OpenERP Web"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Version"
|
||||
msgstr "Verzija"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved."
|
||||
msgstr "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP is a trademark of the"
|
||||
msgstr "OpenERP is a trademark of the"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr "OpenERP SA Company"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Licenced under the terms of"
|
||||
msgstr "Licenced under the terms of"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "GNU Affero General Public License"
|
||||
msgstr "GNU Affero General Public License"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "About OpenERP"
|
||||
msgstr "O OpenERP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr "OpenERP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"is a free enterprise-scale software system that is designed to boost\n"
|
||||
" productivity and profit through data integration. It connects, "
|
||||
"improves and\n"
|
||||
" manages business processes in areas such as sales, finance, "
|
||||
"supply chain,\n"
|
||||
" project management, production, services, CRM, etc..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"The system is platform-independent, and can be installed on Windows, Mac OS "
|
||||
"X,\n"
|
||||
" and various Linux and other Unix-based distributions. Its "
|
||||
"architecture enables\n"
|
||||
" new functionality to be rapidly created, modifications to be "
|
||||
"made to a\n"
|
||||
" production system and migration to a new version to be "
|
||||
"straightforward."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Depending on your needs, OpenERP is available through a web or application "
|
||||
"client."
|
||||
msgstr ""
|
||||
@@ -0,0 +1,694 @@
|
||||
# Dutch translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-12-01 13:56+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2011-12-02 05:27+0000\n"
|
||||
"X-Generator: Launchpad (build 14414)\n"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:355
|
||||
msgid ""
|
||||
"Warning, the record has been modified, your changes will be discarded."
|
||||
msgstr "Letop: het record is gewijzigd; uw wijzigingen gaan verloren."
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1659
|
||||
msgid "<em> Search More...</em>"
|
||||
msgstr "<em> Zoek verder...</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1672
|
||||
#, python-format
|
||||
msgid "<em> Create \"<strong>%s</strong>\"</em>"
|
||||
msgstr "<em> Maak \"<strong>%s</strong>\"</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1678
|
||||
msgid "<em> Create and Edit...</em>"
|
||||
msgstr "<em> Maak en wijzig...</em>"
|
||||
|
||||
#: addons/web/static/src/js/views.js:568
|
||||
msgid "You must choose at least one record."
|
||||
msgstr "U moet tenminste één record kiezen."
|
||||
|
||||
#: addons/web/static/src/js/views.js:569
|
||||
msgid "Warning"
|
||||
msgstr "Waarschuwing"
|
||||
|
||||
#: addons/web/static/src/js/views.js:609
|
||||
msgid "Translations"
|
||||
msgstr "Vertalingen"
|
||||
|
||||
#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save"
|
||||
msgstr "Opslaan"
|
||||
|
||||
#: addons/web/static/src/js/views.js:615
|
||||
msgid "Close"
|
||||
msgstr "Sluiten"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "x"
|
||||
msgstr "x"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{title}"
|
||||
msgstr "#{title}"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{text}"
|
||||
msgstr "#{text}"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Powered by"
|
||||
msgstr "Powered by"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "openerp.com"
|
||||
msgstr "openerp.com"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "."
|
||||
msgstr "."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Loading..."
|
||||
msgstr "Laden..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create"
|
||||
msgstr "Maken"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Drop"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Backup"
|
||||
msgstr "Backup"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Restore"
|
||||
msgstr "Terugzetten"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password"
|
||||
msgstr "Wachtwoord"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Back to Login"
|
||||
msgstr "Terug naar aanmelding"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CREATE DATABASE"
|
||||
msgstr "DATABASE MAKEN"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master password:"
|
||||
msgstr "Master wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New database name:"
|
||||
msgstr "Naam nieuwe database:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Load Demonstration data:"
|
||||
msgstr "Demonstratiegegevens laden:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Default language:"
|
||||
msgstr "Standaardtaal:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Admin password:"
|
||||
msgstr "Admin wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm password:"
|
||||
msgstr "Bevestig wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "DROP DATABASE"
|
||||
msgstr "DATABASE VERWIJDEREN"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database:"
|
||||
msgstr "Database:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master Password:"
|
||||
msgstr "Master wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "BACKUP DATABASE"
|
||||
msgstr "DATABASE BACKUP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "RESTORE DATABASE"
|
||||
msgstr "DATABASE TERUGZETTEN"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "File:"
|
||||
msgstr "Bestand:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CHANGE MASTER PASSWORD"
|
||||
msgstr "MASTER WACHTWOORD WIJZIGEN"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New master password:"
|
||||
msgstr "Nieuw master wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm new master password:"
|
||||
msgstr "Bevestig nieuw master wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User:"
|
||||
msgstr "Gebruiker:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password:"
|
||||
msgstr "Wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database"
|
||||
msgstr "Database"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Login"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr "Verkeerde gebruikersnaam of wachtwoord"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"We think that daily job activities can be more intuitive, efficient, "
|
||||
"automated, .. and even fun."
|
||||
msgstr ""
|
||||
"Wij denken dat dagelijks werk intuïtiever, efficiënter, automatischer kan "
|
||||
"zijn, ...en zelfs leuk."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP's vision to be:"
|
||||
msgstr "OpenERP's visie is:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Full featured"
|
||||
msgstr "Uitgebreide functionaliteit"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Today's enterprise challenges are multiple. We provide one module for each "
|
||||
"need."
|
||||
msgstr ""
|
||||
"Bedrijven kennen vandaag de dag veel uitdagingen. We hebben een module voor "
|
||||
"elke behoefte."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open Source"
|
||||
msgstr "Open Source"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"To Build a great product, we rely on the knowledge of thousands of "
|
||||
"contributors."
|
||||
msgstr ""
|
||||
"Om een prima product te bouwen, rekenen we op de kennis van duizenden "
|
||||
"bijdragers."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User Friendly"
|
||||
msgstr "Gebruikersvriendelijk"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"In order to be productive, people need clean and easy to use interface."
|
||||
msgstr ""
|
||||
"Om productief te zijn hebben mensen een net en simpel gebruikersinterface "
|
||||
"nodig."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "("
|
||||
msgstr "("
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ")"
|
||||
msgstr ")"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "LOGOUT"
|
||||
msgstr "AFMELDEN"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "«"
|
||||
msgstr "«"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "»"
|
||||
msgstr "»"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_menu_item"
|
||||
msgstr "oe_secondary_menu_item"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_submenu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Hide this tip"
|
||||
msgstr "Verberg deze tip"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Disable all tips"
|
||||
msgstr "Alle tips uitzetten"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View#"
|
||||
msgstr "View#"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields"
|
||||
msgstr "Velden"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View labels"
|
||||
msgstr "Weergave labels"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Sidebar Relates"
|
||||
msgstr "Sidebar koppelingen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Field"
|
||||
msgstr "Veld"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate view"
|
||||
msgstr "Vertaal weergave"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate sidebar"
|
||||
msgstr "Sidebar vertalen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delete"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "First"
|
||||
msgstr "Eerste"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<"
|
||||
msgstr "<"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">"
|
||||
msgstr ">"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Last"
|
||||
msgstr "Laatste"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "♻"
|
||||
msgstr "♻"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Edit"
|
||||
msgstr "Opslaan & Wijzigen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create & Edit"
|
||||
msgstr "Maken & Wijzigen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New"
|
||||
msgstr "Nieuw"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Duplicate"
|
||||
msgstr "Dupliceren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Readonly/Editable"
|
||||
msgstr "Leesbaar/Wijzigbaar"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<<"
|
||||
msgstr "<<"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "0"
|
||||
msgstr "0"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "/"
|
||||
msgstr "/"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">>"
|
||||
msgstr ">>"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add"
|
||||
msgstr "Toevoegen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Unhandled widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "?"
|
||||
msgstr "?"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#"
|
||||
msgstr "#"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Done"
|
||||
msgstr "Gereed"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open..."
|
||||
msgstr "Openen..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create..."
|
||||
msgstr "Aanmaken…"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Search..."
|
||||
msgstr "Zoeken…"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "..."
|
||||
msgstr "..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Uploading ..."
|
||||
msgstr "Uploaden ..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Select"
|
||||
msgstr "Selecteren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save As"
|
||||
msgstr "Opslaan als"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Clear"
|
||||
msgstr "Wissen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Advanced Filter"
|
||||
msgstr "Geavanceerd filter"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Filters --"
|
||||
msgstr "-- Filters --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Actions --"
|
||||
msgstr "-- Acties --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save Filter"
|
||||
msgstr "Filter opslaan"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Manage Filters"
|
||||
msgstr "Filters beheren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Filter Name:"
|
||||
msgstr "Filternaam:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "(Any existing filter with the same name will be replaced)"
|
||||
msgstr "(Een bestaand filter met dezelfde naam wordt vervangen)"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Any of the following conditions must match"
|
||||
msgstr "Één van de volgende voorwaarden moet voldoen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "All the following conditions must match"
|
||||
msgstr "Alle volgende voorwaarden moeten voldoen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "None of the following conditions must match"
|
||||
msgstr "Geen van de volgende voorwaarden mag voldoen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add condition"
|
||||
msgstr "Voorwaarde toevoegen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "and"
|
||||
msgstr "en"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & New"
|
||||
msgstr "Opslaan & Nieuw"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Close"
|
||||
msgstr "Opslaan & Sluiten"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export"
|
||||
msgstr "Exporteren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"This wizard will export all data that matches the current search criteria to "
|
||||
"a CSV file.\n"
|
||||
" You can export all data or only the fields that can be "
|
||||
"reimported after modification."
|
||||
msgstr ""
|
||||
"Deze assistent exporteert alle gegevens die aan de huidige zoekcriteria "
|
||||
"voldoen naar een CSV bestand.\n"
|
||||
" U kunt alle gegevens exporteren of alleen de velden die na "
|
||||
"wijziging opnieuw kunnen worden geïmporteerd."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Type:"
|
||||
msgstr "Soort export:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Compatible Export"
|
||||
msgstr "Import compatibele export"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export all Data"
|
||||
msgstr "Alle gegevens exporteren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Formats"
|
||||
msgstr "Export Formaten"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Available fields"
|
||||
msgstr "Beschikbare velden"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields to export"
|
||||
msgstr "Te exporteren velden"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save fields list"
|
||||
msgstr "Veldenlijst opslaan"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove All"
|
||||
msgstr "Alles verwijderen"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Name"
|
||||
msgstr "Naam"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save as:"
|
||||
msgstr "Opslaan als:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Ok"
|
||||
msgstr "Ok"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Saved exports:"
|
||||
msgstr "Opgeslagen exports:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Old Password:"
|
||||
msgstr "Oud wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New Password:"
|
||||
msgstr "Nieuw wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm Password:"
|
||||
msgstr "Bevestig wachtwoord:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import"
|
||||
msgstr "Importeren"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "1. Import a .CSV file"
|
||||
msgstr "1. Importeer een .CSV bestand"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Select a .CSV file to import. If you need a sample of file to import,\n"
|
||||
" you should use the export tool with the \"Import Compatible\" option."
|
||||
msgstr ""
|
||||
"Selecteer een .CSV bestand voor import. Voor een voorbeeld van een "
|
||||
"importbestand,\n"
|
||||
" kunt u de export tool gebruiken met de \"Import Compatibel\" optie."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CSV File:"
|
||||
msgstr "CSV bestand:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "2. Check your file format"
|
||||
msgstr "2. Controleer uw bestandsformaat"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Options"
|
||||
msgstr "Importeeropties"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Does your file have titles?"
|
||||
msgstr "Heeft uw bestand titels?"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Separator:"
|
||||
msgstr "Scheidingsteken:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delimiter:"
|
||||
msgstr "Veldscheidingsteken:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Encoding:"
|
||||
msgstr "Codering:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "UTF-8"
|
||||
msgstr "UTF-8"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Latin 1"
|
||||
msgstr "Latin 1"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Lines to skip"
|
||||
msgstr "Regels om over te slaan"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "The import failed due to:"
|
||||
msgstr "Importeren mislukt wegens:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Here is a preview of the file we could not import:"
|
||||
msgstr "Hier is een voorbeeld van het bestand dat we niet konden importeren:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP Web"
|
||||
msgstr "OpenERP Web"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Version"
|
||||
msgstr "Versie"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved."
|
||||
msgstr "Copyright © 2011-VANDAAG OpenERP SA. Alle rechten voorbehouden."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP is a trademark of the"
|
||||
msgstr "OpenERP is een handelsmerk van"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr "OpenERP SA"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Licenced under the terms of"
|
||||
msgstr "Gelicentieerd onder voorwaarden van"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "GNU Affero General Public License"
|
||||
msgstr "GNU Affero General Public License"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "About OpenERP"
|
||||
msgstr "Over OpenERP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr "OpenERP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"is a free enterprise-scale software system that is designed to boost\n"
|
||||
" productivity and profit through data integration. It connects, "
|
||||
"improves and\n"
|
||||
" manages business processes in areas such as sales, finance, "
|
||||
"supply chain,\n"
|
||||
" project management, production, services, CRM, etc..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"The system is platform-independent, and can be installed on Windows, Mac OS "
|
||||
"X,\n"
|
||||
" and various Linux and other Unix-based distributions. Its "
|
||||
"architecture enables\n"
|
||||
" new functionality to be rapidly created, modifications to be "
|
||||
"made to a\n"
|
||||
" production system and migration to a new version to be "
|
||||
"straightforward."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Depending on your needs, OpenERP is available through a web or application "
|
||||
"client."
|
||||
msgstr ""
|
||||
"Naar behoefte is OpenERP als webapplicatie of als client-serverapplicatie "
|
||||
"beschikbaar."
|
||||
@@ -0,0 +1,677 @@
|
||||
# Chinese (Traditional) translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-12-04 16:06+0000\n"
|
||||
"Last-Translator: Walter Cheuk <wwycheuk@gmail.com>\n"
|
||||
"Language-Team: Chinese (Traditional) <zh_TW@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: 2011-12-05 05:44+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:355
|
||||
msgid ""
|
||||
"Warning, the record has been modified, your changes will be discarded."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1659
|
||||
msgid "<em> Search More...</em>"
|
||||
msgstr "<em> 搜尋更多...</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1672
|
||||
#, python-format
|
||||
msgid "<em> Create \"<strong>%s</strong>\"</em>"
|
||||
msgstr "<em> 建立「<strong>%s</strong>」</em>"
|
||||
|
||||
#: addons/web/static/src/js/view_form.js:1678
|
||||
msgid "<em> Create and Edit...</em>"
|
||||
msgstr "<em> 建立並編輯...</em>"
|
||||
|
||||
#: addons/web/static/src/js/views.js:568
|
||||
msgid "You must choose at least one record."
|
||||
msgstr "要選擇至少一個紀錄。"
|
||||
|
||||
#: addons/web/static/src/js/views.js:569
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
|
||||
#: addons/web/static/src/js/views.js:609
|
||||
msgid "Translations"
|
||||
msgstr "翻譯"
|
||||
|
||||
#: addons/web/static/src/js/views.js:614 addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save"
|
||||
msgstr "儲存"
|
||||
|
||||
#: addons/web/static/src/js/views.js:615
|
||||
msgid "Close"
|
||||
msgstr "關閉"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "x"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{title}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#{text}"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Powered by"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "openerp.com"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Loading..."
|
||||
msgstr "載入..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create"
|
||||
msgstr "建立"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Drop"
|
||||
msgstr "捨棄"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Backup"
|
||||
msgstr "備份"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Restore"
|
||||
msgstr "還原"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password"
|
||||
msgstr "密碼"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Back to Login"
|
||||
msgstr "返回登入畫面"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CREATE DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master password:"
|
||||
msgstr "主密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New database name:"
|
||||
msgstr "新資料庫名稱:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Load Demonstration data:"
|
||||
msgstr "載入演示資料:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Default language:"
|
||||
msgstr "預設語言:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Admin password:"
|
||||
msgstr "管理員密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm password:"
|
||||
msgstr "確認密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "DROP DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database:"
|
||||
msgstr "資料庫:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Master Password:"
|
||||
msgstr "主密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "BACKUP DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "RESTORE DATABASE"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "File:"
|
||||
msgstr "檔案:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CHANGE MASTER PASSWORD"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New master password:"
|
||||
msgstr "新主密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm new master password:"
|
||||
msgstr "確認新主密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User:"
|
||||
msgstr "使用者:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Password:"
|
||||
msgstr "密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Database"
|
||||
msgstr "資料庫"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Login"
|
||||
msgstr "登入"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr "使用者名稱或密碼不對"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"We think that daily job activities can be more intuitive, efficient, "
|
||||
"automated, .. and even fun."
|
||||
msgstr "我們認為日常工作可以更直觀、更有效率、更自動化......以至更有趣。"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP's vision to be:"
|
||||
msgstr "OpenERP 的願景為:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Full featured"
|
||||
msgstr "完整功能"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Today's enterprise challenges are multiple. We provide one module for each "
|
||||
"need."
|
||||
msgstr "今時今日企業面對的問題很多。我們為每件工作皆提供處理的模組。"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open Source"
|
||||
msgstr "開源碼"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"To Build a great product, we rely on the knowledge of thousands of "
|
||||
"contributors."
|
||||
msgstr "要製作好用的產品,我們靠的是成千上萬的自願貢獻者。"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "User Friendly"
|
||||
msgstr "易用"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"In order to be productive, people need clean and easy to use interface."
|
||||
msgstr "要工作更有效率,人們要更簡潔、更易用的介面。"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "("
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ")"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "LOGOUT"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "«"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "»"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_menu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "oe_secondary_submenu_item"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Hide this tip"
|
||||
msgstr "隱藏此提示"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Disable all tips"
|
||||
msgstr "停用所有提示"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View#"
|
||||
msgstr "檢視#"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields"
|
||||
msgstr "欄位"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "View labels"
|
||||
msgstr "檢視標籤"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Sidebar Relates"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Field"
|
||||
msgstr "欄位"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ":"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate view"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Translate sidebar"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delete"
|
||||
msgstr "刪除"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "First"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Last"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "♻"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Edit"
|
||||
msgstr "儲存並編輯"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create & Edit"
|
||||
msgstr "建立並編輯"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New"
|
||||
msgstr "新增"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Duplicate"
|
||||
msgstr "製作複本"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Readonly/Editable"
|
||||
msgstr "唯讀/可編輯"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "<<"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "0"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "/"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ">>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Unhandled widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "?"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "#"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Done"
|
||||
msgstr "完成"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Open..."
|
||||
msgstr "開啟..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Create..."
|
||||
msgstr "建立..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Search..."
|
||||
msgstr "搜尋..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Uploading ..."
|
||||
msgstr "上載 ..."
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Select"
|
||||
msgstr "選取"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save As"
|
||||
msgstr "另存為"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Clear"
|
||||
msgstr "清除"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Advanced Filter"
|
||||
msgstr "進階篩選"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Filters --"
|
||||
msgstr "-- 篩選 --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "-- Actions --"
|
||||
msgstr "-- 動作 --"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save Filter"
|
||||
msgstr "儲存篩選"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Manage Filters"
|
||||
msgstr "管理篩選"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Filter Name:"
|
||||
msgstr "篩選名稱:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "(Any existing filter with the same name will be replaced)"
|
||||
msgstr "(會取代所有同名篩選)"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Any of the following conditions must match"
|
||||
msgstr "以下任何條件都要符合"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "All the following conditions must match"
|
||||
msgstr "以下所有條件都要符合"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "None of the following conditions must match"
|
||||
msgstr "以下無一條件需要符合"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Add condition"
|
||||
msgstr "添加條件"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "and"
|
||||
msgstr "和"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & New"
|
||||
msgstr "儲存並新增"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save & Close"
|
||||
msgstr "儲存並關閉"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export"
|
||||
msgstr "匯出"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"This wizard will export all data that matches the current search criteria to "
|
||||
"a CSV file.\n"
|
||||
" You can export all data or only the fields that can be "
|
||||
"reimported after modification."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Type:"
|
||||
msgstr "匯出類型:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Compatible Export"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export all Data"
|
||||
msgstr "匯出所有資料"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Export Formats"
|
||||
msgstr "匯出格式"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Available fields"
|
||||
msgstr "可提供欄位"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Fields to export"
|
||||
msgstr "要匯出欄位"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save fields list"
|
||||
msgstr "儲存欄位清單"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove"
|
||||
msgstr "移除"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Remove All"
|
||||
msgstr "全部移除"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Name"
|
||||
msgstr "名稱"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid " "
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Save as:"
|
||||
msgstr "另存為:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Ok"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Saved exports:"
|
||||
msgstr "已儲存匯出:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Old Password:"
|
||||
msgstr "舊密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "New Password:"
|
||||
msgstr "新密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Confirm Password:"
|
||||
msgstr "確認密碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import"
|
||||
msgstr "匯入"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "1. Import a .CSV file"
|
||||
msgstr "1. 匯入 .CSV 檔"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Select a .CSV file to import. If you need a sample of file to import,\n"
|
||||
" you should use the export tool with the \"Import Compatible\" option."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "CSV File:"
|
||||
msgstr "CSV 檔:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "2. Check your file format"
|
||||
msgstr "2. 檢查檔案格式"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Import Options"
|
||||
msgstr "匯入選項"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Does your file have titles?"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Separator:"
|
||||
msgstr "分隔符號:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Delimiter:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Encoding:"
|
||||
msgstr "編碼:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "UTF-8"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Latin 1"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Lines to skip"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "The import failed due to:"
|
||||
msgstr "匯入失敗,原因為:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Here is a preview of the file we could not import:"
|
||||
msgstr "無法匯入檔案的預覽:"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP Web"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Version"
|
||||
msgstr "版本"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Copyright © 2011-TODAY OpenERP SA. All Rights Reserved."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP is a trademark of the"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP SA Company"
|
||||
msgstr "OpenERP SA 公司"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "Licenced under the terms of"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "GNU Affero General Public License"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "About OpenERP"
|
||||
msgstr "有關 OpenERP"
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"is a free enterprise-scale software system that is designed to boost\n"
|
||||
" productivity and profit through data integration. It connects, "
|
||||
"improves and\n"
|
||||
" manages business processes in areas such as sales, finance, "
|
||||
"supply chain,\n"
|
||||
" project management, production, services, CRM, etc..."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"The system is platform-independent, and can be installed on Windows, Mac OS "
|
||||
"X,\n"
|
||||
" and various Linux and other Unix-based distributions. Its "
|
||||
"architecture enables\n"
|
||||
" new functionality to be rapidly created, modifications to be "
|
||||
"made to a\n"
|
||||
" production system and migration to a new version to be "
|
||||
"straightforward."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web/static/src/xml/base.xml:0
|
||||
msgid ""
|
||||
"Depending on your needs, OpenERP is available through a web or application "
|
||||
"client."
|
||||
msgstr ""
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
function active_tiptip(){
|
||||
opts.enter.call(this);
|
||||
var org_title = typeof opts.content === 'function' ? opts.content() : opts.content;
|
||||
var org_title = typeof opts.content === 'function' ? opts.content.call(org_elem, opts) : opts.content;
|
||||
org_title = org_title || org_elem.attr(opts.attribute);
|
||||
tiptip_content.html(org_title);
|
||||
tiptip_holder.hide().removeAttr("class").css("margin","0");
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*!
|
||||
* jQuery JavaScript Library v1.6.2
|
||||
* jQuery JavaScript Library v1.6.4
|
||||
* http://jquery.com/
|
||||
*
|
||||
* Copyright 2011, John Resig
|
||||
@@ -11,7 +11,7 @@
|
||||
* Copyright 2011, The Dojo Foundation
|
||||
* Released under the MIT, BSD, and GPL Licenses.
|
||||
*
|
||||
* Date: Thu Jun 30 14:16:56 2011 -0400
|
||||
* Date: Mon Sep 12 18:54:48 2011 -0400
|
||||
*/
|
||||
(function( window, undefined ) {
|
||||
|
||||
@@ -37,8 +37,8 @@ var jQuery = function( selector, context ) {
|
||||
rootjQuery,
|
||||
|
||||
// A simple way to check for HTML strings or ID strings
|
||||
// (both of which we optimize for)
|
||||
quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
|
||||
// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
|
||||
quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
|
||||
|
||||
// Check if a string has a non-whitespace character in it
|
||||
rnotwhite = /\S/,
|
||||
@@ -66,11 +66,12 @@ var jQuery = function( selector, context ) {
|
||||
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
|
||||
|
||||
// Matches dashed string for camelizing
|
||||
rdashAlpha = /-([a-z])/ig,
|
||||
rdashAlpha = /-([a-z]|[0-9])/ig,
|
||||
rmsPrefix = /^-ms-/,
|
||||
|
||||
// Used by jQuery.camelCase as callback to replace()
|
||||
fcamelCase = function( all, letter ) {
|
||||
return letter.toUpperCase();
|
||||
return ( letter + "" ).toUpperCase();
|
||||
},
|
||||
|
||||
// Keep a UserAgent string for use with jQuery.browser
|
||||
@@ -212,7 +213,7 @@ jQuery.fn = jQuery.prototype = {
|
||||
selector: "",
|
||||
|
||||
// The current version of jQuery being used
|
||||
jquery: "1.6.2",
|
||||
jquery: "1.6.4",
|
||||
|
||||
// The default length of a jQuery object is 0
|
||||
length: 0,
|
||||
@@ -521,10 +522,15 @@ jQuery.extend({
|
||||
return false;
|
||||
}
|
||||
|
||||
// Not own constructor property must be Object
|
||||
if ( obj.constructor &&
|
||||
!hasOwn.call(obj, "constructor") &&
|
||||
!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
|
||||
try {
|
||||
// Not own constructor property must be Object
|
||||
if ( obj.constructor &&
|
||||
!hasOwn.call(obj, "constructor") &&
|
||||
!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
|
||||
return false;
|
||||
}
|
||||
} catch ( e ) {
|
||||
// IE8,9 Will throw exceptions on certain host objects #9897
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -574,24 +580,23 @@ jQuery.extend({
|
||||
},
|
||||
|
||||
// Cross-browser xml parsing
|
||||
// (xml & tmp used internally)
|
||||
parseXML: function( data , xml , tmp ) {
|
||||
|
||||
if ( window.DOMParser ) { // Standard
|
||||
tmp = new DOMParser();
|
||||
xml = tmp.parseFromString( data , "text/xml" );
|
||||
} else { // IE
|
||||
xml = new ActiveXObject( "Microsoft.XMLDOM" );
|
||||
xml.async = "false";
|
||||
xml.loadXML( data );
|
||||
parseXML: function( data ) {
|
||||
var xml, tmp;
|
||||
try {
|
||||
if ( window.DOMParser ) { // Standard
|
||||
tmp = new DOMParser();
|
||||
xml = tmp.parseFromString( data , "text/xml" );
|
||||
} else { // IE
|
||||
xml = new ActiveXObject( "Microsoft.XMLDOM" );
|
||||
xml.async = "false";
|
||||
xml.loadXML( data );
|
||||
}
|
||||
} catch( e ) {
|
||||
xml = undefined;
|
||||
}
|
||||
|
||||
tmp = xml.documentElement;
|
||||
|
||||
if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
|
||||
if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) {
|
||||
jQuery.error( "Invalid XML: " + data );
|
||||
}
|
||||
|
||||
return xml;
|
||||
},
|
||||
|
||||
@@ -611,10 +616,10 @@ jQuery.extend({
|
||||
}
|
||||
},
|
||||
|
||||
// Converts a dashed string to camelCased string;
|
||||
// Used by both the css and data modules
|
||||
// Convert dashed to camelCase; used by the css and data modules
|
||||
// Microsoft forgot to hump their vendor prefix (#9572)
|
||||
camelCase: function( string ) {
|
||||
return string.replace( rdashAlpha, fcamelCase );
|
||||
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
|
||||
},
|
||||
|
||||
nodeName: function( elem, name ) {
|
||||
@@ -699,6 +704,9 @@ jQuery.extend({
|
||||
},
|
||||
|
||||
inArray: function( elem, array ) {
|
||||
if ( !array ) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ( indexOf ) {
|
||||
return indexOf.call( array, elem );
|
||||
@@ -1071,7 +1079,7 @@ jQuery.extend({
|
||||
if ( returned && jQuery.isFunction( returned.promise ) ) {
|
||||
returned.promise().then( newDefer.resolve, newDefer.reject );
|
||||
} else {
|
||||
newDefer[ action ]( returned );
|
||||
newDefer[ action + "With" ]( this === deferred ? newDefer : this, [ returned ] );
|
||||
}
|
||||
});
|
||||
} else {
|
||||
@@ -1173,6 +1181,7 @@ jQuery.support = (function() {
|
||||
div.setAttribute("className", "t");
|
||||
div.innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
|
||||
|
||||
|
||||
all = div.getElementsByTagName( "*" );
|
||||
a = div.getElementsByTagName( "a" )[ 0 ];
|
||||
|
||||
@@ -1293,13 +1302,14 @@ jQuery.support = (function() {
|
||||
width: 0,
|
||||
height: 0,
|
||||
border: 0,
|
||||
margin: 0
|
||||
margin: 0,
|
||||
background: "none"
|
||||
};
|
||||
if ( body ) {
|
||||
jQuery.extend( testElementStyle, {
|
||||
position: "absolute",
|
||||
left: -1000,
|
||||
top: -1000
|
||||
left: "-1000px",
|
||||
top: "-1000px"
|
||||
});
|
||||
}
|
||||
for ( i in testElementStyle ) {
|
||||
@@ -1404,7 +1414,7 @@ jQuery.boxModel = jQuery.support.boxModel;
|
||||
|
||||
|
||||
var rbrace = /^(?:\{.*\}|\[.*\])$/,
|
||||
rmultiDash = /([a-z])([A-Z])/g;
|
||||
rmultiDash = /([A-Z])/g;
|
||||
|
||||
jQuery.extend({
|
||||
cache: {},
|
||||
@@ -1436,7 +1446,9 @@ jQuery.extend({
|
||||
return;
|
||||
}
|
||||
|
||||
var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
|
||||
var thisCache, ret,
|
||||
internalKey = jQuery.expando,
|
||||
getByName = typeof name === "string",
|
||||
|
||||
// We have to handle DOM nodes and JS objects differently because IE6-7
|
||||
// can't GC object references properly across the DOM-JS boundary
|
||||
@@ -1452,7 +1464,7 @@ jQuery.extend({
|
||||
|
||||
// Avoid doing any more work than we need to when trying to get data on an
|
||||
// object that has no data at all
|
||||
if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
|
||||
if ( (!id || (pvt && id && (cache[ id ] && !cache[ id ][ internalKey ]))) && getByName && data === undefined ) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1511,10 +1523,24 @@ jQuery.extend({
|
||||
return thisCache[ internalKey ] && thisCache[ internalKey ].events;
|
||||
}
|
||||
|
||||
return getByName ?
|
||||
// Check for both converted-to-camel and non-converted data property names
|
||||
thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] :
|
||||
thisCache;
|
||||
// Check for both converted-to-camel and non-converted data property names
|
||||
// If a data property was specified
|
||||
if ( getByName ) {
|
||||
|
||||
// First Try to find as-is property data
|
||||
ret = thisCache[ name ];
|
||||
|
||||
// Test for null|undefined property data
|
||||
if ( ret == null ) {
|
||||
|
||||
// Try to find the camelCased property
|
||||
ret = thisCache[ jQuery.camelCase( name ) ];
|
||||
}
|
||||
} else {
|
||||
ret = thisCache;
|
||||
}
|
||||
|
||||
return ret;
|
||||
},
|
||||
|
||||
removeData: function( elem, name, pvt /* Internal Use Only */ ) {
|
||||
@@ -1522,7 +1548,12 @@ jQuery.extend({
|
||||
return;
|
||||
}
|
||||
|
||||
var internalKey = jQuery.expando, isNode = elem.nodeType,
|
||||
var thisCache,
|
||||
|
||||
// Reference to internal data cache key
|
||||
internalKey = jQuery.expando,
|
||||
|
||||
isNode = elem.nodeType,
|
||||
|
||||
// See jQuery.data for more information
|
||||
cache = isNode ? jQuery.cache : elem,
|
||||
@@ -1537,9 +1568,16 @@ jQuery.extend({
|
||||
}
|
||||
|
||||
if ( name ) {
|
||||
var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
|
||||
|
||||
thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
|
||||
|
||||
if ( thisCache ) {
|
||||
|
||||
// Support interoperable removal of hyphenated or camelcased keys
|
||||
if ( !thisCache[ name ] ) {
|
||||
name = jQuery.camelCase( name );
|
||||
}
|
||||
|
||||
delete thisCache[ name ];
|
||||
|
||||
// If there is no data left in the cache, we want to continue
|
||||
@@ -1566,7 +1604,8 @@ jQuery.extend({
|
||||
// Browsers that fail expando deletion also refuse to delete expandos on
|
||||
// the window, but it will allow it on all other JS objects; other browsers
|
||||
// don't care
|
||||
if ( jQuery.support.deleteExpando || cache != window ) {
|
||||
// Ensure that `cache` is not a window object #10080
|
||||
if ( jQuery.support.deleteExpando || !cache.setInterval ) {
|
||||
delete cache[ id ];
|
||||
} else {
|
||||
cache[ id ] = null;
|
||||
@@ -1690,7 +1729,8 @@ function dataAttr( elem, key, data ) {
|
||||
// If nothing was found internally, try to fetch any
|
||||
// data from the HTML5 data-* attribute
|
||||
if ( data === undefined && elem.nodeType === 1 ) {
|
||||
var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase();
|
||||
|
||||
var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
|
||||
|
||||
data = elem.getAttribute( name );
|
||||
|
||||
@@ -1910,8 +1950,7 @@ var rclass = /[\n\t\r]/g,
|
||||
rfocusable = /^(?:button|input|object|select|textarea)$/i,
|
||||
rclickable = /^a(?:rea)?$/i,
|
||||
rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
|
||||
rinvalidChar = /\:|^on/,
|
||||
formHook, boolHook;
|
||||
nodeHook, boolHook;
|
||||
|
||||
jQuery.fn.extend({
|
||||
attr: function( name, value ) {
|
||||
@@ -2049,7 +2088,7 @@ jQuery.fn.extend({
|
||||
hasClass: function( selector ) {
|
||||
var className = " " + selector + " ";
|
||||
for ( var i = 0, l = this.length; i < l; i++ ) {
|
||||
if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
|
||||
if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -2229,14 +2268,11 @@ jQuery.extend({
|
||||
if ( !hooks ) {
|
||||
// Use boolHook for boolean attributes
|
||||
if ( rboolean.test( name ) ) {
|
||||
|
||||
hooks = boolHook;
|
||||
|
||||
// Use formHook for forms and if the name contains certain characters
|
||||
} else if ( formHook && name !== "className" &&
|
||||
(jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
|
||||
|
||||
hooks = formHook;
|
||||
// Use nodeHook if available( IE6/7 )
|
||||
} else if ( nodeHook ) {
|
||||
hooks = nodeHook;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2273,14 +2309,9 @@ jQuery.extend({
|
||||
var propName;
|
||||
if ( elem.nodeType === 1 ) {
|
||||
name = jQuery.attrFix[ name ] || name;
|
||||
|
||||
if ( jQuery.support.getSetAttribute ) {
|
||||
// Use removeAttribute in browsers that support it
|
||||
elem.removeAttribute( name );
|
||||
} else {
|
||||
jQuery.attr( elem, name, "" );
|
||||
elem.removeAttributeNode( elem.getAttributeNode( name ) );
|
||||
}
|
||||
|
||||
jQuery.attr( elem, name, "" );
|
||||
elem.removeAttribute( name );
|
||||
|
||||
// Set corresponding property to false for boolean attributes
|
||||
if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
|
||||
@@ -2308,33 +2339,20 @@ jQuery.extend({
|
||||
}
|
||||
}
|
||||
},
|
||||
tabIndex: {
|
||||
get: function( elem ) {
|
||||
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
|
||||
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
|
||||
var attributeNode = elem.getAttributeNode("tabIndex");
|
||||
|
||||
return attributeNode && attributeNode.specified ?
|
||||
parseInt( attributeNode.value, 10 ) :
|
||||
rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
|
||||
0 :
|
||||
undefined;
|
||||
}
|
||||
},
|
||||
// Use the value property for back compat
|
||||
// Use the formHook for button elements in IE6/7 (#1954)
|
||||
// Use the nodeHook for button elements in IE6/7 (#1954)
|
||||
value: {
|
||||
get: function( elem, name ) {
|
||||
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
||||
return formHook.get( elem, name );
|
||||
if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
|
||||
return nodeHook.get( elem, name );
|
||||
}
|
||||
return name in elem ?
|
||||
elem.value :
|
||||
null;
|
||||
},
|
||||
set: function( elem, value, name ) {
|
||||
if ( formHook && jQuery.nodeName( elem, "button" ) ) {
|
||||
return formHook.set( elem, value, name );
|
||||
if ( nodeHook && jQuery.nodeName( elem, "button" ) ) {
|
||||
return nodeHook.set( elem, value, name );
|
||||
}
|
||||
// Does not return so that setAttribute is also used
|
||||
elem.value = value;
|
||||
@@ -2383,7 +2401,7 @@ jQuery.extend({
|
||||
}
|
||||
|
||||
} else {
|
||||
if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {
|
||||
if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
|
||||
return ret;
|
||||
|
||||
} else {
|
||||
@@ -2392,14 +2410,33 @@ jQuery.extend({
|
||||
}
|
||||
},
|
||||
|
||||
propHooks: {}
|
||||
propHooks: {
|
||||
tabIndex: {
|
||||
get: function( elem ) {
|
||||
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
|
||||
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
|
||||
var attributeNode = elem.getAttributeNode("tabindex");
|
||||
|
||||
return attributeNode && attributeNode.specified ?
|
||||
parseInt( attributeNode.value, 10 ) :
|
||||
rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
|
||||
0 :
|
||||
undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Add the tabindex propHook to attrHooks for back-compat
|
||||
jQuery.attrHooks.tabIndex = jQuery.propHooks.tabIndex;
|
||||
|
||||
// Hook for boolean attributes
|
||||
boolHook = {
|
||||
get: function( elem, name ) {
|
||||
// Align boolean attributes with corresponding properties
|
||||
return jQuery.prop( elem, name ) ?
|
||||
// Fall back to attribute presence where some booleans are not supported
|
||||
var attrNode;
|
||||
return jQuery.prop( elem, name ) === true || ( attrNode = elem.getAttributeNode( name ) ) && attrNode.nodeValue !== false ?
|
||||
name.toLowerCase() :
|
||||
undefined;
|
||||
},
|
||||
@@ -2425,12 +2462,10 @@ boolHook = {
|
||||
|
||||
// IE6/7 do not support getting/setting some attributes with get/setAttribute
|
||||
if ( !jQuery.support.getSetAttribute ) {
|
||||
|
||||
// propFix is more comprehensive and contains all fixes
|
||||
jQuery.attrFix = jQuery.propFix;
|
||||
|
||||
// Use this for any attribute on a form in IE6/7
|
||||
formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = {
|
||||
// Use this for any attribute in IE6/7
|
||||
// This fixes almost every IE6/7 issue
|
||||
nodeHook = jQuery.valHooks.button = {
|
||||
get: function( elem, name ) {
|
||||
var ret;
|
||||
ret = elem.getAttributeNode( name );
|
||||
@@ -2440,13 +2475,13 @@ if ( !jQuery.support.getSetAttribute ) {
|
||||
undefined;
|
||||
},
|
||||
set: function( elem, value, name ) {
|
||||
// Check form objects in IE (multiple bugs related)
|
||||
// Only use nodeValue if the attribute node exists on the form
|
||||
// Set the existing or create a new attribute node
|
||||
var ret = elem.getAttributeNode( name );
|
||||
if ( ret ) {
|
||||
ret.nodeValue = value;
|
||||
return value;
|
||||
if ( !ret ) {
|
||||
ret = document.createAttribute( name );
|
||||
elem.setAttributeNode( ret );
|
||||
}
|
||||
return (ret.nodeValue = value + "");
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2505,6 +2540,7 @@ if ( !jQuery.support.optSelected ) {
|
||||
parent.parentNode.selectedIndex;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -3235,8 +3271,9 @@ if ( !jQuery.support.submitBubbles ) {
|
||||
setup: function( data, namespaces ) {
|
||||
if ( !jQuery.nodeName( this, "form" ) ) {
|
||||
jQuery.event.add(this, "click.specialSubmit", function( e ) {
|
||||
// Avoid triggering error on non-existent type attribute in IE VML (#7071)
|
||||
var elem = e.target,
|
||||
type = elem.type;
|
||||
type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
|
||||
|
||||
if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
|
||||
trigger( "submit", this, arguments );
|
||||
@@ -3245,7 +3282,7 @@ if ( !jQuery.support.submitBubbles ) {
|
||||
|
||||
jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
|
||||
var elem = e.target,
|
||||
type = elem.type;
|
||||
type = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.type : "";
|
||||
|
||||
if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
|
||||
trigger( "submit", this, arguments );
|
||||
@@ -3270,7 +3307,8 @@ if ( !jQuery.support.changeBubbles ) {
|
||||
var changeFilters,
|
||||
|
||||
getVal = function( elem ) {
|
||||
var type = elem.type, val = elem.value;
|
||||
var type = jQuery.nodeName( elem, "input" ) ? elem.type : "",
|
||||
val = elem.value;
|
||||
|
||||
if ( type === "radio" || type === "checkbox" ) {
|
||||
val = elem.checked;
|
||||
@@ -5295,12 +5333,17 @@ jQuery.fn.extend({
|
||||
// Determine the position of an element within
|
||||
// the matched set of elements
|
||||
index: function( elem ) {
|
||||
if ( !elem || typeof elem === "string" ) {
|
||||
return jQuery.inArray( this[0],
|
||||
// If it receives a string, the selector is used
|
||||
// If it receives nothing, the siblings are used
|
||||
elem ? jQuery( elem ) : this.parent().children() );
|
||||
|
||||
// No argument, return index in parent
|
||||
if ( !elem ) {
|
||||
return ( this[0] && this[0].parentNode ) ? this.prevAll().length : -1;
|
||||
}
|
||||
|
||||
// index in selector
|
||||
if ( typeof elem === "string" ) {
|
||||
return jQuery.inArray( this[0], jQuery( elem ) );
|
||||
}
|
||||
|
||||
// Locate the position of the desired element
|
||||
return jQuery.inArray(
|
||||
// If it receives a jQuery object, the first element is used
|
||||
@@ -6048,7 +6091,10 @@ jQuery.extend({
|
||||
// with an element if you are cloning the body and one of the
|
||||
// elements on the page has a name or id of "length"
|
||||
for ( i = 0; srcElements[i]; ++i ) {
|
||||
cloneFixAttributes( srcElements[i], destElements[i] );
|
||||
// Ensure that the destination node is not null; Fixes #9587
|
||||
if ( destElements[i] ) {
|
||||
cloneFixAttributes( srcElements[i], destElements[i] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6248,14 +6294,14 @@ function evalScript( i, elem ) {
|
||||
|
||||
|
||||
|
||||
|
||||
var ralpha = /alpha\([^)]*\)/i,
|
||||
ropacity = /opacity=([^)]*)/,
|
||||
// fixed for IE9, see #8346
|
||||
rupper = /([A-Z]|^ms)/g,
|
||||
rnumpx = /^-?\d+(?:px)?$/i,
|
||||
rnum = /^-?\d/,
|
||||
rrelNum = /^[+\-]=/,
|
||||
rrelNumFilter = /[^+\-\.\de]+/g,
|
||||
rrelNum = /^([\-+])=([\-+.\de]+)/,
|
||||
|
||||
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
|
||||
cssWidth = [ "Left", "Right" ],
|
||||
@@ -6332,18 +6378,18 @@ jQuery.extend({
|
||||
if ( value !== undefined ) {
|
||||
type = typeof value;
|
||||
|
||||
// Make sure that NaN and null values aren't set. See: #7116
|
||||
if ( type === "number" && isNaN( value ) || value == null ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// convert relative number strings (+= or -=) to relative numbers. #7345
|
||||
if ( type === "string" && rrelNum.test( value ) ) {
|
||||
value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );
|
||||
if ( type === "string" && (ret = rrelNum.exec( value )) ) {
|
||||
value = ( +( ret[1] + 1) * +ret[2] ) + parseFloat( jQuery.css( elem, name ) );
|
||||
// Fixes bug #9237
|
||||
type = "number";
|
||||
}
|
||||
|
||||
// Make sure that NaN and null values aren't set. See: #7116
|
||||
if ( value == null || type === "number" && isNaN( value ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If a number was passed in, add 'px' to the (except for certain CSS properties)
|
||||
if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
|
||||
value += "px";
|
||||
@@ -6459,18 +6505,29 @@ if ( !jQuery.support.opacity ) {
|
||||
|
||||
set: function( elem, value ) {
|
||||
var style = elem.style,
|
||||
currentStyle = elem.currentStyle;
|
||||
currentStyle = elem.currentStyle,
|
||||
opacity = jQuery.isNaN( value ) ? "" : "alpha(opacity=" + value * 100 + ")",
|
||||
filter = currentStyle && currentStyle.filter || style.filter || "";
|
||||
|
||||
// IE has trouble with opacity if it does not have layout
|
||||
// Force it by setting the zoom level
|
||||
style.zoom = 1;
|
||||
|
||||
// Set the alpha filter to set the opacity
|
||||
var opacity = jQuery.isNaN( value ) ?
|
||||
"" :
|
||||
"alpha(opacity=" + value * 100 + ")",
|
||||
filter = currentStyle && currentStyle.filter || style.filter || "";
|
||||
// if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652
|
||||
if ( value >= 1 && jQuery.trim( filter.replace( ralpha, "" ) ) === "" ) {
|
||||
|
||||
// Setting style.filter to null, "" & " " still leave "filter:" in the cssText
|
||||
// if "filter:" is present at all, clearType is disabled, we want to avoid this
|
||||
// style.removeAttribute is IE Only, but so apparently is this code path...
|
||||
style.removeAttribute( "filter" );
|
||||
|
||||
// if there there is no filter style applied in a css rule, we are done
|
||||
if ( currentStyle && !currentStyle.filter ) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// otherwise, set new filter values
|
||||
style.filter = ralpha.test( filter ) ?
|
||||
filter.replace( ralpha, opacity ) :
|
||||
filter + " " + opacity;
|
||||
@@ -6625,9 +6682,9 @@ var r20 = /%20/g,
|
||||
rCRLF = /\r?\n/g,
|
||||
rhash = /#.*$/,
|
||||
rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
|
||||
rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
|
||||
rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
|
||||
// #7653, #8125, #8152: local protocol detection
|
||||
rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
|
||||
rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,
|
||||
rnoContent = /^(?:GET|HEAD)$/,
|
||||
rprotocol = /^\/\//,
|
||||
rquery = /\?/,
|
||||
@@ -6662,7 +6719,10 @@ var r20 = /%20/g,
|
||||
ajaxLocation,
|
||||
|
||||
// Document location segments
|
||||
ajaxLocParts;
|
||||
ajaxLocParts,
|
||||
|
||||
// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression
|
||||
allTypes = ["*/"] + ["*"];
|
||||
|
||||
// #8138, IE may throw an exception when accessing
|
||||
// a field from window.location if document.domain has been set
|
||||
@@ -6755,6 +6815,22 @@ function inspectPrefiltersOrTransports( structure, options, originalOptions, jqX
|
||||
return selection;
|
||||
}
|
||||
|
||||
// A special extend for ajax options
|
||||
// that takes "flat" options (not to be deep extended)
|
||||
// Fixes #9887
|
||||
function ajaxExtend( target, src ) {
|
||||
var key, deep,
|
||||
flatOptions = jQuery.ajaxSettings.flatOptions || {};
|
||||
for( key in src ) {
|
||||
if ( src[ key ] !== undefined ) {
|
||||
( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];
|
||||
}
|
||||
}
|
||||
if ( deep ) {
|
||||
jQuery.extend( true, target, deep );
|
||||
}
|
||||
}
|
||||
|
||||
jQuery.fn.extend({
|
||||
load: function( url, params, callback ) {
|
||||
if ( typeof url !== "string" && _load ) {
|
||||
@@ -6898,23 +6974,16 @@ jQuery.extend({
|
||||
// Creates a full fledged settings object into target
|
||||
// with both ajaxSettings and settings fields.
|
||||
// If target is omitted, writes into ajaxSettings.
|
||||
ajaxSetup: function ( target, settings ) {
|
||||
if ( !settings ) {
|
||||
// Only one parameter, we extend ajaxSettings
|
||||
settings = target;
|
||||
target = jQuery.extend( true, jQuery.ajaxSettings, settings );
|
||||
ajaxSetup: function( target, settings ) {
|
||||
if ( settings ) {
|
||||
// Building a settings object
|
||||
ajaxExtend( target, jQuery.ajaxSettings );
|
||||
} else {
|
||||
// target was provided, we extend into it
|
||||
jQuery.extend( true, target, jQuery.ajaxSettings, settings );
|
||||
}
|
||||
// Flatten fields we don't want deep extended
|
||||
for( var field in { context: 1, url: 1 } ) {
|
||||
if ( field in settings ) {
|
||||
target[ field ] = settings[ field ];
|
||||
} else if( field in jQuery.ajaxSettings ) {
|
||||
target[ field ] = jQuery.ajaxSettings[ field ];
|
||||
}
|
||||
// Extending ajaxSettings
|
||||
settings = target;
|
||||
target = jQuery.ajaxSettings;
|
||||
}
|
||||
ajaxExtend( target, settings );
|
||||
return target;
|
||||
},
|
||||
|
||||
@@ -6942,7 +7011,7 @@ jQuery.extend({
|
||||
html: "text/html",
|
||||
text: "text/plain",
|
||||
json: "application/json, text/javascript",
|
||||
"*": "*/*"
|
||||
"*": allTypes
|
||||
},
|
||||
|
||||
contents: {
|
||||
@@ -6972,6 +7041,15 @@ jQuery.extend({
|
||||
|
||||
// Parse text as xml
|
||||
"text xml": jQuery.parseXML
|
||||
},
|
||||
|
||||
// For options that shouldn't be deep extended:
|
||||
// you can add your own custom options here if
|
||||
// and when you create one that shouldn't be
|
||||
// deep extended (see ajaxExtend)
|
||||
flatOptions: {
|
||||
context: true,
|
||||
url: true
|
||||
}
|
||||
},
|
||||
|
||||
@@ -7082,7 +7160,7 @@ jQuery.extend({
|
||||
// Callback for when everything is done
|
||||
// It is defined here because jslint complains if it is declared
|
||||
// at the end of the function (which would be more logical and readable)
|
||||
function done( status, statusText, responses, headers ) {
|
||||
function done( status, nativeStatusText, responses, headers ) {
|
||||
|
||||
// Called once
|
||||
if ( state === 2 ) {
|
||||
@@ -7105,11 +7183,12 @@ jQuery.extend({
|
||||
responseHeadersString = headers || "";
|
||||
|
||||
// Set readyState
|
||||
jqXHR.readyState = status ? 4 : 0;
|
||||
jqXHR.readyState = status > 0 ? 4 : 0;
|
||||
|
||||
var isSuccess,
|
||||
success,
|
||||
error,
|
||||
statusText = nativeStatusText,
|
||||
response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
|
||||
lastModified,
|
||||
etag;
|
||||
@@ -7161,7 +7240,7 @@ jQuery.extend({
|
||||
|
||||
// Set data for the fake xhr object
|
||||
jqXHR.status = status;
|
||||
jqXHR.statusText = statusText;
|
||||
jqXHR.statusText = "" + ( nativeStatusText || statusText );
|
||||
|
||||
// Success/Error
|
||||
if ( isSuccess ) {
|
||||
@@ -7183,7 +7262,7 @@ jQuery.extend({
|
||||
completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
|
||||
|
||||
if ( fireGlobals ) {
|
||||
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
|
||||
globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] );
|
||||
// Handle the global AJAX counter
|
||||
if ( !( --jQuery.active ) ) {
|
||||
jQuery.event.trigger( "ajaxStop" );
|
||||
@@ -7264,6 +7343,8 @@ jQuery.extend({
|
||||
// If data is available, append data to url
|
||||
if ( s.data ) {
|
||||
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
|
||||
// #9682: remove data so that it's not used in an eventual retry
|
||||
delete s.data;
|
||||
}
|
||||
|
||||
// Get ifModifiedKey before adding the anti-cache parameter
|
||||
@@ -7301,7 +7382,7 @@ jQuery.extend({
|
||||
jqXHR.setRequestHeader(
|
||||
"Accept",
|
||||
s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
|
||||
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
|
||||
s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) :
|
||||
s.accepts[ "*" ]
|
||||
);
|
||||
|
||||
@@ -7347,7 +7428,7 @@ jQuery.extend({
|
||||
transport.send( requestHeaders, done );
|
||||
} catch (e) {
|
||||
// Propagate exception as error if not done
|
||||
if ( status < 2 ) {
|
||||
if ( state < 2 ) {
|
||||
done( -1, e );
|
||||
// Simply rethrow otherwise
|
||||
} else {
|
||||
@@ -7995,10 +8076,7 @@ var elemdisplay = {},
|
||||
// opacity animations
|
||||
[ "opacity" ]
|
||||
],
|
||||
fxNow,
|
||||
requestAnimationFrame = window.webkitRequestAnimationFrame ||
|
||||
window.mozRequestAnimationFrame ||
|
||||
window.oRequestAnimationFrame;
|
||||
fxNow;
|
||||
|
||||
jQuery.fn.extend({
|
||||
show: function( speed, easing, callback ) {
|
||||
@@ -8374,8 +8452,7 @@ jQuery.fx.prototype = {
|
||||
// Start an animation from one number to another
|
||||
custom: function( from, to, unit ) {
|
||||
var self = this,
|
||||
fx = jQuery.fx,
|
||||
raf;
|
||||
fx = jQuery.fx;
|
||||
|
||||
this.startTime = fxNow || createFxNow();
|
||||
this.start = from;
|
||||
@@ -8391,20 +8468,7 @@ jQuery.fx.prototype = {
|
||||
t.elem = this.elem;
|
||||
|
||||
if ( t() && jQuery.timers.push(t) && !timerId ) {
|
||||
// Use requestAnimationFrame instead of setInterval if available
|
||||
if ( requestAnimationFrame ) {
|
||||
timerId = true;
|
||||
raf = function() {
|
||||
// When timerId gets set to null at any point, this stops
|
||||
if ( timerId ) {
|
||||
requestAnimationFrame( raf );
|
||||
fx.tick();
|
||||
}
|
||||
};
|
||||
requestAnimationFrame( raf );
|
||||
} else {
|
||||
timerId = setInterval( fx.tick, fx.interval );
|
||||
}
|
||||
timerId = setInterval( fx.tick, fx.interval );
|
||||
}
|
||||
},
|
||||
|
||||
@@ -8947,9 +9011,10 @@ jQuery.each([ "Height", "Width" ], function( i, name ) {
|
||||
if ( jQuery.isWindow( elem ) ) {
|
||||
// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
|
||||
// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
|
||||
var docElemProp = elem.document.documentElement[ "client" + name ];
|
||||
var docElemProp = elem.document.documentElement[ "client" + name ],
|
||||
body = elem.document.body;
|
||||
return elem.document.compatMode === "CSS1Compat" && docElemProp ||
|
||||
elem.document.body[ "client" + name ] || docElemProp;
|
||||
body && body[ "client" + name ] || docElemProp;
|
||||
|
||||
// Get document width or height
|
||||
} else if ( elem.nodeType === 9 ) {
|
||||
@@ -1,248 +0,0 @@
|
||||
/** Font Family and Sizes */
|
||||
|
||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
#qunit-tests {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
/** Resets */
|
||||
|
||||
#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/** Header */
|
||||
|
||||
#qunit-header {
|
||||
padding: 0.5em 0 0.5em 1em;
|
||||
|
||||
color: #8699a4;
|
||||
background-color: #0d3349;
|
||||
|
||||
font-size: 1.5em;
|
||||
line-height: 1em;
|
||||
font-weight: normal;
|
||||
|
||||
border-radius: 15px 15px 0 0;
|
||||
-moz-border-radius: 15px 15px 0 0;
|
||||
-webkit-border-top-right-radius: 15px;
|
||||
-webkit-border-top-left-radius: 15px;
|
||||
}
|
||||
|
||||
#qunit-header a {
|
||||
text-decoration: none;
|
||||
color: #c2ccd1;
|
||||
}
|
||||
|
||||
#qunit-header a:hover,
|
||||
#qunit-header a:focus {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#qunit-banner {
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar {
|
||||
padding: 0.5em 0 0.5em 2em;
|
||||
color: #5E740B;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#qunit-userAgent {
|
||||
padding: 0.5em 0 0.5em 2.5em;
|
||||
background-color: #2b81af;
|
||||
color: #fff;
|
||||
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||
}
|
||||
|
||||
/** Tests: Pass/Fail */
|
||||
|
||||
#qunit-tests {
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests li {
|
||||
padding: 0.4em 0.5em 0.4em 2.5em;
|
||||
border-bottom: 1px solid #fff;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#qunit-tests li strong {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#qunit-tests li a {
|
||||
padding: 0.5em;
|
||||
color: #c2ccd1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#qunit-tests li a:hover,
|
||||
#qunit-tests li a:focus {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#qunit-tests ol {
|
||||
margin-top: 0.5em;
|
||||
padding: 0.5em;
|
||||
|
||||
background-color: #fff;
|
||||
|
||||
border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
-webkit-border-radius: 15px;
|
||||
|
||||
box-shadow: inset 0px 2px 13px #999;
|
||||
-moz-box-shadow: inset 0px 2px 13px #999;
|
||||
-webkit-box-shadow: inset 0px 2px 13px #999;
|
||||
}
|
||||
|
||||
#qunit-tests table {
|
||||
border-collapse: collapse;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
#qunit-tests th {
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
padding: 0 .5em 0 0;
|
||||
}
|
||||
|
||||
#qunit-tests td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#qunit-tests pre {
|
||||
margin: 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#qunit-tests del {
|
||||
background-color: #e0f2be;
|
||||
color: #374e0c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#qunit-tests ins {
|
||||
background-color: #ffcaca;
|
||||
color: #500;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*** Test Counts */
|
||||
|
||||
#qunit-tests b.counts {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#qunit-tests b.passed {
|
||||
color: #5E740B;
|
||||
}
|
||||
|
||||
#qunit-tests b.failed {
|
||||
color: #710909;
|
||||
}
|
||||
|
||||
#qunit-tests li li {
|
||||
margin: 0.5em;
|
||||
padding: 0.4em 0.5em 0.4em 0.5em;
|
||||
background-color: #fff;
|
||||
border-bottom: none;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
/*** Passing Styles */
|
||||
|
||||
#qunit-tests li li.pass {
|
||||
color: #5E740B;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #C6E746;
|
||||
}
|
||||
|
||||
#qunit-tests .pass {
|
||||
color: #528CE0;
|
||||
background-color: #D2E0E6;
|
||||
}
|
||||
|
||||
#qunit-tests .pass .test-name {
|
||||
color: #366097;
|
||||
}
|
||||
|
||||
#qunit-tests .pass .test-actual,
|
||||
#qunit-tests .pass .test-expected {
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
#qunit-banner.qunit-pass {
|
||||
background-color: #C6E746;
|
||||
}
|
||||
|
||||
/*** Failing Styles */
|
||||
|
||||
#qunit-tests li li.fail {
|
||||
color: #710909;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #EE5757;
|
||||
}
|
||||
|
||||
#qunit-tests > li:last-child {
|
||||
border-radius: 0 0 15px 15px;
|
||||
-moz-border-radius: 0 0 15px 15px;
|
||||
-webkit-border-bottom-right-radius: 15px;
|
||||
-webkit-border-bottom-left-radius: 15px;
|
||||
}
|
||||
|
||||
#qunit-tests .fail {
|
||||
color: #000000;
|
||||
background-color: #EE5757;
|
||||
}
|
||||
|
||||
#qunit-tests .fail .test-name,
|
||||
#qunit-tests .fail .module-name {
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#qunit-tests .fail .test-actual {
|
||||
color: #EE5757;
|
||||
}
|
||||
|
||||
#qunit-tests .fail .test-expected {
|
||||
color: green;
|
||||
}
|
||||
|
||||
#qunit-banner.qunit-fail {
|
||||
background-color: #EE5757;
|
||||
}
|
||||
|
||||
/** Result */
|
||||
|
||||
#qunit-testresult {
|
||||
padding: 0.5em 0.5em 0.5em 2.5em;
|
||||
|
||||
color: #2b81af;
|
||||
background-color: #D2E0E6;
|
||||
|
||||
border-bottom: 1px solid white;
|
||||
}
|
||||
|
||||
/** Fixture */
|
||||
|
||||
#qunit-fixture {
|
||||
position: absolute;
|
||||
top: -10000px;
|
||||
left: -10000px;
|
||||
}
|
||||
@@ -0,0 +1,226 @@
|
||||
/**
|
||||
* QUnit v1.2.0 - A JavaScript Unit Testing Framework
|
||||
*
|
||||
* http://docs.jquery.com/QUnit
|
||||
*
|
||||
* Copyright (c) 2011 John Resig, Jörn Zaefferer
|
||||
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
||||
* or GPL (GPL-LICENSE.txt) licenses.
|
||||
*/
|
||||
|
||||
/** Font Family and Sizes */
|
||||
|
||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
||||
#qunit-tests { font-size: smaller; }
|
||||
|
||||
|
||||
/** Resets */
|
||||
|
||||
#qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/** Header */
|
||||
|
||||
#qunit-header {
|
||||
padding: 0.5em 0 0.5em 1em;
|
||||
|
||||
color: #8699a4;
|
||||
background-color: #0d3349;
|
||||
|
||||
font-size: 1.5em;
|
||||
line-height: 1em;
|
||||
font-weight: normal;
|
||||
|
||||
border-radius: 15px 15px 0 0;
|
||||
-moz-border-radius: 15px 15px 0 0;
|
||||
-webkit-border-top-right-radius: 15px;
|
||||
-webkit-border-top-left-radius: 15px;
|
||||
}
|
||||
|
||||
#qunit-header a {
|
||||
text-decoration: none;
|
||||
color: #c2ccd1;
|
||||
}
|
||||
|
||||
#qunit-header a:hover,
|
||||
#qunit-header a:focus {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#qunit-banner {
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar {
|
||||
padding: 0.5em 0 0.5em 2em;
|
||||
color: #5E740B;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
#qunit-userAgent {
|
||||
padding: 0.5em 0 0.5em 2.5em;
|
||||
background-color: #2b81af;
|
||||
color: #fff;
|
||||
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||
}
|
||||
|
||||
|
||||
/** Tests: Pass/Fail */
|
||||
|
||||
#qunit-tests {
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests li {
|
||||
padding: 0.4em 0.5em 0.4em 2.5em;
|
||||
border-bottom: 1px solid #fff;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#qunit-tests li strong {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#qunit-tests li a {
|
||||
padding: 0.5em;
|
||||
color: #c2ccd1;
|
||||
text-decoration: none;
|
||||
}
|
||||
#qunit-tests li a:hover,
|
||||
#qunit-tests li a:focus {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#qunit-tests ol {
|
||||
margin-top: 0.5em;
|
||||
padding: 0.5em;
|
||||
|
||||
background-color: #fff;
|
||||
|
||||
border-radius: 15px;
|
||||
-moz-border-radius: 15px;
|
||||
-webkit-border-radius: 15px;
|
||||
|
||||
box-shadow: inset 0px 2px 13px #999;
|
||||
-moz-box-shadow: inset 0px 2px 13px #999;
|
||||
-webkit-box-shadow: inset 0px 2px 13px #999;
|
||||
}
|
||||
|
||||
#qunit-tests table {
|
||||
border-collapse: collapse;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
#qunit-tests th {
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
padding: 0 .5em 0 0;
|
||||
}
|
||||
|
||||
#qunit-tests td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#qunit-tests pre {
|
||||
margin: 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#qunit-tests del {
|
||||
background-color: #e0f2be;
|
||||
color: #374e0c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#qunit-tests ins {
|
||||
background-color: #ffcaca;
|
||||
color: #500;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*** Test Counts */
|
||||
|
||||
#qunit-tests b.counts { color: black; }
|
||||
#qunit-tests b.passed { color: #5E740B; }
|
||||
#qunit-tests b.failed { color: #710909; }
|
||||
|
||||
#qunit-tests li li {
|
||||
margin: 0.5em;
|
||||
padding: 0.4em 0.5em 0.4em 0.5em;
|
||||
background-color: #fff;
|
||||
border-bottom: none;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
/*** Passing Styles */
|
||||
|
||||
#qunit-tests li li.pass {
|
||||
color: #5E740B;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #C6E746;
|
||||
}
|
||||
|
||||
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
|
||||
#qunit-tests .pass .test-name { color: #366097; }
|
||||
|
||||
#qunit-tests .pass .test-actual,
|
||||
#qunit-tests .pass .test-expected { color: #999999; }
|
||||
|
||||
#qunit-banner.qunit-pass { background-color: #C6E746; }
|
||||
|
||||
/*** Failing Styles */
|
||||
|
||||
#qunit-tests li li.fail {
|
||||
color: #710909;
|
||||
background-color: #fff;
|
||||
border-left: 26px solid #EE5757;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
#qunit-tests > li:last-child {
|
||||
border-radius: 0 0 15px 15px;
|
||||
-moz-border-radius: 0 0 15px 15px;
|
||||
-webkit-border-bottom-right-radius: 15px;
|
||||
-webkit-border-bottom-left-radius: 15px;
|
||||
}
|
||||
|
||||
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
|
||||
#qunit-tests .fail .test-name,
|
||||
#qunit-tests .fail .module-name { color: #000000; }
|
||||
|
||||
#qunit-tests .fail .test-actual { color: #EE5757; }
|
||||
#qunit-tests .fail .test-expected { color: green; }
|
||||
|
||||
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
||||
|
||||
|
||||
/** Result */
|
||||
|
||||
#qunit-testresult {
|
||||
padding: 0.5em 0.5em 0.5em 2.5em;
|
||||
|
||||
color: #2b81af;
|
||||
background-color: #D2E0E6;
|
||||
|
||||
border-bottom: 1px solid white;
|
||||
}
|
||||
|
||||
/** Fixture */
|
||||
|
||||
#qunit-fixture {
|
||||
position: absolute;
|
||||
top: -10000px;
|
||||
left: -10000px;
|
||||
}
|
||||
@@ -373,6 +373,12 @@ QWeb2.Engine = (function() {
|
||||
if (!this.jQuery) {
|
||||
return this.tools.exception("Can't extend template " + template + " without jQuery");
|
||||
}
|
||||
var template_dest = this.templates[template],
|
||||
msie_trololo = false;
|
||||
if (template_dest.xml !== undefined) {
|
||||
template_dest = this.jQuery(template_dest.xml);
|
||||
msie_trololo = true;
|
||||
}
|
||||
for (var i = 0, ilen = extend_node.childNodes.length; i < ilen; i++) {
|
||||
var child = extend_node.childNodes[i];
|
||||
if (child.nodeType === 1) {
|
||||
@@ -382,7 +388,7 @@ QWeb2.Engine = (function() {
|
||||
target,
|
||||
error_msg = "Error while extending template '" + template;
|
||||
if (jquery) {
|
||||
target = this.jQuery(jquery, this.templates[template]);
|
||||
target = this.jQuery(jquery, template_dest);
|
||||
} else if (xpath) {
|
||||
// NOTE: due to the XPath implementation, extending a template will only work once
|
||||
// when using XPath because XPathResult won't match objects with other constructor than 'Element'
|
||||
@@ -415,6 +421,9 @@ QWeb2.Engine = (function() {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (msie_trololo) {
|
||||
this.templates[template] = template_dest[0];
|
||||
}
|
||||
}
|
||||
});
|
||||
return Engine;
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
/* TODO: separate openerp web client page css from openerp views css */
|
||||
body.openerp {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
@@ -6,10 +5,17 @@ body.openerp {
|
||||
min-width: 1000px;
|
||||
overflow-y: scroll;
|
||||
font-size: 80%;
|
||||
font-family: Ubuntu, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
body.openerp, .openerp textarea, .openerp input, .openerp select, .openerp option, .openerp button, .openerp .ui-widget {
|
||||
font-family: Ubuntu, Helvetica, sans-serif;
|
||||
font-size:85%;
|
||||
}
|
||||
|
||||
.openerp .view-manager-main-content {
|
||||
width: 100%;
|
||||
padding: 0 8px 8px 8px;
|
||||
}
|
||||
|
||||
.oe_box {
|
||||
@@ -29,6 +35,17 @@ body.openerp, .openerp textarea, .openerp input, .openerp select, .openerp optio
|
||||
.openerp .oe-listview .oe-number {
|
||||
text-align: right !important;
|
||||
}
|
||||
.oe-listview-header-columns {
|
||||
background: #444; /* Old browsers */
|
||||
background: -moz-linear-gradient(top, #ffffff 0%, #d1d1d1 100%); /* FF3.6+ */
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#d1d1d1)); /* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #ffffff 0%,#d1d1d1 100%); /* Chrome10+,Safari5.1+ */
|
||||
background: -o-linear-gradient(top, #ffffff 0%,#d1d1d1 100%); /* Opera11.10+ */
|
||||
background: -ms-linear-gradient(top, #ffffff 0%,#d1d1d1 100%); /* IE10+ */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#d1d1d1',GradientType=0 ); /* IE6-9 */
|
||||
background: linear-gradient(top, #ffffff 0%,#d1d1d1 100%); /* W3C */
|
||||
}
|
||||
|
||||
.openerp .oe_hide {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -261,7 +278,7 @@ label.error {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#BD5E54', endColorstr='#90322A',GradientType=0 ); /* IE6-9 */
|
||||
background: linear-gradient(top, #bd5e54 0%,#90322a 60%); /* W3C */
|
||||
|
||||
border: 1px solid #6E2A24;
|
||||
border: 1px solid #5E1A14;
|
||||
border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
@@ -272,7 +289,7 @@ label.error {
|
||||
text-transform: uppercase;
|
||||
line-height: 20px;
|
||||
font-weight: bold;
|
||||
font-size: 85%;
|
||||
font-size: 75%;
|
||||
|
||||
white-space: nowrap;
|
||||
}
|
||||
@@ -331,6 +348,7 @@ label.error {
|
||||
height: 100%;
|
||||
display: block;
|
||||
position: relative;
|
||||
font-size:85%;
|
||||
}
|
||||
.openerp .secondary_menu.oe_folded {
|
||||
width: 20px;
|
||||
@@ -371,6 +389,10 @@ label.error {
|
||||
white-space: nowrap;
|
||||
color: white;
|
||||
text-shadow: 0 1px 0 #333;
|
||||
|
||||
}
|
||||
.openerp a.oe_secondary_submenu_item {
|
||||
padding: 0 5px 2px 10px;
|
||||
}
|
||||
.openerp a.oe_secondary_submenu_item:hover,
|
||||
.openerp a.oe_secondary_submenu_item.leaf.active {
|
||||
@@ -383,7 +405,7 @@ label.error {
|
||||
background: -ms-linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,#5a5858 96%); /* IE10+ */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#5A5858',GradientType=0 ); /* IE6-9 */
|
||||
background: linear-gradient(top, #ffffff 0%,#d8d8d8 11%,#afafaf 86%,#333333 91%,#5a5858 96%); /* W3C */
|
||||
padding: 0 5px 2px 5px;
|
||||
padding: 0 5px 2px 10px;
|
||||
line-height: 20px;
|
||||
color: #3f3d3d;
|
||||
text-decoration: none;
|
||||
@@ -431,6 +453,8 @@ label.error {
|
||||
margin: 0;
|
||||
padding: 4px 10px;
|
||||
text-shadow: 0 1px 0 #111111;
|
||||
font-weight:normal;
|
||||
line-height:14px;
|
||||
}
|
||||
.openerp .header_title small {
|
||||
color: #ccc;
|
||||
@@ -464,15 +488,11 @@ label.error {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#929292', endColorstr='#4D4D4D',GradientType=0 );
|
||||
}
|
||||
.openerp .header_corner ul.block {
|
||||
/*float: left;*/
|
||||
list-style: none;
|
||||
height: 34px;
|
||||
margin: 0;
|
||||
padding: 0 0 0 2px;
|
||||
/*background: url(../images/top-sep-a.png) no-repeat;*/
|
||||
line-height: 33px;
|
||||
/*font-size: 1em;*/
|
||||
/*text-transform: uppercase;*/
|
||||
}
|
||||
.openerp .header_corner ul.block li {
|
||||
float: left;
|
||||
@@ -498,6 +518,10 @@ label.error {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.openerp .logout {
|
||||
font-size:80%;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
.openerp div.oe_footer {
|
||||
background: none repeat scroll 0 0 #CCCCCC;
|
||||
@@ -530,7 +554,7 @@ label.error {
|
||||
}
|
||||
|
||||
.openerp h2.oe_view_title {
|
||||
font-size: 175%;
|
||||
font-size: 110%;
|
||||
font-weight: normal;
|
||||
margin: 2px 0;
|
||||
color: #252424;
|
||||
@@ -541,12 +565,15 @@ label.error {
|
||||
.openerp .oe_vm_switch {
|
||||
float: right;
|
||||
}
|
||||
.openerp .oe-view-manager-header .oe_view_title {
|
||||
font-size:150%;
|
||||
}
|
||||
|
||||
/* SearchView */
|
||||
.openerp .filter_label, .openerp .filter_icon {
|
||||
border: 1px solid #666;
|
||||
border-left-width: 0;
|
||||
background: #F0F0F0;
|
||||
border: 1px solid #999;
|
||||
background: -moz-linear-gradient(top, #F0F0F0 0%, #C0C0C0 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F0F0F0), color-stop(100%,#C0C0C0));
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F0F0F0', endColorstr='#C0C0C0',GradientType=0 );
|
||||
@@ -558,13 +585,13 @@ label.error {
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F0F0F0', endColorstr='#A1A7CE',GradientType=0 );
|
||||
}
|
||||
.openerp .filter_label:active, .openerp .filter_icon:active {
|
||||
background: #AAAAAA;
|
||||
background: #aaa;
|
||||
background: -moz-linear-gradient(top, #999999 0%, #EEEEEE 100%);
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#999999), color-stop(100%,#EEEEEE));
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#999999', endColorstr='#EEEEEE',GradientType=0 );
|
||||
}
|
||||
.openerp .filter_label.enabled, .openerp .filter_icon.enabled {
|
||||
background: #AAAAAA;
|
||||
background: #aaa;
|
||||
}
|
||||
.openerp .filter_icon {
|
||||
height: 22px;
|
||||
@@ -588,13 +615,16 @@ label.error {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.openerp .filter_label_group button:first-child {
|
||||
border-left: 1px solid #666;
|
||||
-webkit-border-top-left-radius: 7px;
|
||||
-webkit-border-bottom-left-radius: 7px;
|
||||
-moz-border-radius-topleft: 7px;
|
||||
-moz-border-radius-bottomleft: 7px;
|
||||
border-top-left-radius: 7px;
|
||||
border-bottom-left-radius: 7px;
|
||||
border-right: none;
|
||||
}
|
||||
.openerp .filter_label_group button {
|
||||
border-right: none;
|
||||
}
|
||||
.openerp .filter_label_group button:last-child {
|
||||
-webkit-border-top-right-radius: 7px;
|
||||
@@ -603,6 +633,20 @@ label.error {
|
||||
-moz-border-radius-bottomright: 7px;
|
||||
border-top-right-radius: 7px;
|
||||
border-bottom-right-radius: 7px;
|
||||
border-right: 1px solid #999;
|
||||
}
|
||||
.openerp .filter_label_group button.filter_icon img {
|
||||
padding: 1px 8px 0 8px;
|
||||
}
|
||||
.openerp .filter_label_group button.filter_icon:first-child {
|
||||
border-left: solid 1px #999;
|
||||
margin-left: -7px;
|
||||
-webkit-border-top-left-radius: 0px;
|
||||
-webkit-border-bottom-left-radius: 0px;
|
||||
-moz-border-radius-topleft: 0px;
|
||||
-moz-border-radius-bottomleft: 0px;
|
||||
border-top-left-radius: 0px;
|
||||
border-bottom-left-radius: 0px;
|
||||
}
|
||||
|
||||
.openerp .searchview_group_string {
|
||||
@@ -628,8 +672,16 @@ label.error {
|
||||
.openerp .searchview_group.expanded .searchview_group_content {
|
||||
display: block;
|
||||
}
|
||||
.openerp .searchview_group_content {
|
||||
padding-left: 10px;
|
||||
|
||||
.openerp .searchview_group_content .oe_label, .openerp .searchview_group_content .oe_label_help {
|
||||
font-weight: bold;
|
||||
color: #4c4c4c;
|
||||
}
|
||||
|
||||
.openerp .oe-searchview-render-line .oe_label, .openerp .oe-searchview-render-line .oe_label_help {
|
||||
font-weight: bold;
|
||||
font-size: 80%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.openerp .searchview_extended_group {
|
||||
@@ -715,20 +767,23 @@ label.error {
|
||||
text-align: left;
|
||||
padding: 1px 2px;
|
||||
}
|
||||
.openerp .oe-listview th.oe-record-selector,
|
||||
.openerp .oe-listview td.oe-button,
|
||||
.openerp .oe-listview td.oe-record-delete {
|
||||
padding: 0 1px;
|
||||
|
||||
.openerp .oe-record-delete button{
|
||||
border: none;
|
||||
height: 12px;
|
||||
width: 12px;
|
||||
background: url("/web/static/src/img/iconset-b-remove.png") no-repeat scroll center center transparent;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* Could use :not selectors if they were supported by MSIE8... */
|
||||
.openerp .oe-listview tbody td {
|
||||
border-left: 1px solid #dadada;
|
||||
border-left: 1px solid #dadada; /*currently commenting to test with no vertical lines in list view*/
|
||||
}
|
||||
.openerp .oe-listview tbody td:first-child,
|
||||
.openerp .oe-listview tbody td.oe-button,
|
||||
.openerp .oe-listview tbody td.oe-button+td,
|
||||
.openerp .oe-listview tbody th.oe-record-selector+td,
|
||||
.openerp .oe-listview tbody td.oe-button,
|
||||
.openerp .oe-listview tbody th.oe-record-selector,
|
||||
.openerp .oe-listview tbody td.oe-record-delete {
|
||||
border-left: none;
|
||||
}
|
||||
@@ -738,15 +793,36 @@ label.error {
|
||||
}
|
||||
.openerp .oe-listview th.oe-sortable {
|
||||
cursor: pointer;
|
||||
font-size: 75%;
|
||||
text-transform: uppercase;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
padding-left: 3px;
|
||||
color: #333;
|
||||
}
|
||||
.openerp .oe-listview th.oe-sortable .ui-icon {
|
||||
height: 1em;
|
||||
height: 60%;
|
||||
margin: -6px 0 0;
|
||||
display: inline;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.openerp .oe-listview table tbody td {
|
||||
border-bottom: 1px solid #E3E3E3;
|
||||
}
|
||||
|
||||
.openerp .oe-listview .oe-record-selector {
|
||||
border-bottom: 1px solid #E3E3E3;
|
||||
}
|
||||
|
||||
.openerp .oe-listview .oe-field-cell {
|
||||
cursor: pointer;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
font-size: 80%;
|
||||
}
|
||||
.openerp .oe-listview .oe-field-cell progress {
|
||||
width: 100%;
|
||||
@@ -778,6 +854,8 @@ label.error {
|
||||
}
|
||||
.openerp .oe-list-pager .oe-pager-state {
|
||||
cursor: pointer;
|
||||
font-size: 90%;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.openerp .oe-listview .oe-group-name {
|
||||
@@ -794,6 +872,8 @@ label.error {
|
||||
.openerp .oe-listview .oe-list-footer {
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
color: #444;
|
||||
font-size: 85%;
|
||||
}
|
||||
.openerp .oe-listview .oe-list-footer span {
|
||||
margin: 0 1em;
|
||||
@@ -846,28 +926,62 @@ label.error {
|
||||
}
|
||||
.openerp .oe_form_notebook .ui-tabs-panel {
|
||||
padding: 4px;
|
||||
-moz-border-radius-topright: 4px;
|
||||
-webkit-border-top-right-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
}
|
||||
.openerp .oe_form_notebook ul.ui-tabs-nav {
|
||||
padding-left: 0;
|
||||
background: transparent;
|
||||
border-width: 0 0 1px 0;
|
||||
border-width: 0;
|
||||
border-radius: 0;
|
||||
-moz-border-radius: 0;
|
||||
-webkit-border-radius: 0;
|
||||
line-height: 0.5em;
|
||||
line-height: 0.8em;
|
||||
font-size: 95%;
|
||||
color: #555;
|
||||
}
|
||||
.openerp .oe_form_notebook ul.ui-tabs-nav li {
|
||||
font-weight: bold;
|
||||
}
|
||||
.openerp .oe_form_notebook .ui-tabs-panel {
|
||||
background: #f9f9f9;
|
||||
border-width: 0 1px 1px 1px;
|
||||
border-width: 1px;
|
||||
}
|
||||
.openerp .oe_form_notebook .ui-tabs-selected {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
/* Unedit Form */
|
||||
.openerp .field_char, .openerp .field_date, .openerp .field_float, .openerp .oe_form_field_many2one a {
|
||||
vertical-align: middle;
|
||||
padding-top: 3px;
|
||||
font-size: 90%;
|
||||
color: #222;
|
||||
}
|
||||
.openerp .oe_form_field_many2one a {
|
||||
color: #9A0404;
|
||||
line-height: 12px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Form */
|
||||
|
||||
.openerp .oe_form_frame_cell input[type="checkbox"] {
|
||||
margin-top: 3px;
|
||||
vertical-align: center;
|
||||
}
|
||||
.openerp .oe_form_frame_cell .input[type="text"] {
|
||||
padding-bottom: 1px;
|
||||
}
|
||||
|
||||
.openerp table.oe_frame td {
|
||||
color: #4c4c4c;
|
||||
}
|
||||
.openerp td.oe_form_frame_cell {
|
||||
padding: 2px;
|
||||
position: relative;
|
||||
}
|
||||
.openerp .oe_frame.oe_forms {
|
||||
clear: both;
|
||||
}
|
||||
@@ -889,6 +1003,9 @@ label.error {
|
||||
padding: 2px;
|
||||
position: relative;
|
||||
}
|
||||
.openerp td.oe_form_field_boolean {
|
||||
padding-top: 4px;
|
||||
}
|
||||
.openerp td.oe_form_frame_cell.oe_form_group {
|
||||
padding: 0;
|
||||
}
|
||||
@@ -900,14 +1017,31 @@ label.error {
|
||||
}
|
||||
.openerp .oe_form_pager, .openerp .oe_list_pager {
|
||||
float: right;
|
||||
font-size: 80%;
|
||||
color: gray;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.openerp .oe_form_pager {
|
||||
margin-right: 3px;
|
||||
}
|
||||
|
||||
|
||||
.openerp label.oe_label_help, .openerp label.oe_label, .openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms .oe_button, .openerp .oe_forms textarea {
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
.openerp label.oe_label_help, .openerp label.oe_label {
|
||||
display: block;
|
||||
color: #4c4c4c;
|
||||
font-weight: normal;
|
||||
}
|
||||
.openerp label.oe_label_help {
|
||||
cursor: help;
|
||||
}
|
||||
.openerp .oe_form_frame_cell .oe_label, .openerp .oe_form_frame_cell .oe_label_help {
|
||||
font-weight: normal;
|
||||
}
|
||||
.openerp #tiptip_content {
|
||||
font-size: 12px;
|
||||
}
|
||||
@@ -926,8 +1060,12 @@ label.error {
|
||||
}
|
||||
|
||||
.openerp .oe_forms label.oe_label, .openerp .oe_forms label.oe_label_help {
|
||||
margin: 3px 0 0 10px;
|
||||
margin: 4px 0 0 3px;
|
||||
}
|
||||
.openerp .oe_forms .searchview_group_content label.oe_label, .openerp .searchview_group_content .oe_forms label.oe_label_help { /* making a distinction between labels in search view and other labels */
|
||||
margin: 3px 0 0 3px;
|
||||
}
|
||||
|
||||
.openerp label.oe_label_help span {
|
||||
font-size: 80%;
|
||||
color: darkgreen;
|
||||
@@ -949,13 +1087,29 @@ label.error {
|
||||
margin: 3px 0 0 0;
|
||||
}
|
||||
|
||||
/* Uneditable Form View */
|
||||
.openerp .oe_form_readonly {
|
||||
|
||||
}
|
||||
.openerp .oe_form_readonly .field_char, .openerp .oe_form_readonly .oe_form_field_email {
|
||||
padding-top: 4px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.openerp .oe_form_readonly .field_selection {
|
||||
padding-top: 2px;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
|
||||
/* Inputs */
|
||||
.openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms textarea {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
padding: 0 2px 0 2px;
|
||||
padding: 0 2px;
|
||||
margin: 0 2px;
|
||||
border: 1px solid #999;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
@@ -964,6 +1118,10 @@ label.error {
|
||||
min-width: 90px;
|
||||
color: #1f1f1f;
|
||||
}
|
||||
.openerp .oe_forms select{
|
||||
padding-top: 2px;
|
||||
}
|
||||
|
||||
.openerp .oe_forms textarea {
|
||||
resize:vertical;
|
||||
}
|
||||
@@ -979,6 +1137,9 @@ label.error {
|
||||
min-width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_forms .button {
|
||||
height: 22px;
|
||||
}
|
||||
@-moz-document url-prefix() {
|
||||
/* Strange firefox behaviour on width: 100% + white-space: nowrap */
|
||||
.openerp .oe_forms .oe_button {
|
||||
@@ -1055,10 +1216,14 @@ label.error {
|
||||
border: 0 solid #666;
|
||||
}
|
||||
.openerp .separator.horizontal {
|
||||
font-weight: bold;
|
||||
font-weight: bold;
|
||||
border-bottom-width: 1px;
|
||||
margin: 3px 4px 3px 1px;
|
||||
height: 15px;
|
||||
height: 17px;
|
||||
font-size: 95%;
|
||||
}
|
||||
.openerp .separator.horizontal:empty {
|
||||
height: 5px;
|
||||
}
|
||||
.openerp .oe_form_frame_cell.oe_form_separator_vertical {
|
||||
border-left: 1px solid #666;
|
||||
@@ -1095,6 +1260,14 @@ label.error {
|
||||
background: white;
|
||||
min-width: 90px;
|
||||
}
|
||||
.openerp tbody.ui-widget-content {
|
||||
margin-bottom: 10px;
|
||||
border-spacing: 4px;
|
||||
}
|
||||
.openerp .ui-widget-header {
|
||||
background-image: none;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
/* Sidebar */
|
||||
.openerp .view-manager-main-table {
|
||||
@@ -1108,16 +1281,13 @@ label.error {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.openerp .view-manager-main-content {
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe-view-manager-header {
|
||||
overflow: auto;
|
||||
}
|
||||
.openerp .oe-view-manager-header h2 {
|
||||
float: left;
|
||||
}
|
||||
.openerp .oe-view-manager-header blockquote {
|
||||
.openerp .oe_view_manager_menu_tips blockquote {
|
||||
display: none;
|
||||
font-size: 85%;
|
||||
margin: 0;
|
||||
@@ -1126,14 +1296,14 @@ label.error {
|
||||
padding: 1px 10px;
|
||||
color: #4C4C4C;
|
||||
}
|
||||
.openerp .oe-view-manager-header blockquote p {
|
||||
.openerp .oe_view_manager_menu_tips blockquote p {
|
||||
margin: 0;
|
||||
padding: 6px 1px 4px;
|
||||
}
|
||||
.openerp .oe-view-manager-header blockquote div {
|
||||
.openerp .oe_view_manager_menu_tips blockquote div {
|
||||
text-align: right;
|
||||
}
|
||||
.openerp .oe-view-manager-header blockquote div button {
|
||||
.openerp .oe_view_manager_menu_tips blockquote div button {
|
||||
border: none;
|
||||
background: none;
|
||||
padding: 0 4px;
|
||||
@@ -1310,14 +1480,6 @@ label.error {
|
||||
background: 1px 3px url(/web/static/src/img/icons/gtk-print.png) no-repeat;
|
||||
}
|
||||
|
||||
.openerp .oe-running-kitten {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.openerp.kitten-mode-activated .oe-running-kitten {
|
||||
display: inherit;
|
||||
}
|
||||
|
||||
.openerp.kitten-mode-activated .main_table {
|
||||
background: url(http://placekitten.com/g/1500/800) repeat;
|
||||
}
|
||||
@@ -1373,6 +1535,7 @@ label.error {
|
||||
}
|
||||
.openerp .oe_forms .oe-m2o input[type="text"] {
|
||||
padding-right: 20px;
|
||||
padding-top: 2px;
|
||||
}
|
||||
.openerp .oe-m2o-drop-down-button {
|
||||
margin-left: -23px;
|
||||
@@ -1382,12 +1545,12 @@ label.error {
|
||||
margin-bottom: -4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.openerp .oe-m2o-cm-button img {
|
||||
margin-left: 4px;
|
||||
}
|
||||
.openerp .oe-m2o-disabled-cm {
|
||||
color: grey;
|
||||
}
|
||||
.openerp ul[role="listbox"] li a {
|
||||
font-size:80%;
|
||||
}
|
||||
.parent_top {
|
||||
vertical-align: text-top;
|
||||
}
|
||||
@@ -1433,20 +1596,19 @@ label.error {
|
||||
/* Shortcuts*/
|
||||
.oe-shortcut-toggle {
|
||||
height: 20px;
|
||||
margin-top: 3px;
|
||||
padding: 0;
|
||||
width: 24px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
background: url(/web/static/src/img/add-shortcut.png) no-repeat bottom;
|
||||
background: url(/web/static/src/img/add-shortcut.png) no-repeat center center;
|
||||
float: left;
|
||||
}
|
||||
.oe-shortcut-remove{
|
||||
background: url(/web/static/src/img/remove-shortcut.png) no-repeat bottom;
|
||||
background: url(/web/static/src/img/remove-shortcut.png) no-repeat center center;
|
||||
}
|
||||
/* ================ */
|
||||
.oe-shortcuts {
|
||||
position: absolute;
|
||||
|
||||
margin: 0;
|
||||
padding: 6px 15px;
|
||||
top: 37px;
|
||||
@@ -1471,9 +1633,14 @@ label.error {
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
border-left: 1px solid #909090;
|
||||
padding: 4px;
|
||||
font-size: 90%;
|
||||
padding: 0 4px;
|
||||
font-size: 80%;
|
||||
font-weight: normal;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.oe-shortcuts li:hover {
|
||||
background-color: #666;
|
||||
}
|
||||
.oe-shortcuts li:first-child {
|
||||
border-left: none;
|
||||
@@ -1543,4 +1710,3 @@ ul.oe-arrow-list li.oe-arrow-list-selected .oe-arrow-list-after {
|
||||
.openerp .oe_view_editor_tree_grid a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
.openerp .oe-import fieldset.oe-closed table {
|
||||
display: none;
|
||||
}
|
||||
.openerp .separator.horizontal {
|
||||
.openerp .oe-import .separator.horizontal {
|
||||
font-weight: bold;
|
||||
border-bottom-width: 1px;
|
||||
margin: 6px 4px 6px 1px;
|
||||
|
||||
|
Before Width: | Height: | Size: 918 B After Width: | Height: | Size: 918 B |
|
Before Width: | Height: | Size: 882 B After Width: | Height: | Size: 882 B |
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 692 B |
|
After Width: | Height: | Size: 189 B |
@@ -1029,7 +1029,8 @@ openerp.web.TranslationDataBase = openerp.web.Class.extend(/** @lends openerp.we
|
||||
set_bundle: function(translation_bundle) {
|
||||
var self = this;
|
||||
this.db = {};
|
||||
var modules = _.keys(translation_bundle.modules).sort();
|
||||
var modules = _.keys(translation_bundle.modules);
|
||||
modules.sort();
|
||||
if (_.include(modules, "web")) {
|
||||
modules = ["web"].concat(_.without(modules, "web"));
|
||||
}
|
||||
@@ -1076,7 +1077,8 @@ openerp.web._t = new openerp.web.TranslationDataBase().build_translation_functio
|
||||
openerp.web.qweb = new QWeb2.Engine();
|
||||
openerp.web.qweb.debug = (window.location.search.indexOf('?debug') !== -1);
|
||||
openerp.web.qweb.default_dict = {
|
||||
'_' : _
|
||||
'_' : _,
|
||||
'_t' : openerp.web._t
|
||||
}
|
||||
openerp.web.qweb.format_text_node = function(s) {
|
||||
// Note that 'this' is the Qweb Node of the text
|
||||
@@ -1094,6 +1096,7 @@ openerp.web.qweb.format_text_node = function(s) {
|
||||
|
||||
/** Setup default connection */
|
||||
openerp.connection = new openerp.web.Connection();
|
||||
openerp.web.qweb.default_dict['__debug__'] = openerp.connection.debug;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -265,14 +265,25 @@ openerp.web.DataSet = openerp.web.Widget.extend( /** @lends openerp.web.DataSet
|
||||
return this;
|
||||
},
|
||||
select_id: function(id) {
|
||||
var idx = _.indexOf(this.ids, id);
|
||||
if (idx === -1) {
|
||||
var idx = this.get_id_index(id);
|
||||
if (idx === null) {
|
||||
return false;
|
||||
} else {
|
||||
this.index = idx;
|
||||
return true;
|
||||
}
|
||||
},
|
||||
get_id_index: function(id) {
|
||||
for (var i=0, ii=this.ids.length; i<ii; i++) {
|
||||
// Here we use type coercion because of the mess potentially caused by
|
||||
// OpenERP ids fetched from the DOM as string. (eg: dhtmlxcalendar)
|
||||
// OpenERP ids can be non-numeric too ! (eg: recursive events in calendar)
|
||||
if (id == this.ids[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
},
|
||||
/**
|
||||
* Read records.
|
||||
*
|
||||
|
||||
@@ -183,6 +183,20 @@ openerp.web.DataImport = openerp.web.Dialog.extend({
|
||||
this.$element.find('#result').empty();
|
||||
var headers, result_node = this.$element.find("#result");
|
||||
|
||||
if (results['error']) {
|
||||
result_node.append(QWeb.render('ImportView.error', {
|
||||
'error': results['error']}));
|
||||
this.$element.find('fieldset').removeClass('oe-closed');
|
||||
return;
|
||||
}
|
||||
if (results['success']) {
|
||||
if (this.widget_parent.widget_parent.active_view == "list") {
|
||||
this.widget_parent.reload_content();
|
||||
}
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
|
||||
if (results['records']) {
|
||||
var lines_to_skip = parseInt(this.$element.find('#csv_skip').val(), 10),
|
||||
with_headers = this.$element.find('#file_has_headers').prop('checked');
|
||||
@@ -195,16 +209,6 @@ openerp.web.DataImport = openerp.web.Dialog.extend({
|
||||
: results.records
|
||||
}));
|
||||
this.$element.find('fieldset').addClass('oe-closed');
|
||||
} else if (results['error']) {
|
||||
result_node.append(QWeb.render('ImportView.error', {
|
||||
'error': results['error']}));
|
||||
this.$element.find('fieldset').removeClass('oe-closed');
|
||||
} else if (results['success']) {
|
||||
if (this.widget_parent.widget_parent.active_view == "list") {
|
||||
this.widget_parent.reload_content();
|
||||
}
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
this.$element.find('form').removeClass('oe-import-no-result');
|
||||
|
||||
|
||||
@@ -158,16 +158,17 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) {
|
||||
var tmp = Number(value);
|
||||
if (!isNaN(tmp))
|
||||
return tmp;
|
||||
tmp = value.replace(openerp.web._t.database.parameters.decimal_point, ".");
|
||||
var tmp2 = tmp;
|
||||
|
||||
var tmp2 = value;
|
||||
do {
|
||||
tmp = tmp2;
|
||||
tmp2 = tmp.replace(openerp.web._t.database.parameters.thousands_sep, "");
|
||||
} while(tmp !== tmp2);
|
||||
tmp = Number(tmp);
|
||||
if (isNaN(tmp))
|
||||
var reformatted_value = tmp.replace(openerp.web._t.database.parameters.decimal_point, ".");
|
||||
var parsed = Number(reformatted_value);
|
||||
if (isNaN(parsed))
|
||||
throw new Error(value + " is not a correct float");
|
||||
return tmp;
|
||||
return parsed;
|
||||
case 'float_time':
|
||||
var float_time_pair = value.split(":");
|
||||
if (float_time_pair.length != 2)
|
||||
|
||||
@@ -139,6 +139,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
|
||||
}
|
||||
},
|
||||
on_loaded: function(data) {
|
||||
this.fields_view = data.fields_view;
|
||||
if (data.fields_view.type !== 'search' ||
|
||||
data.fields_view.arch.tag !== 'search') {
|
||||
throw new Error(_.str.sprintf(
|
||||
@@ -197,18 +198,23 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
|
||||
var self = this;
|
||||
var select = this.$element.find(".oe_search-view-filters-management");
|
||||
var val = select.val();
|
||||
|
||||
if (val.slice(0,1) == "_") { // useless action
|
||||
select.val("_filters");
|
||||
return;
|
||||
}
|
||||
if (val.slice(0, "get:".length) == "get:") {
|
||||
val = val.slice("get:".length);
|
||||
val = parseInt(val);
|
||||
var filter = this.managed_filters[val];
|
||||
this.on_search([filter.domain], [filter.context], []);
|
||||
} else if (val == "save_filter") {
|
||||
select.val("_filters");
|
||||
switch(val) {
|
||||
case 'add_to_dashboard':
|
||||
this.on_add_to_dashboard();
|
||||
break;
|
||||
case 'manage_filters':
|
||||
this.do_action({
|
||||
res_model: 'ir.filters',
|
||||
views: [[false, 'list'], [false, 'form']],
|
||||
type: 'ir.actions.act_window',
|
||||
context: {"search_default_user_id": this.session.uid,
|
||||
"search_default_model_id": this.dataset.model},
|
||||
target: "current",
|
||||
limit : 80,
|
||||
auto_search : true
|
||||
});
|
||||
break;
|
||||
case 'save_filter':
|
||||
var data = this.build_search_data();
|
||||
var context = new openerp.web.CompoundContext();
|
||||
_.each(data.contexts, function(x) {
|
||||
@@ -241,19 +247,63 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search
|
||||
}}
|
||||
]
|
||||
});
|
||||
} else { // manage_filters
|
||||
select.val("_filters");
|
||||
this.do_action({
|
||||
res_model: 'ir.filters',
|
||||
views: [[false, 'list'], [false, 'form']],
|
||||
type: 'ir.actions.act_window',
|
||||
context: {"search_default_user_id": this.session.uid,
|
||||
"search_default_model_id": this.dataset.model},
|
||||
target: "current",
|
||||
limit : 80,
|
||||
auto_search : true
|
||||
});
|
||||
break;
|
||||
}
|
||||
if (val.slice(0, 4) == "get:") {
|
||||
val = val.slice(4);
|
||||
val = parseInt(val, 10);
|
||||
var filter = this.managed_filters[val];
|
||||
this.on_search([filter.domain], [filter.context], []);
|
||||
} else {
|
||||
select.val('');
|
||||
}
|
||||
},
|
||||
on_add_to_dashboard: function() {
|
||||
this.$element.find(".oe_search-view-filters-management")[0].selectedIndex = 0;
|
||||
var self = this,
|
||||
menu = openerp.webclient.menu,
|
||||
$dialog = $(QWeb.render("SearchView.add_to_dashboard", {
|
||||
dashboards : menu.data.data.children,
|
||||
selected_menu_id : menu.$element.find('a.active').data('menu')
|
||||
}));
|
||||
$dialog.find('input').val(this.fields_view.name);
|
||||
$dialog.dialog({
|
||||
modal: true,
|
||||
title: _t("Add to Dashboard"),
|
||||
buttons: [
|
||||
{text: _t("Cancel"), click: function() {
|
||||
$(this).dialog("close");
|
||||
}},
|
||||
{text: _t("OK"), click: function() {
|
||||
$(this).dialog("close");
|
||||
var menu_id = $(this).find("select").val(),
|
||||
title = $(this).find("input").val(),
|
||||
data = self.build_search_data(),
|
||||
context = new openerp.web.CompoundContext(),
|
||||
domain = new openerp.web.CompoundDomain();
|
||||
_.each(data.contexts, function(x) {
|
||||
context.add(x);
|
||||
});
|
||||
_.each(data.domains, function(x) {
|
||||
domain.add(x);
|
||||
});
|
||||
self.rpc('/web/searchview/add_to_dashboard', {
|
||||
menu_id: menu_id,
|
||||
action_id: self.widget_parent.action.id,
|
||||
context_to_save: context,
|
||||
domain: domain,
|
||||
view_mode: self.widget_parent.active_view,
|
||||
name: title
|
||||
}, function(r) {
|
||||
if (r === false) {
|
||||
self.do_warn("Could not add filter to dashboard");
|
||||
} else {
|
||||
self.do_notify("Filter added to dashboard", '');
|
||||
}
|
||||
});
|
||||
}}
|
||||
]
|
||||
});
|
||||
},
|
||||
/**
|
||||
* Performs the search view collection of widget data.
|
||||
|
||||
@@ -33,6 +33,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
this.widgets = {};
|
||||
this.widgets_counter = 0;
|
||||
this.fields = {};
|
||||
this.fields_order = [];
|
||||
this.datarecord = {};
|
||||
this.show_invalid = true;
|
||||
this.default_focus_field = null;
|
||||
@@ -86,6 +87,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
on_loaded: function(data) {
|
||||
var self = this;
|
||||
if (data) {
|
||||
this.fields_order = [];
|
||||
this.fields_view = data;
|
||||
var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch);
|
||||
|
||||
@@ -122,6 +124,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
self.translatable_fields = [];
|
||||
self.widgets = {};
|
||||
self.fields = {};
|
||||
self.fields_order = [];
|
||||
self.$form_header.find('button').unbind('click');
|
||||
self.readonly = !self.readonly;
|
||||
self.registry = self.readonly ? openerp.web.form.readonly : openerp.web.form.widgets;
|
||||
@@ -188,15 +191,16 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
deferred_stack.push('force resolution if no fields');
|
||||
return deferred_stack.then(function() {
|
||||
if (!record.id) {
|
||||
// New record: Second pass in order to trigger the onchanges
|
||||
self.show_invalid = false;
|
||||
for (var f in record) {
|
||||
var field = self.fields[f];
|
||||
if (field) {
|
||||
// New record: Second pass in order to trigger the onchanges
|
||||
// respecting the fields order defined in the view
|
||||
_.each(self.fields_order, function(field_name) {
|
||||
if (record[field_name] !== undefined) {
|
||||
var field = self.fields[field_name];
|
||||
field.dirty = true;
|
||||
self.do_onchange(field);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
self.on_form_changed();
|
||||
self.initial_mutating_lock.resolve();
|
||||
@@ -441,6 +445,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
|
||||
return def.promise();
|
||||
},
|
||||
can_be_discarded: function() {
|
||||
return true; // Disabled until the page view and button refactoring is done
|
||||
return !this.is_dirty() || confirm(_t("Warning, the record has been modified, your changes will be discarded."));
|
||||
},
|
||||
/**
|
||||
@@ -1174,6 +1179,11 @@ openerp.web.form.WidgetLabel = openerp.web.form.Widget.extend({
|
||||
if (this.node.tag == 'label' && (this.align === 'left' || this.node.attrs.colspan || (this.string && this.string.length > 32))) {
|
||||
this.template = "WidgetParagraph";
|
||||
this.colspan = parseInt(this.node.attrs.colspan || 1, 10);
|
||||
// Widgets default to right-aligned, but paragraph defaults to
|
||||
// left-aligned
|
||||
if (isNaN(parseFloat(this.node.attrs.align))) {
|
||||
this.align = 'left';
|
||||
}
|
||||
} else {
|
||||
this.colspan = 1;
|
||||
this.width = '1%';
|
||||
@@ -1214,6 +1224,7 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f
|
||||
this.name = node.attrs.name;
|
||||
this.value = undefined;
|
||||
view.fields[this.name] = this;
|
||||
view.fields_order.push(this.name);
|
||||
this.type = node.attrs.widget || view.fields_view.fields[node.attrs.name].type;
|
||||
this.element_name = "field_" + this.name + "_" + this.type;
|
||||
|
||||
@@ -1605,7 +1616,7 @@ openerp.web.form.FieldSelection = openerp.web.form.Field.extend({
|
||||
init: function(view, node) {
|
||||
var self = this;
|
||||
this._super(view, node);
|
||||
this.values = this.field.selection;
|
||||
this.values = _.clone(this.field.selection);
|
||||
_.each(this.values, function(v, i) {
|
||||
if (v[0] === false && v[1] === '') {
|
||||
self.values.splice(i, 1);
|
||||
@@ -2553,18 +2564,30 @@ openerp.web.form.SelectCreatePopup = openerp.web.OldWidget.extend(/** @lends ope
|
||||
this.dataset.parent_view = this.options.parent_view;
|
||||
this.dataset.on_default_get.add(this.on_default_get);
|
||||
if (this.options.initial_view == "search") {
|
||||
this.setup_search_view();
|
||||
self.rpc('/web/session/eval_domain_and_context', {
|
||||
domains: [],
|
||||
contexts: [this.context]
|
||||
}, function (results) {
|
||||
var search_defaults = {};
|
||||
_.each(results.context, function (value, key) {
|
||||
var match = /^search_default_(.*)$/.exec(key);
|
||||
if (match) {
|
||||
search_defaults[match[1]] = value;
|
||||
}
|
||||
});
|
||||
self.setup_search_view(search_defaults);
|
||||
});
|
||||
} else { // "form"
|
||||
this.new_object();
|
||||
}
|
||||
},
|
||||
setup_search_view: function() {
|
||||
setup_search_view: function(search_defaults) {
|
||||
var self = this;
|
||||
if (this.searchview) {
|
||||
this.searchview.stop();
|
||||
}
|
||||
this.searchview = new openerp.web.SearchView(this,
|
||||
this.dataset, false, {});
|
||||
this.dataset, false, search_defaults);
|
||||
this.searchview.on_search.add(function(domains, contexts, groupbys) {
|
||||
if (self.initial_ids) {
|
||||
self.do_search(domains.concat([[["id", "in", self.initial_ids]], self.domain]),
|
||||
@@ -2813,6 +2836,7 @@ openerp.web.form.FieldReference = openerp.web.form.Field.extend({
|
||||
this.view_id = 'reference_' + _.uniqueId();
|
||||
this.widgets = {};
|
||||
this.fields = {};
|
||||
this.fields_order = [];
|
||||
this.selection = new openerp.web.form.FieldSelection(this, { attrs: {
|
||||
name: 'selection',
|
||||
widget: 'selection'
|
||||
@@ -3060,6 +3084,9 @@ openerp.web.form.FieldStatus = openerp.web.form.Field.extend({
|
||||
|
||||
openerp.web.form.FieldReadonly = openerp.web.form.Field.extend({
|
||||
|
||||
});
|
||||
openerp.web.form.WidgetFrameReadonly = openerp.web.form.WidgetFrame.extend({
|
||||
template: 'WidgetFrame.readonly'
|
||||
});
|
||||
openerp.web.form.FieldCharReadonly = openerp.web.form.FieldReadonly.extend({
|
||||
template: 'FieldChar.readonly',
|
||||
@@ -3109,7 +3136,7 @@ openerp.web.form.FieldSelectionReadonly = openerp.web.form.FieldReadonly.extend(
|
||||
// lifted straight from r/w version
|
||||
var self = this;
|
||||
this._super(view, node);
|
||||
this.values = this.field.selection;
|
||||
this.values = _.clone(this.field.selection);
|
||||
_.each(this.values, function(v, i) {
|
||||
if (v[0] === false && v[1] === '') {
|
||||
self.values.splice(i, 1);
|
||||
@@ -3213,6 +3240,7 @@ openerp.web.form.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({
|
||||
force_readonly: true
|
||||
});
|
||||
openerp.web.form.readonly = openerp.web.form.widgets.clone({
|
||||
'frame': 'openerp.web.form.WidgetFrameReadonly',
|
||||
'char': 'openerp.web.form.FieldCharReadonly',
|
||||
'email': 'openerp.web.form.FieldEmailReadonly',
|
||||
'url': 'openerp.web.form.FieldUrlReadonly',
|
||||
|
||||
@@ -462,6 +462,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
||||
* @param {Object} results results of evaluating domain and process for a search
|
||||
*/
|
||||
do_search: function (domain, context, group_by) {
|
||||
this.page = 0;
|
||||
this.groups.datagroup = new openerp.web.DataGroup(
|
||||
this, this.model, domain, context, group_by);
|
||||
this.groups.datagroup.sort = this.dataset._sort;
|
||||
@@ -661,8 +662,8 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
|
||||
*
|
||||
* @param {Number} count number of columns to add
|
||||
* @param {Object} options
|
||||
* @param {"before"|"after"} [position="after"] insertion position for the new columns
|
||||
* @param {Object} [except] content row to not pad
|
||||
* @param {"before"|"after"} [options.position="after"] insertion position for the new columns
|
||||
* @param {Object} [options.except] content row to not pad
|
||||
*/
|
||||
pad_columns: function (count, options) {
|
||||
options = options || {};
|
||||
|
||||
@@ -91,6 +91,14 @@ session.web.ActionManager = session.web.Widget.extend({
|
||||
return this[type](action, on_close);
|
||||
},
|
||||
ir_actions_act_window: function (action, on_close) {
|
||||
if (_(['base.module.upgrade', 'base.setup.installer'])
|
||||
.contains(action.res_model)) {
|
||||
var old_close = on_close;
|
||||
on_close = function () {
|
||||
session.webclient.do_reload();
|
||||
if (old_close) { old_close(); }
|
||||
};
|
||||
}
|
||||
if (action.target === 'new') {
|
||||
if (this.dialog == null) {
|
||||
this.dialog = new session.web.Dialog(this, { title: action.name, width: '80%' });
|
||||
@@ -121,12 +129,6 @@ session.web.ActionManager = session.web.Widget.extend({
|
||||
if (!this.dialog && on_closed) {
|
||||
on_closed();
|
||||
}
|
||||
if (this.dialog && action.context) {
|
||||
var model = action.context.active_model;
|
||||
if (model === 'base.module.upgrade' || model === 'base.setup.installer' || model === 'base.module.upgrade') {
|
||||
session.webclient.do_reload();
|
||||
}
|
||||
}
|
||||
this.dialog_stop();
|
||||
},
|
||||
ir_actions_server: function (action, on_closed) {
|
||||
@@ -278,7 +280,7 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View
|
||||
}
|
||||
}
|
||||
$.when(view_promise).then(function () {
|
||||
self.$element.find('.oe_view_title:first').text(
|
||||
self.$element.find('.oe_view_title_text:first').text(
|
||||
self.display_title());
|
||||
});
|
||||
return view_promise;
|
||||
@@ -424,8 +426,8 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
|
||||
});
|
||||
if (this.action.help && !this.flags.low_profile) {
|
||||
var Users = new session.web.DataSet(self, 'res.users'),
|
||||
header = this.$element.find('.oe-view-manager-header');
|
||||
header.delegate('blockquote button', 'click', function() {
|
||||
$tips = this.$element.find('.oe_view_manager_menu_tips');
|
||||
$tips.delegate('blockquote button', 'click', function() {
|
||||
var $this = $(this);
|
||||
//noinspection FallthroughInSwitchStatementJS
|
||||
switch ($this.attr('name')) {
|
||||
@@ -442,7 +444,7 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
|
||||
if (!(user && user.id === self.session.uid)) {
|
||||
return;
|
||||
}
|
||||
header.find('blockquote').toggle(user.menu_tips);
|
||||
$tips.find('blockquote').toggle(user.menu_tips);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -470,10 +472,10 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner
|
||||
view_id = (fvg && fvg.view_id) || '--';
|
||||
self.$element.find('.oe_get_xml_view span').text(view_id);
|
||||
if (!self.action.name && fvg) {
|
||||
self.$element.find('.oe_view_title').text(fvg.arch.attrs.string || fvg.name);
|
||||
self.$element.find('.oe_view_title_text').text(fvg.arch.attrs.string || fvg.name);
|
||||
}
|
||||
|
||||
var $title = self.$element.find('.oe_view_title'),
|
||||
var $title = self.$element.find('.oe_view_title_text'),
|
||||
$search_prefix = $title.find('span.oe_searchable_view');
|
||||
if (controller.searchable !== false) {
|
||||
if (!$search_prefix.length) {
|
||||
|
||||
@@ -360,10 +360,6 @@
|
||||
<li>
|
||||
<a href="javascript:void(0)" title="About" class="about"><img src="/web/static/src/img/header-about.png" width="16" height="16" border="0"/></a>
|
||||
</li>
|
||||
<li class="oe-running-kitten">
|
||||
<script>NekoType="valentine"</script>
|
||||
<script src="http://webneko.net/n200504.js"></script>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="block">
|
||||
<a href="#logout" class="logout">LOGOUT</a>
|
||||
@@ -418,11 +414,12 @@
|
||||
</t>
|
||||
<t t-name="ViewManager">
|
||||
<table class="view-manager-main-table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="view-manager-main-content">
|
||||
<div class="oe-view-manager-header">
|
||||
<h2 class="oe_view_title" t-if="self.flags.display_title !== false">
|
||||
<t t-esc="self.display_title()"/>
|
||||
<span class="oe_view_title_text"><t t-esc="self.display_title()"/></span>
|
||||
</h2>
|
||||
<div class="oe_vm_switch">
|
||||
<t t-if="views.length != 1" t-foreach="views" t-as="view">
|
||||
@@ -443,21 +440,30 @@
|
||||
</t>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</t>
|
||||
|
||||
<t t-extend="ViewManager" t-name="ViewManagerAction">
|
||||
<t t-jquery=".oe-view-manager-header" t-operation="prepend">
|
||||
<blockquote t-if="self.action.help and !self.flags.low_profile
|
||||
and !(self.action.id in self.session.hidden_menutips)">
|
||||
<p><t t-esc="self.action.help"/></p>
|
||||
<div>
|
||||
<button type="button" name="hide">Hide this tip</button>
|
||||
<button type="button" name="disable">Disable all tips</button>
|
||||
</div>
|
||||
</blockquote>
|
||||
<a class="oe-shortcut-toggle" title="Add / Remove Shortcut..."
|
||||
href="javascript: void(0)"> </a>
|
||||
<t t-jquery=".view-manager-main-table tbody" t-operation="prepend">
|
||||
<tr>
|
||||
<td class="oe_view_manager_menu_tips" colspan="2">
|
||||
<blockquote t-if="self.action.help and !self.flags.low_profile
|
||||
and !(self.action.id in self.session.hidden_menutips)">
|
||||
<p><t t-esc="self.action.help"/></p>
|
||||
<div>
|
||||
<button type="button" name="hide">Hide this tip</button>
|
||||
<button type="button" name="disable">Disable all tips</button>
|
||||
</div>
|
||||
</blockquote>
|
||||
</td>
|
||||
</tr>
|
||||
</t>
|
||||
<t t-jquery="h2.oe_view_title" t-operation="prepend">
|
||||
<a class="oe-shortcut-toggle" title="Add / Remove Shortcut..."
|
||||
href="javascript: void(0)"> </a>
|
||||
</t>
|
||||
<t t-jquery="h2.oe_view_title" t-operation="after">
|
||||
<button t-if="self.session.debug" class="oe_get_xml_view">
|
||||
View#<span></span>
|
||||
</button>
|
||||
@@ -534,16 +540,17 @@
|
||||
t-att-id="'treerow_' + record.id"
|
||||
t-att-data-id="record.id" t-att-data-level="level + 1">
|
||||
<t t-set="children" t-value="record[children_field]"/>
|
||||
<t t-set="has_children" t-value="children and children.length"/>
|
||||
<t t-set="class" t-value="children and children.length ? 'treeview-tr' : 'treeview-td'"/>
|
||||
|
||||
<td t-foreach="fields_view" t-as="field"
|
||||
t-if="!field.attrs.modifiers.tree_invisible"
|
||||
t-att-data-id="record.id"
|
||||
t-att-style="color_for(record) + (!field_index ? 'background-position: ' + 19*level + 'px; padding-left: ' + 19*level + 'px;' : '')"
|
||||
t-att-class="!field_index and has_children ? 'treeview-tr' : 'treeview-td'">
|
||||
t-att-class="class">
|
||||
<span t-if="!field.attrs.modifiers.invisible">
|
||||
<t t-esc="render(record[field.attrs.name], fields[field.attrs.name])" />
|
||||
</span>
|
||||
<t t-set="class" t-value="'treeview-td'"/>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -642,7 +649,7 @@
|
||||
</td>
|
||||
</t>
|
||||
<td t-if="options.deletable" class='oe-record-delete' width="1">
|
||||
<button type="button" name="delete">♻</button>
|
||||
<button type="button" name="delete"></button>
|
||||
</td>
|
||||
</tr>
|
||||
<t t-name="ListView.row.form">
|
||||
@@ -727,6 +734,11 @@
|
||||
</tr>
|
||||
</table>
|
||||
</t>
|
||||
<t t-name="WidgetFrame.readonly" t-extend="WidgetFrame">
|
||||
<t t-jquery=">table">
|
||||
this.attr('class', this.attr('class')+' oe_form_readonly');
|
||||
</t>
|
||||
</t>
|
||||
<t t-name="WidgetGroup">
|
||||
<t t-if="widget.string">
|
||||
<fieldset class="oe_group_box">
|
||||
@@ -1126,15 +1138,17 @@
|
||||
</form>
|
||||
</t>
|
||||
<t t-name="SearchView.managed-filters">
|
||||
<option value="_filters">-- Filters --</option>
|
||||
<t t-set="i" t-value="0"/>
|
||||
<t t-foreach="filters" t-as="filter">
|
||||
<option t-att-value="'get:' + i"><t t-esc="filter.name"/></option>
|
||||
<t t-set="i" t-value="i+1"/>
|
||||
</t>
|
||||
<option value="_actions">-- Actions --</option>
|
||||
<option value="save_filter">Save Filter</option>
|
||||
<option value="manage_filters">Manage Filters</option>
|
||||
<option/>
|
||||
<optgroup label="-- Filters --">
|
||||
<t t-foreach="filters" t-as="filter">
|
||||
<option t-attf-value="get:#{filter_index}"><t t-esc="filter.name"/></option>
|
||||
</t>
|
||||
</optgroup>
|
||||
<optgroup label="-- Actions --">
|
||||
<option value="save_filter">Save Filter</option>
|
||||
<option value="add_to_dashboard">Add to Dashboard</option>
|
||||
<option value="manage_filters">Manage Filters</option>
|
||||
</optgroup>
|
||||
</t>
|
||||
<t t-name="SearchView.managed-filters.add">
|
||||
<div>
|
||||
@@ -1143,6 +1157,16 @@
|
||||
<p>(Any existing filter with the same name will be replaced)</p>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SearchView.add_to_dashboard">
|
||||
<div class="oe_forms">
|
||||
<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>
|
||||
</select>
|
||||
<p><b>Title of new Dashboard item:</b></p>
|
||||
<input type="text" style="width: 100%; margin-right: 1em;"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="SearchView.render_lines">
|
||||
<table class="oe-searchview-render-line" border="0" cellspacing="0" cellpadding="0"
|
||||
t-foreach="lines" t-as="line">
|
||||
@@ -1660,7 +1684,7 @@
|
||||
</table>
|
||||
</t>
|
||||
<t t-name="ImportView.error">
|
||||
<p style="white-space:pre-line;">The import failed due to:<t t-esc="error.message"/></p>
|
||||
<p style="white-space:pre;">The import failed due to:<t t-esc="error.message"/></p>
|
||||
<t t-if="error.preview">
|
||||
<p>Here is a preview of the file we could not import:</p>
|
||||
<pre><t t-esc="error.preview"/></pre>
|
||||
@@ -1710,4 +1734,4 @@
|
||||
<t t-name="EmptyComponent">
|
||||
<div></div>
|
||||
</t>
|
||||
</templates>
|
||||
</templates>
|
||||
|
||||
@@ -63,6 +63,13 @@ $(document).ready(function () {
|
||||
// var res = openerp.web.parse_value(val.toString("HH:mm:ss"), {type:"time"});
|
||||
// equal(val.toString("HH:mm:ss"), res.toString("HH:mm:ss"));
|
||||
// });
|
||||
test('parse_integer', function () {
|
||||
var val = openerp.web.parse_value('123,456', {type: 'integer'});
|
||||
equal(val, 123456);
|
||||
openerp.web._t.database.parameters.thousands_sep = '|';
|
||||
var val2 = openerp.web.parse_value('123|456', {type: 'integer'});
|
||||
equal(val2, 123456);
|
||||
});
|
||||
test("parse_float", function () {
|
||||
var str = "134,112.1234";
|
||||
var val = openerp.web.parse_value(str, {type:"float"});
|
||||
@@ -70,6 +77,12 @@ $(document).ready(function () {
|
||||
var str = "-134,112.1234";
|
||||
var val = openerp.web.parse_value(str, {type:"float"});
|
||||
equal(val, -134112.1234);
|
||||
_.extend(openerp.web._t.database.parameters, {
|
||||
decimal_point: ',',
|
||||
thousands_sep: '.'
|
||||
});
|
||||
var val3 = openerp.web.parse_value('123.456,789', {type: 'float'});
|
||||
equal(val3, 123456.789);
|
||||
});
|
||||
test('intersperse', function () {
|
||||
var g = openerp.web.intersperse;
|
||||
@@ -100,6 +113,8 @@ $(document).ready(function () {
|
||||
equal(g("12345678", [2, 0, 1], '.'), '12.34.56.78');
|
||||
equal(g("12345678", [2, 0, 0], '.'), '12.34.56.78');
|
||||
equal(g("12345678", [2, 0, -1], '.'), '12.34.56.78');
|
||||
equal(g("12345678", [3,3,3,3], '.'), '12.345.678');
|
||||
equal(g("12345678", [3,0], '.'), '12.345.678');
|
||||
});
|
||||
test('format_integer', function () {
|
||||
openerp.web._t.database.parameters.grouping = [3, 3, 3, 3];
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
<title>OpenERP</title>
|
||||
<link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
|
||||
|
||||
<link rel="stylesheet" href="/web/static/lib/qunit/qunit-2011-23-22.css">
|
||||
<script src="/web/static/lib/qunit/qunit-2011-23-22.js" type="text/javascript"></script>
|
||||
<link rel="stylesheet" href="/web/static/lib/qunit/qunit.css">
|
||||
<script src="/web/static/lib/qunit/qunit.js" type="text/javascript"></script>
|
||||
|
||||
<script src="/web/static/lib/underscore/underscore.js" type="text/javascript"></script>
|
||||
<script src="/web/static/lib/underscore/underscore.string.js" type="text/javascript"></script>
|
||||
|
||||
<!-- jquery -->
|
||||
<script src="/web/static/lib/jquery/jquery-1.6.2.js"></script>
|
||||
<script src="/web/static/lib/jquery/jquery-1.6.4.js"></script>
|
||||
<script src="/web/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
|
||||
|
||||
<script src="/web/static/lib/datejs/globalization/en-US.js"></script>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "web calendar",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web calendar view.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": ['web'],
|
||||
"js": [
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# Bengali translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-11-24 12:51+0000\n"
|
||||
"Last-Translator: nasir khan saikat <nasir8891@gmail.com>\n"
|
||||
"Language-Team: Bengali <bn@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: 2011-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14376)\n"
|
||||
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
@@ -0,0 +1,22 @@
|
||||
# Croatian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-11-28 12:04+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: Croatian <hr@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: 2011-11-29 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 14399)\n"
|
||||
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
@@ -0,0 +1,22 @@
|
||||
# Dutch translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-12-01 13:57+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2011-12-02 05:28+0000\n"
|
||||
"X-Generator: Launchpad (build 14414)\n"
|
||||
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:0
|
||||
msgid " "
|
||||
msgstr " "
|
||||
@@ -0,0 +1,22 @@
|
||||
# Russian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:38+0200\n"
|
||||
"PO-Revision-Date: 2011-12-02 07:07+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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: 2011-12-03 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_calendar/static/src/xml/web_calendar.xml:0
|
||||
msgid " "
|
||||
msgstr ""
|
||||
@@ -246,44 +246,75 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({
|
||||
var self = this,
|
||||
data = this.get_event_data(event_obj);
|
||||
this.dataset.create(data, function(r) {
|
||||
var id = parseInt(r.result, 10);
|
||||
var id = r.result;
|
||||
self.dataset.ids.push(id);
|
||||
scheduler.changeEventId(event_id, id);
|
||||
self.refresh_minical();
|
||||
}, function(r, event) {
|
||||
self.creating_event_id = event_id;
|
||||
self.form_dialog.form.on_record_loaded(data);
|
||||
self.form_dialog.open();
|
||||
event.preventDefault();
|
||||
self.do_create_event_with_formdialog(event_id, event_obj);
|
||||
});
|
||||
},
|
||||
do_create_event_with_formdialog: function(event_id, event_obj) {
|
||||
if (!event_obj) {
|
||||
event_obj = scheduler.getEvent(event_id);
|
||||
}
|
||||
var self = this,
|
||||
data = this.get_event_data(event_obj),
|
||||
form = self.form_dialog.form,
|
||||
fields_to_fetch = _(form.fields_view.fields).keys();
|
||||
this.dataset.index = null;
|
||||
self.creating_event_id = event_id;
|
||||
this.form_dialog.form.do_show().then(function() {
|
||||
form.show_invalid = false;
|
||||
_.each(['date_start', 'date_stop', 'date_delay'], function(field) {
|
||||
var field_name = self[field];
|
||||
if (field_name) {
|
||||
field = form.fields[field_name];
|
||||
field.set_value(data[field_name]);
|
||||
field.dirty = true;
|
||||
form.do_onchange(field);
|
||||
}
|
||||
});
|
||||
form.show_invalid = true;
|
||||
self.form_dialog.open();
|
||||
});
|
||||
},
|
||||
do_save_event: function(event_id, event_obj) {
|
||||
var self = this,
|
||||
data = this.get_event_data(event_obj);
|
||||
this.dataset.write(parseInt(event_id, 10), data, {}, function() {
|
||||
self.refresh_minical();
|
||||
});
|
||||
data = this.get_event_data(event_obj),
|
||||
index = this.dataset.get_id_index(event_id);
|
||||
if (index != null) {
|
||||
this.dataset.write(event_id, data, {}, function() {
|
||||
self.refresh_minical();
|
||||
});
|
||||
}
|
||||
},
|
||||
do_delete_event: function(event_id, event_obj) {
|
||||
var self = this;
|
||||
// dhtmlx sends this event even when it does not exist in openerp.
|
||||
// Eg: use cancel in dhtmlx new event dialog
|
||||
if (_.indexOf(this.dataset.ids, parseInt(event_id, 10)) > -1) {
|
||||
this.dataset.unlink(parseInt(event_id, 10), function() {
|
||||
var self = this,
|
||||
index = this.dataset.get_id_index(event_id);
|
||||
if (index !== null) {
|
||||
this.dataset.unlink(event_id, function() {
|
||||
self.refresh_minical();
|
||||
});
|
||||
}
|
||||
},
|
||||
do_edit_event: function(event_id) {
|
||||
var self = this;
|
||||
event_id = parseInt(event_id, 10);
|
||||
var index = _.indexOf(this.dataset.ids, event_id);
|
||||
if (index > -1) {
|
||||
var index = this.dataset.get_id_index(event_id);
|
||||
if (index !== null) {
|
||||
this.dataset.index = index;
|
||||
this.form_dialog.form.do_show().then(function() {
|
||||
self.form_dialog.open();
|
||||
});
|
||||
return false;
|
||||
} else if (scheduler.getState().mode === 'month') {
|
||||
this.do_create_event_with_formdialog(event_id);
|
||||
// TODO: check dhtmlxscheduler problem here. At this line, scheduler
|
||||
// event 'onEventChanged' bound to this.do_save_event() won't be fired !;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "Web Chat",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web chat module.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": ['web'],
|
||||
"js": [
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "web Dashboard",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web dashboard view.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": ['web'],
|
||||
"js": [
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# Bengali translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-11-24 12:53+0000\n"
|
||||
"Last-Translator: nasir khan saikat <nasir8891@gmail.com>\n"
|
||||
"Language-Team: Bengali <bn@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: 2011-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14376)\n"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Add Widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Change layout"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "progress:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
@@ -0,0 +1,46 @@
|
||||
# Croatian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-11-28 12:07+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: Croatian <hr@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: 2011-11-29 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 14399)\n"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Reset"
|
||||
msgstr "Vrati izvorno"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Undo"
|
||||
msgstr "Vrati"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Add Widget"
|
||||
msgstr "Dodaj widget"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Change layout"
|
||||
msgstr "Promijeni raspored"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr "Odaberi raspored"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "progress:"
|
||||
msgstr "napredak:"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
@@ -0,0 +1,46 @@
|
||||
# Dutch translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-01 13:58+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2011-12-02 05:28+0000\n"
|
||||
"X-Generator: Launchpad (build 14414)\n"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Reset"
|
||||
msgstr "Reset"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Undo"
|
||||
msgstr "Ongedaan maken"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Add Widget"
|
||||
msgstr "Widget toevoegen"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Change layout"
|
||||
msgstr "Layout wijzigen"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr "Kies dashboard layout"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "progress:"
|
||||
msgstr "voortgang:"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "%"
|
||||
msgstr "%"
|
||||
@@ -0,0 +1,46 @@
|
||||
# Russian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-02 07:09+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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: 2011-12-03 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Undo"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Add Widget"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Change layout"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "progress:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_dashboard/static/src/xml/web_dashboard.xml:0
|
||||
msgid "%"
|
||||
msgstr ""
|
||||
@@ -169,6 +169,11 @@
|
||||
text-transform: uppercase;
|
||||
margin: 0 0 0.5em 0;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview .oe-config-tip {
|
||||
color: #222;
|
||||
text-shadow: #eee 0 1px 0;
|
||||
text-align: center;
|
||||
}
|
||||
.openerp .oe-dashboard-config-overview dt {
|
||||
font-weight: bold;
|
||||
text-transform: uppercase;
|
||||
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
@@ -26,7 +26,6 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
// Events
|
||||
this.$element.find('.oe-dashboard-link-undo').click(this.on_undo);
|
||||
this.$element.find('.oe-dashboard-link-reset').click(this.on_reset);
|
||||
this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget);
|
||||
this.$element.find('.oe-dashboard-link-change_layout').click(this.on_change_layout);
|
||||
|
||||
this.$element.delegate('.oe-dashboard-column .oe-dashboard-fold', 'click', this.on_fold_action);
|
||||
@@ -34,19 +33,19 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
|
||||
this.actions_attrs = {};
|
||||
// Init actions
|
||||
_.each(this.node.children, function(column) {
|
||||
_.each(column.children, function(action) {
|
||||
_.each(this.node.children, function(column, column_index) {
|
||||
_.each(column.children, function(action, action_index) {
|
||||
delete(action.attrs.width);
|
||||
delete(action.attrs.height);
|
||||
delete(action.attrs.colspan);
|
||||
self.actions_attrs[action.attrs.name] = action.attrs;
|
||||
self.rpc('/web/action/load', {
|
||||
action_id: parseInt(action.attrs.name, 10)
|
||||
}, self.on_load_action);
|
||||
}, function(result) {
|
||||
self.on_load_action(result, column_index + '_' + action_index);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
//this.$element.find('a.oe-dashboard-action-rename').live('click', this.on_rename);
|
||||
},
|
||||
on_undo: function() {
|
||||
this.rpc('/web/view/undo_custom', {
|
||||
@@ -59,85 +58,6 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
reset: true
|
||||
}, this.do_reload);
|
||||
},
|
||||
on_add_widget: function() {
|
||||
var self = this;
|
||||
var action_manager = new openerp.web.ActionManager(this);
|
||||
var dialog = new openerp.web.Dialog(this, {
|
||||
title : 'Actions',
|
||||
width: 800,
|
||||
height: 600,
|
||||
buttons : {
|
||||
Cancel : function() {
|
||||
$(this).dialog('destroy');
|
||||
},
|
||||
Add : function() {
|
||||
self.do_add_widget(action_manager.inner_viewmanager.views.list.controller);
|
||||
$(this).dialog('destroy');
|
||||
}
|
||||
}
|
||||
}).start().open();
|
||||
action_manager.appendTo(dialog.$element);
|
||||
action_manager.do_action({
|
||||
res_model : 'ir.actions.actions',
|
||||
views : [[false, 'list']],
|
||||
type : 'ir.actions.act_window',
|
||||
limit : 80,
|
||||
auto_search : true,
|
||||
flags : {
|
||||
sidebar : false,
|
||||
views_switcher : false,
|
||||
action_buttons : false
|
||||
}
|
||||
});
|
||||
// TODO: should bind ListView#select_record in order to catch record clicking
|
||||
},
|
||||
do_add_widget : function(listview) {
|
||||
var self = this,
|
||||
actions = listview.groups.get_selection().ids,
|
||||
results = [],
|
||||
qdict = { view : this.view };
|
||||
// TODO: should load multiple actions at once
|
||||
_.each(actions, function(aid) {
|
||||
self.rpc('/web/action/load', {
|
||||
action_id: aid
|
||||
}, function(result) {
|
||||
self.actions_attrs[aid] = {
|
||||
name: aid,
|
||||
string: _.str.trim(result.result.name)
|
||||
};
|
||||
qdict.action = {
|
||||
attrs : self.actions_attrs[aid]
|
||||
};
|
||||
self.$element.find('.oe-dashboard-column:first').prepend(QWeb.render('DashBoard.action', qdict));
|
||||
self.do_save_dashboard();
|
||||
self.on_load_action(result)
|
||||
});
|
||||
});
|
||||
},
|
||||
on_rename : function(e) {
|
||||
var self = this,
|
||||
id = parseInt($(e.currentTarget).parents('.oe-dashboard-action:first').attr('data-id'), 10),
|
||||
$header = $(e.currentTarget).parents('.oe-dashboard-action-header:first'),
|
||||
$rename = $header.find('a.oe-dashboard-action-rename').hide(),
|
||||
$title = $header.find('span.oe-dashboard-action-title').hide(),
|
||||
$input = $header.find('input[name=title]');
|
||||
$input.val($title.text()).show().focus().bind('keydown', function(e) {
|
||||
if (e.which == 13 || e.which == 27) {
|
||||
if (e.which == 13) { //enter
|
||||
var val = $input.val();
|
||||
if (!val) {
|
||||
return false;
|
||||
}
|
||||
$title.text(val);
|
||||
self.actions_attrs[id].string = val;
|
||||
self.do_save_dashboard();
|
||||
}
|
||||
$input.unbind('keydown').hide();
|
||||
$rename.show();
|
||||
$title.show();
|
||||
}
|
||||
});
|
||||
},
|
||||
on_change_layout: function() {
|
||||
var self = this;
|
||||
var qdict = {
|
||||
@@ -191,8 +111,10 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
this.do_save_dashboard();
|
||||
},
|
||||
on_close_action: function(e) {
|
||||
$(e.currentTarget).parents('.oe-dashboard-action:first').remove();
|
||||
this.do_save_dashboard();
|
||||
if (confirm("Are you sure you want to remove this item ?")) {
|
||||
$(e.currentTarget).parents('.oe-dashboard-action:first').remove();
|
||||
this.do_save_dashboard();
|
||||
}
|
||||
},
|
||||
do_save_dashboard: function() {
|
||||
var self = this;
|
||||
@@ -204,8 +126,17 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
this.$element.find('.oe-dashboard-column').each(function() {
|
||||
var actions = [];
|
||||
$(this).find('.oe-dashboard-action').each(function() {
|
||||
var action_id = $(this).attr('data-id');
|
||||
actions.push(self.actions_attrs[action_id]);
|
||||
var action_id = $(this).attr('data-id'),
|
||||
new_attrs = _.clone(self.actions_attrs[action_id]);
|
||||
if (new_attrs.domain) {
|
||||
new_attrs.domain = new_attrs.domain_string;
|
||||
delete(new_attrs.domain_string);
|
||||
}
|
||||
if (new_attrs.context) {
|
||||
new_attrs.context = new_attrs.context_string;
|
||||
delete(new_attrs.context_string);
|
||||
}
|
||||
actions.push(new_attrs);
|
||||
});
|
||||
board.columns.push(actions);
|
||||
});
|
||||
@@ -217,7 +148,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
self.$element.find('.oe-dashboard-link-undo, .oe-dashboard-link-reset').show();
|
||||
});
|
||||
},
|
||||
on_load_action: function(result) {
|
||||
on_load_action: function(result, index) {
|
||||
var self = this,
|
||||
action = result.result,
|
||||
action_attrs = this.actions_attrs[action.id],
|
||||
@@ -261,7 +192,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
|
||||
};
|
||||
var am = new openerp.web.ActionManager(this);
|
||||
this.action_managers.push(am);
|
||||
am.appendTo($("#"+this.view.element_id + '_action_' + action.id));
|
||||
am.appendTo($('#' + this.view.element_id + '_action_' + index));
|
||||
am.do_action(action);
|
||||
am.do_action = function(action) {
|
||||
self.do_action(action);
|
||||
|
||||
@@ -9,10 +9,6 @@
|
||||
<img src="/web/static/src/img/icons/gtk-undo.png" width="16" height="16"/>
|
||||
<span>Undo</span>
|
||||
</button>
|
||||
<button type="button" class="button oe-dashboard-link-add_widget">
|
||||
<img src="/web/static/src/img/icons/STOCK_ADD.png" width="16" height="16"/>
|
||||
<span>Add Widget</span>
|
||||
</button>
|
||||
<button type="button" class="button oe-dashboard-link-change_layout">
|
||||
<img src="/web/static/src/img/icons/gtk-edit.png" width="16" height="16"/>
|
||||
<span>Change layout</span>
|
||||
@@ -31,14 +27,13 @@
|
||||
<t t-name="DashBoard.action">
|
||||
<div t-att-data-id="action.attrs.name" class="oe-dashboard-action">
|
||||
<h2 t-attf-class="oe-dashboard-action-header #{action.attrs.string ? '' : 'oe-dashboard-action-header-empty'}">
|
||||
<input class="oe-dashboard-action-input" type="text" name="title" value="" style="display: none"/>
|
||||
<t t-esc="action.attrs.string"/>
|
||||
<t t-if="!action.attrs.string">&nbsp;</t>
|
||||
<span class='ui-icon ui-icon-closethick'></span>
|
||||
<span class='ui-icon ui-icon-minusthick oe-dashboard-fold' t-if="!action.attrs.fold"></span>
|
||||
<span class='ui-icon ui-icon-plusthick oe-dashboard-fold' t-if="action.attrs.fold"></span>
|
||||
</h2>
|
||||
<div t-att-id="view.element_id + '_action_' + action.attrs.name" class="oe-dashboard-action-content" t-att-style="action.attrs.fold ? 'display: none' : null"></div>
|
||||
<div t-attf-id="#{view.element_id}_action_#{column_index}_#{action_index}" class="oe-dashboard-action-content" t-att-style="action.attrs.fold ? 'display: none' : null"></div>
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="DashBoard.layouts">
|
||||
@@ -72,6 +67,7 @@
|
||||
</h6>
|
||||
<div class="oe-config-progress-bar" t-att-data-completion="completion"/>
|
||||
</div>
|
||||
<p class="oe-config-tip">Click on the functionalites listed below to launch them and configure your system</p>
|
||||
<dl>
|
||||
<t t-foreach="groups" t-as="category">
|
||||
<dt><t t-esc="category"/></dt>
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# Croatian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-11-28 12:10+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: Croatian <hr@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: 2011-11-29 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 14399)\n"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Welcome to your new OpenERP instance."
|
||||
msgstr "Dobrodošli u Vašu novu OpenERP instancu"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember to bookmark this page."
|
||||
msgstr "Zabilježite ovu stranicu."
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember your login:"
|
||||
msgstr "Vaše korisničko ime:"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Choose the first OpenERP Application you want to install.."
|
||||
msgstr "Instalirajte prvu OpenERP aplikaciju."
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Install"
|
||||
msgstr "Instaliraj"
|
||||
@@ -0,0 +1,38 @@
|
||||
# Dutch translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-01 14:00+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2011-12-02 05:28+0000\n"
|
||||
"X-Generator: Launchpad (build 14414)\n"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Welcome to your new OpenERP instance."
|
||||
msgstr "Welkom bij uw nieuwe OpenERP versie."
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember to bookmark this page."
|
||||
msgstr "Vergeet niet een bladwijzer te maken van deze pagina"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember your login:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Choose the first OpenERP Application you want to install.."
|
||||
msgstr "Kies de eerste OpenERP applicatie die u wilt installeren.."
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Install"
|
||||
msgstr "Installeren"
|
||||
@@ -0,0 +1,38 @@
|
||||
# Russian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-02 07:13+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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: 2011-12-03 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Welcome to your new OpenERP instance."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember to bookmark this page."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Remember your login:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Choose the first OpenERP Application you want to install.."
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_default_home/static/src/xml/web_default_home.xml:0
|
||||
msgid "Install"
|
||||
msgstr ""
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name" : "OpenERP Web Diagram",
|
||||
"category" : "Hidden",
|
||||
"description":'Openerp web Diagram view',
|
||||
"version" : "2.0",
|
||||
"depends" : ["base"],
|
||||
"js": [
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# Bengali translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-11-24 12:54+0000\n"
|
||||
"Last-Translator: nasir khan saikat <nasir8891@gmail.com>\n"
|
||||
"Language-Team: Bengali <bn@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: 2011-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14376)\n"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "New Node"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "New Edge"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "Show Grid:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "First"
|
||||
msgstr "প্রথম"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "<<"
|
||||
msgstr "<<"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "0"
|
||||
msgstr "0"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "/"
|
||||
msgstr "/"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid ">>"
|
||||
msgstr ">>"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "Last"
|
||||
msgstr "শেষ"
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-10-10 12:41+0000\n"
|
||||
"Last-Translator: Felix Schubert <Unknown>\n"
|
||||
"PO-Revision-Date: 2011-12-03 10:46+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@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: 2011-11-21 05:50+0000\n"
|
||||
"X-Generator: Launchpad (build 14299)\n"
|
||||
"X-Launchpad-Export-Date: 2011-12-04 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "New Node"
|
||||
@@ -27,7 +27,7 @@ msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "Show Grid:"
|
||||
msgstr ""
|
||||
msgstr "Raster anzeigen"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "First"
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
# Russian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-02 07:14+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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: 2011-12-03 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "New Node"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "New Edge"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "Show Grid:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "First"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "<<"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "0"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "/"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid ">>"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_diagram/static/src/xml/base_diagram.xml:0
|
||||
msgid "Last"
|
||||
msgstr ""
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "web Gantt",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web gantt chart view.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": ['web'],
|
||||
"js": [
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "web Graph",
|
||||
"category" : "Hidden",
|
||||
"description":'Openerp web graph view',
|
||||
"version": "2.0",
|
||||
"depends": ['web'],
|
||||
"js": [
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "Hello",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web example module.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": [],
|
||||
"js": ["static/*/*.js", "static/*/js/*.js"],
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
# French translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-03 02:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French <fr@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: 2011-12-04 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name" : "Base Kanban",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web kanban view.
|
||||
""",
|
||||
"version" : "2.0",
|
||||
"depends" : ["web"],
|
||||
"js": [
|
||||
|
||||
@@ -18,9 +18,10 @@
|
||||
}
|
||||
|
||||
.openerp .oe_kanban_group_title {
|
||||
color: #000000;
|
||||
font-size: 130%;
|
||||
font-size: 100%;
|
||||
font-weight: bold;
|
||||
padding-left: 2px;
|
||||
color: #333333;
|
||||
}
|
||||
.openerp .oe_kanban_group_title_undefined {
|
||||
color: #666666;
|
||||
@@ -34,7 +35,6 @@
|
||||
transform: rotate(90deg);
|
||||
width: 30px;
|
||||
height: 20px;
|
||||
align: center;
|
||||
font-size: 24px;
|
||||
white-space: nowrap;
|
||||
display: none;
|
||||
@@ -45,7 +45,7 @@
|
||||
.openerp .oe_kanban_fold_icon {
|
||||
cursor: pointer;
|
||||
float: left;
|
||||
padding: 2px 2px 0 0;
|
||||
padding: 2px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
background: url(/web_kanban/static/src/img/minus-icon.png) no-repeat;
|
||||
@@ -64,6 +64,7 @@
|
||||
}
|
||||
.openerp ul.oe_kanban_aggregates span {
|
||||
text-decoration: underline;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
.openerp .oe_kanban_action_button {
|
||||
@@ -78,27 +79,19 @@
|
||||
background: #FFF;
|
||||
border: 2px solid #CCC;
|
||||
border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.openerp .oe_kanban_box_header {
|
||||
background: #EEE;
|
||||
border-bottom: 1px solid #CCC;
|
||||
}
|
||||
.openerp .oe_kanban_title1 {
|
||||
font-size: 120%;
|
||||
.openerp .oe_kanban_title {
|
||||
font-size: 95%;
|
||||
font-weight: bold;
|
||||
padding: 0 4px 0 4px;
|
||||
}
|
||||
.openerp .oe_kanban_title2 {
|
||||
font-size: 110%;
|
||||
font-weight: bold;
|
||||
padding: 0 4px 0 4px;
|
||||
}
|
||||
.openerp .oe_kanban_title3 {
|
||||
font-size: 100%;
|
||||
font-weight: normal;
|
||||
padding: 0 4px 0 4px;
|
||||
}
|
||||
.openerp .oe_kanban_small {
|
||||
font-size: 80%;
|
||||
font-weight: normal;
|
||||
@@ -110,12 +103,34 @@
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_kanban_table tr td {
|
||||
padding: 0;
|
||||
}
|
||||
.openerp .oe_kanban_table tr td.oe_kanban_title {
|
||||
padding: 2px;
|
||||
}
|
||||
.openerp .oe_kanban_gravatar {
|
||||
display: block;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.openerp .oe_kanban_box_content {
|
||||
padding: 4px;
|
||||
font-size: 90%;
|
||||
}
|
||||
.openerp .oe_kanban_button {
|
||||
border: 1px solid #8ec1da;
|
||||
background-color: #ddeef6;
|
||||
border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
-webkit-border-radius: 3px;
|
||||
color: #000000;
|
||||
text-shadow: 0 1px #fff;
|
||||
padding: 0 4px;
|
||||
font-size: 85%;
|
||||
margin: 1px;
|
||||
}
|
||||
.openerp a.oe_kanban_button:hover,
|
||||
.openerp button.oe_kanban_button:hover {
|
||||
background-color: #eeddf6;
|
||||
}
|
||||
.openerp .oe_kanban_buttons_set {
|
||||
border-top: 1px dotted;
|
||||
@@ -141,10 +156,19 @@
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border: 1px solid black;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
}
|
||||
.oe_kanban_color_picker a:hover {
|
||||
border-color: white;
|
||||
}
|
||||
.oe_kanban_color_picker span {
|
||||
border: none;
|
||||
font-size: 120%;
|
||||
font-weight: bold;
|
||||
color: black;
|
||||
line-height: 30px;
|
||||
}
|
||||
.openerp .oe_kanban_left {
|
||||
float: left;
|
||||
}
|
||||
@@ -166,6 +190,22 @@
|
||||
.openerp .oe_kanban_color_border {
|
||||
border-color: #CCCCCC;
|
||||
}
|
||||
.openerp .oe_kanban_tooltip ul,
|
||||
.openerp ul.oe_kanban_tooltip {
|
||||
padding: 0 0 4px 0;
|
||||
margin: 5px 0 0 15px;
|
||||
list-style: circle;
|
||||
}
|
||||
.openerp .oe_kanban_highlight {
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
padding: 1px 5px;
|
||||
margin: 1px 4px;
|
||||
white-space: nowrap;
|
||||
display: inline-block;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
/* Custom colors are also present in kanban.js */
|
||||
/* Custom color#0 */
|
||||
@@ -178,6 +218,18 @@
|
||||
.openerp .oe_kanban_color_0 .oe_kanban_color_border {
|
||||
border-color: #CCCCCC;
|
||||
}
|
||||
.openerp .oe_kanban_color_0 .oe_kanban_button {
|
||||
background-color: #EEEEEE;
|
||||
border-color: #CCCCCC;
|
||||
text-shadow: 0 1px #FFFFFF;
|
||||
}
|
||||
.openerp .oe_kanban_color_0 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_0 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_0 button.oe_kanban_button:hover {
|
||||
background-color: #999999;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#1 */
|
||||
.openerp .oe_kanban_color_1 .oe_kanban_color_bglight {
|
||||
@@ -189,6 +241,18 @@
|
||||
.openerp .oe_kanban_color_1 .oe_kanban_color_border {
|
||||
border-color: #666666;
|
||||
}
|
||||
.openerp .oe_kanban_color_1 .oe_kanban_button {
|
||||
background-color: #999999;
|
||||
border-color: #666666;
|
||||
text-shadow: 0 1px #CCCCCC;
|
||||
}
|
||||
.openerp .oe_kanban_color_1 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_1 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_1 button.oe_kanban_button:hover {
|
||||
background-color: #666666;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#2 */
|
||||
.openerp .oe_kanban_color_2 .oe_kanban_color_bglight {
|
||||
@@ -200,6 +264,18 @@
|
||||
.openerp .oe_kanban_color_2 .oe_kanban_color_border {
|
||||
border-color: #D97979;
|
||||
}
|
||||
.openerp .oe_kanban_color_2 .oe_kanban_button {
|
||||
background-color: #FF8F8F;
|
||||
border-color: #D97979;
|
||||
text-shadow: 0 1px #FFC7C7;
|
||||
}
|
||||
.openerp .oe_kanban_color_2 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_2 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_2 button.oe_kanban_button:hover {
|
||||
background-color: #CC5C5C;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#3 */
|
||||
.openerp .oe_kanban_color_3 .oe_kanban_color_bglight {
|
||||
@@ -211,6 +287,18 @@
|
||||
.openerp .oe_kanban_color_3 .oe_kanban_color_border {
|
||||
border-color: #D9C179;
|
||||
}
|
||||
.openerp .oe_kanban_color_3 .oe_kanban_button {
|
||||
background-color: #FFE38F;
|
||||
border-color: #D9C179;
|
||||
text-shadow: 0 1px #FFF1C7;
|
||||
}
|
||||
.openerp .oe_kanban_color_3 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_3 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_3 button.oe_kanban_button:hover {
|
||||
background-color: #CCB05C;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#4 */
|
||||
.openerp .oe_kanban_color_4 .oe_kanban_color_bglight {
|
||||
@@ -222,6 +310,18 @@
|
||||
.openerp .oe_kanban_color_4 .oe_kanban_color_border {
|
||||
border-color: #A9D979;
|
||||
}
|
||||
.openerp .oe_kanban_color_4 .oe_kanban_button {
|
||||
background-color: #C7FF8F;
|
||||
border-color: #A9D979;
|
||||
text-shadow: 0 1px #E3FFC7;
|
||||
}
|
||||
.openerp .oe_kanban_color_4 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_4 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_4 button.oe_kanban_button:hover {
|
||||
background-color: #94CC5C;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#5 */
|
||||
.openerp .oe_kanban_color_5 .oe_kanban_color_bglight {
|
||||
@@ -233,6 +333,18 @@
|
||||
.openerp .oe_kanban_color_5 .oe_kanban_color_border {
|
||||
border-color: #79D991;
|
||||
}
|
||||
.openerp .oe_kanban_color_5 .oe_kanban_button {
|
||||
background-color: #8FFFAB;
|
||||
border-color: #79D991;
|
||||
text-shadow: 0 1px #C7FFD5;
|
||||
}
|
||||
.openerp .oe_kanban_color_5 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_5 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_5 button.oe_kanban_button:hover {
|
||||
background-color: #5CCC78;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#6 */
|
||||
.openerp .oe_kanban_color_6 .oe_kanban_color_bglight {
|
||||
@@ -244,6 +356,18 @@
|
||||
.openerp .oe_kanban_color_6 .oe_kanban_color_border {
|
||||
border-color: #79D9D9;
|
||||
}
|
||||
.openerp .oe_kanban_color_6 .oe_kanban_button {
|
||||
background-color: #8FFFFF;
|
||||
border-color: #79D9D9;
|
||||
text-shadow: 0 1px #C7FFFF;
|
||||
}
|
||||
.openerp .oe_kanban_color_6 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_6 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_6 button.oe_kanban_button:hover {
|
||||
background-color: #5CCCCC;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#7 */
|
||||
.openerp .oe_kanban_color_7 .oe_kanban_color_bglight {
|
||||
@@ -255,6 +379,18 @@
|
||||
.openerp .oe_kanban_color_7 .oe_kanban_color_border {
|
||||
border-color: #8FABFF;
|
||||
}
|
||||
.openerp .oe_kanban_color_7 .oe_kanban_button {
|
||||
background-color: #8FABFF;
|
||||
border-color: #7995E9;
|
||||
text-shadow: 0 1px #C7D5FF;
|
||||
}
|
||||
.openerp .oe_kanban_color_7 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_7 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_7 button.oe_kanban_button:hover {
|
||||
background-color: #5C78CC;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#8 */
|
||||
.openerp .oe_kanban_color_8 .oe_kanban_color_bglight {
|
||||
@@ -266,6 +402,18 @@
|
||||
.openerp .oe_kanban_color_8 .oe_kanban_color_border {
|
||||
border-color: #A979D9;
|
||||
}
|
||||
.openerp .oe_kanban_color_8 .oe_kanban_button {
|
||||
background-color: #C78FFF;
|
||||
border-color: #A979D9;
|
||||
text-shadow: 0 1px #E3C7FF;
|
||||
}
|
||||
.openerp .oe_kanban_color_8 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_8 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_8 button.oe_kanban_button:hover {
|
||||
background-color: #945CCC;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Custom color#9 */
|
||||
.openerp .oe_kanban_color_9 .oe_kanban_color_bglight {
|
||||
@@ -277,6 +425,18 @@
|
||||
.openerp .oe_kanban_color_9 .oe_kanban_color_border {
|
||||
border-color: #D979C1;
|
||||
}
|
||||
.openerp .oe_kanban_color_9 .oe_kanban_button {
|
||||
background-color: #FF8FE3;
|
||||
border-color: #D979C1;
|
||||
text-shadow: 0 1px #FFC7F1;
|
||||
}
|
||||
.openerp .oe_kanban_color_9 .oe_kanban_button_active,
|
||||
.openerp .oe_kanban_color_9 a.oe_kanban_button:hover,
|
||||
.openerp .oe_kanban_color_9 button.oe_kanban_button:hover {
|
||||
background-color: #CC5CB0;
|
||||
color: #fff;
|
||||
text-shadow: 0 1px #000;
|
||||
}
|
||||
|
||||
/* Red border */
|
||||
.openerp .oe_kanban_color_alert .oe_kanban_color_border,
|
||||
|
||||
@@ -26,10 +26,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
|
||||
this.group_operators = ['avg', 'max', 'min', 'sum', 'count'];
|
||||
this.qweb = new QWeb2.Engine();
|
||||
this.qweb.debug = openerp.connection.debug;
|
||||
this.qweb.default_dict = {
|
||||
'_' : _,
|
||||
'_t' : _t
|
||||
}
|
||||
this.qweb.default_dict = _.clone(QWeb.default_dict);
|
||||
this.has_been_loaded = $.Deferred();
|
||||
this.search_domain = this.search_context = this.search_group_by = null;
|
||||
this.currently_dragging = {};
|
||||
@@ -240,6 +237,7 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
|
||||
}
|
||||
},
|
||||
on_record_moved : function(record, old_group, old_index, new_group, new_index) {
|
||||
var self = this;
|
||||
if (old_group === new_group) {
|
||||
new_group.records.splice(old_index, 1);
|
||||
new_group.records.splice(new_index, 0, record);
|
||||
@@ -253,6 +251,10 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({
|
||||
this.dataset.write(record.id, data, {}, function() {
|
||||
record.do_reload();
|
||||
new_group.do_save_sequences();
|
||||
}).fail(function(error, evt) {
|
||||
evt.preventDefault();
|
||||
alert("An error has occured while moving the record to this group.");
|
||||
self.do_reload(); // TODO: use draggable + sortable in order to cancel the dragging when the rcp fails
|
||||
});
|
||||
}
|
||||
},
|
||||
@@ -378,24 +380,28 @@ openerp.web_kanban.KanbanRecord = openerp.web.Widget.extend({
|
||||
new_record = {};
|
||||
_.each(record, function(value, name) {
|
||||
var r = _.clone(self.view.fields_view.fields[name] || {});
|
||||
r.raw_value = value;
|
||||
if ((r.type === 'date' || r.type === 'datetime') && value) {
|
||||
r.raw_value = openerp.web.auto_str_to_date(value);
|
||||
} else {
|
||||
r.raw_value = value;
|
||||
}
|
||||
r.value = openerp.web.format_value(value, r);
|
||||
new_record[name] = r;
|
||||
});
|
||||
return new_record;
|
||||
},
|
||||
render: function() {
|
||||
var ctx = {
|
||||
this.qweb_context = {
|
||||
record: this.record,
|
||||
widget: this
|
||||
}
|
||||
for (var p in this) {
|
||||
if (_.str.startsWith(p, 'kanban_')) {
|
||||
ctx[p] = _.bind(this[p], this);
|
||||
this.qweb_context[p] = _.bind(this[p], this);
|
||||
}
|
||||
}
|
||||
return this._super({
|
||||
'content': this.view.qweb.render('kanban-box', ctx)
|
||||
'content': this.view.qweb.render('kanban-box', this.qweb_context)
|
||||
});
|
||||
},
|
||||
bind_events: function() {
|
||||
@@ -406,10 +412,23 @@ openerp.web_kanban.KanbanRecord = openerp.web.Widget.extend({
|
||||
$show_on_click.toggle();
|
||||
self.state.folded = !self.state.folded;
|
||||
});
|
||||
|
||||
this.$element.find('[tooltip]').tipTip({
|
||||
maxWidth: 500,
|
||||
defaultPosition: 'top',
|
||||
content: function() {
|
||||
var template = $(this).attr('tooltip');
|
||||
if (!self.view.qweb.has_template(template)) {
|
||||
return false;
|
||||
}
|
||||
return self.view.qweb.render(template, self.qweb_context);
|
||||
}
|
||||
});
|
||||
|
||||
this.$element.find('.oe_kanban_action').click(function() {
|
||||
var $action = $(this),
|
||||
type = $action.data('type') || 'button',
|
||||
method = 'do_action_' + type;
|
||||
method = 'do_action_' + (type === 'action' ? 'object' : type);
|
||||
if (typeof self[method] === 'function') {
|
||||
self[method]($action);
|
||||
} else {
|
||||
|
||||
@@ -15,20 +15,22 @@
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="KanbanView.group_header">
|
||||
<td class="oe_kanban_group_header">
|
||||
<td>
|
||||
<t t-if="widget.view.group_by">
|
||||
<div class="oe_kanban_fold_icon"></div>
|
||||
<div class="oe_fold_column">
|
||||
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
|
||||
<t t-esc="widget.title"/>
|
||||
<div class="oe_kanban_group_header">
|
||||
<div class="oe_kanban_fold_icon"></div>
|
||||
<div class="oe_fold_column">
|
||||
<div t-attf-class="oe_kanban_group_title #{widget.undefined_title ? 'oe_kanban_group_title_undefined' : ''}">
|
||||
<t t-esc="widget.title"/>
|
||||
</div>
|
||||
<ul class="oe_kanban_aggregates">
|
||||
<li t-foreach="widget.aggregates" t-as="aggregate">
|
||||
<span><t t-esc="aggregate"/>:</span> <t t-esc="aggregate_value"/>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="oe_kanban_aggregates">
|
||||
<li t-foreach="widget.aggregates" t-as="aggregate">
|
||||
<span><t t-esc="aggregate"/>:</span> <t t-esc="aggregate_value"/>
|
||||
</li>
|
||||
</ul>
|
||||
<p t-if="widget.title" class="oe_kanban_group_title_vertical"><t t-esc="widget.title"/></p>
|
||||
</div>
|
||||
<p t-if="widget.title" class="oe_kanban_group_title_vertical"><t t-esc="widget.title"/></p>
|
||||
</t>
|
||||
</td>
|
||||
</t>
|
||||
@@ -46,7 +48,9 @@
|
||||
<tr>
|
||||
<t t-foreach="colors" t-as="color">
|
||||
<td t-att-bgcolor="color">
|
||||
<a href="#" t-att-data-color="color_index"/>
|
||||
<a href="#" t-att-data-color="color_index">
|
||||
<span t-if="__debug__"><t t-esc="color_index"/></span>
|
||||
</a>
|
||||
</td>
|
||||
<t t-if="((color_index + 1) % Math.round(colors.length / columns)) == 0"></tr><tr></t>
|
||||
</t>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name" : "OpenERP Web mobile",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web mobile.
|
||||
""",
|
||||
"version" : "2.0",
|
||||
"depends" : [],
|
||||
'active': True,
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# Bengali translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-11-24 12:56+0000\n"
|
||||
"Last-Translator: nasir khan saikat <nasir8891@gmail.com>\n"
|
||||
"Language-Team: Bengali <bn@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: 2011-11-25 05:35+0000\n"
|
||||
"X-Generator: Launchpad (build 14376)\n"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Database:"
|
||||
msgstr "ডেটাবেস:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login:"
|
||||
msgstr "লগইন:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Password:"
|
||||
msgstr "পাসওয়ার্ড:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login"
|
||||
msgstr "লগইন"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Favourite"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Preference"
|
||||
msgstr "পছন্দসমূহ"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Applications"
|
||||
msgstr "অ্যাপ্লিকেশন"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Logout"
|
||||
msgstr "লগআউট"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
@@ -0,0 +1,66 @@
|
||||
# Dutch translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-01 14:02+0000\n"
|
||||
"Last-Translator: Douwe Wullink (Dypalio) <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@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: 2011-12-02 05:28+0000\n"
|
||||
"X-Generator: Launchpad (build 14414)\n"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr "OpenERP"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Database:"
|
||||
msgstr "Database:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login:"
|
||||
msgstr "Inlognaam:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Password:"
|
||||
msgstr "Wachtwoord:"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr "Verkeerde gebruikersnaam of wachtwoord"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Favourite"
|
||||
msgstr "Favoriet"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Preference"
|
||||
msgstr "Voorkeur"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Applications"
|
||||
msgstr "Toepassingen"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Options"
|
||||
msgstr "Opties"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Logout"
|
||||
msgstr "Afmelden"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
@@ -0,0 +1,66 @@
|
||||
# Russian translation for openerp-web
|
||||
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
|
||||
# This file is distributed under the same license as the openerp-web package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-web\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-10-07 10:39+0200\n"
|
||||
"PO-Revision-Date: 2011-12-02 07:20+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Russian <ru@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: 2011-12-03 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14418)\n"
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "OpenERP"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Database:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Password:"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Bad username or password"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Favourite"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Preference"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Applications"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: addons/web_mobile/static/src/xml/web_mobile.xml:0
|
||||
msgid ":"
|
||||
msgstr ""
|
||||
@@ -3,24 +3,24 @@
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>OpenERP Web Mobile</title>
|
||||
|
||||
<link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery-ui-1.8.9.custom.css"/>
|
||||
|
||||
<link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery-ui-1.8.9.custom.css"/>
|
||||
<link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery.mobile-1.0a4.1.css"/>
|
||||
<link rel="stylesheet" href="/web_mobile/static/src/css/web_mobile.css"/>
|
||||
|
||||
<script type="text/javascript" src="/web/static/lib/jquery/jquery-1.6.2.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/jquery/jquery-1.6.4.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/underscore/underscore.string.js"></script>
|
||||
<script type="text/javascript" src="/web_mobile/static/lib/jquery_mobile/js/jquery.mobile-1.0a4.1.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/globalization/en-US.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/core.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/extras.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/parser.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/sugarpak.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/time.js"></script>
|
||||
<script type="text/javascript" src="/web_mobile/static/lib/jquery_mobile/js/jquery.mobile-1.0a4.1.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/globalization/en-US.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/core.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/extras.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/parser.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/sugarpak.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/datejs/time.js"></script>
|
||||
<script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-timepicker-addon.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
|
||||
@@ -28,7 +28,7 @@
|
||||
<script type="text/javascript" src="/web/static/src/js/core.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/chrome.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/data.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/formats.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/formats.js"></script>
|
||||
<script type="text/javascript" src="/web/static/src/js/dates.js"></script>
|
||||
|
||||
<script type="text/javascript" src="/web_mobile/static/src/js/web_mobile.js"></script>
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name" : "Process",
|
||||
"version" : "2.0",
|
||||
"version": "2.0",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web process view.
|
||||
""",
|
||||
"depends" : ["web"],
|
||||
"js": [
|
||||
"static/src/js/process.js"
|
||||
@@ -9,7 +13,7 @@
|
||||
"static/src/css/process.css"
|
||||
],
|
||||
'qweb': [
|
||||
"static/src/xml/web_process.css"
|
||||
"static/src/xml/*.xml"
|
||||
],
|
||||
'active': True
|
||||
}
|
||||
|
||||
@@ -50,6 +50,17 @@ a.cta-a strong {
|
||||
display: table-cell;
|
||||
}
|
||||
|
||||
.oe-process-view {
|
||||
height: 20px;
|
||||
margin-top:4px;
|
||||
padding: 0;
|
||||
width: 24px;
|
||||
cursor: pointer;
|
||||
display: block;
|
||||
background: url(/web/static/src/img/icons/gtk-help.png) no-repeat center center;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.process-help-text {
|
||||
float: left;
|
||||
padding:5px 10px;
|
||||
@@ -59,4 +70,4 @@ a.cta-a strong {
|
||||
|
||||
td.process_fields,button.toggle_fields span:last-child {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ openerp.web_process = function (openerp) {
|
||||
if(self.process_id) {
|
||||
self.graph_get().done(function(res) {
|
||||
self.process_notes = res.notes;
|
||||
self.process_title = res.name;
|
||||
self.process_subflows = _.filter(res.nodes, function(x) {
|
||||
return x.subflow != false;
|
||||
});
|
||||
@@ -245,9 +246,10 @@ openerp.web_process = function (openerp) {
|
||||
transitions['active'] = src.active && !dst.gray;
|
||||
process_graph.addEdge(src['name'], dst['name'], {directed : true});
|
||||
});
|
||||
|
||||
var width = $(document).width();
|
||||
var height = $(document).height();
|
||||
var layouter = new Graph.Layout.Ordered(process_graph);
|
||||
var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height());
|
||||
var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, width, height);
|
||||
},
|
||||
jump_to_view: function(model, id) {
|
||||
var self = this;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<t t-extend="ViewManager" t-name="ViewManagerAction">
|
||||
<t t-jquery=".oe-view-manager-header" t-operation="append">
|
||||
<img class="oe-process-view" src="/web/static/src/img/icons/gtk-help.png" title="ProcessView"/>
|
||||
<a class="oe-process-view" title="Process View" href="javascript: void(0)"></a>
|
||||
</t>
|
||||
</t>
|
||||
<t t-name="ProcessView">
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"name" : "OpenERP Web web",
|
||||
"category" : "Hidden",
|
||||
"description":'Openerp web web',
|
||||
"version" : "2.0",
|
||||
"depends" : [],
|
||||
"installable" : False,
|
||||
'active': False,
|
||||
'js' : [
|
||||
"../web/static/lib/datejs/date-en-US.js",
|
||||
"../web/static/lib/jquery/jquery-1.6.2.js",
|
||||
"../web/static/lib/jquery/jquery-1.6.4.js",
|
||||
"../web/static/lib/json/json2.js",
|
||||
"../web/static/lib/qweb/qweb2.js",
|
||||
"../web/static/lib/underscore/underscore.js",
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
{
|
||||
"name": "Tests",
|
||||
"category" : "Hidden",
|
||||
"category": "Hidden",
|
||||
"description":
|
||||
"""
|
||||
OpenERP Web test suite.
|
||||
""",
|
||||
"version": "2.0",
|
||||
"depends": [],
|
||||
"js": ["static/src/js/*.js"],
|
||||
|
||||