diff --git a/addons/web/__openerp__.py b/addons/web/__openerp__.py index 6863779e41f..d54c643808b 100644 --- a/addons/web/__openerp__.py +++ b/addons/web/__openerp__.py @@ -1,10 +1,10 @@ { - "name" : "web", + "name" : "Web", "category": "Hidden", "description": """ OpenERP Web core module. - This module provides the core of the OpenERP web client. + This module provides the core of the OpenERP Web Client. """, "depends" : [], 'auto_install': True, diff --git a/addons/web/common/http.py b/addons/web/common/http.py index 487800da1b9..cc76a554693 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -453,7 +453,7 @@ class Root(object): static_dirs = self._load_addons(openerp_addons_namespace) if options.serve_static: self.dispatch = werkzeug.wsgi.SharedDataMiddleware( - self.dispatch, static_dirs) + self.dispatch, static_dirs, cache=False) if options.session_storage: if not os.path.exists(options.session_storage): diff --git a/addons/web/static/lib/jquery.textext/jquery.textext.css b/addons/web/static/lib/jquery.textext/jquery.textext.css index fe144e48af6..f180ee66184 100644 --- a/addons/web/static/lib/jquery.textext/jquery.textext.css +++ b/addons/web/static/lib/jquery.textext/jquery.textext.css @@ -65,10 +65,6 @@ padding: 3px 5px; cursor: pointer; } -.text-core .text-wrap .text-dropdown .text-list .text-suggestion em { - font-style: normal; - text-decoration: underline; -} .text-core .text-wrap .text-dropdown .text-list .text-suggestion.text-selected { color: #fff; background: #6d84b4; diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 1a7e30b5a84..f9493f08e55 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -2353,6 +2353,59 @@ color: #333333; } +.openerp .tree_header { + background-color: #f0f0f0; + border-bottom: 1px solid #cacaca; + color: #4c4c4c; + padding: 5px; + height: 25px; +} +.openerp .tree_header button { + float: right; + height: 27px; + margin-right: 5px; +} +.openerp .oe-treeview-table { + width: 100%; + background-color: white; + border-spacing: 0; +} +.openerp .oe-treeview-table th { + padding: 10px; + color: #4c4c4c; + font-weight: bold; + background-color: #f0f0f0; + border-bottom: 2px solid #cacaca; +} +.openerp .oe-treeview-table .treeview-tr, .openerp .oe-treeview-table .treeview-td { + cursor: pointer; + border-right: 1px dotted #afafb6; + vertical-align: top; + text-align: left; + border-bottom: 1px solid #cfcccc; +} +.openerp .oe-treeview-table tr:hover { + background-color: #e0e0f8; +} +.openerp .oe-treeview-table .oe-number { + text-align: right !important; +} +.openerp .oe-treeview-table span { + font-size: 90%; + font-weight: normal; + white-space: nowrap; + display: block; +} +.openerp .oe-treeview-table .treeview-tr.oe-treeview-first { + background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; +} +.openerp .oe-treeview-table .oe_open .treeview-tr.oe-treeview-first { + background-image: url(/web/static/src/img/collapse.gif); +} +.openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span { + margin-left: 16px; +} + .kitten-mode-activated { background-image: url(http://placekitten.com/g/1365/769); background-size: cover; diff --git a/addons/web/static/src/css/base.sass b/addons/web/static/src/css/base.sass index 559125aa3c3..d26b6c9e29b 100644 --- a/addons/web/static/src/css/base.sass +++ b/addons/web/static/src/css/base.sass @@ -1853,6 +1853,49 @@ $sheet-max-width: 860px float: right color: #333 // }}} +//Tree view +.openerp + .tree_header + background-color: #f0f0f0 + border-bottom: 1px solid #cacaca + color: #4c4c4c + padding: 5px + height: 25px + button + float: right + height: 27px + margin-right: 5px + .oe-treeview-table + width: 100% + background-color: white + border-spacing: 0 + th + padding: 10px + color: #4c4c4c + font-weight: bold + background-color: #f0f0f0 + border-bottom: 2px solid #cacaca + .treeview-tr, .treeview-td + cursor: pointer + border-right: 1px dotted #afafb6 + vertical-align: top + text-align: left + border-bottom: 1px solid #cfcccc + tr:hover + background-color: #e0e0f8 + .oe-number + text-align: right !important + span + font-size: 90% + font-weight: normal + white-space: nowrap + display: block + .treeview-tr.oe-treeview-first + background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat + .oe_open .treeview-tr.oe-treeview-first + background-image: url(/web/static/src/img/collapse.gif) + .treeview-tr.oe-treeview-first span, .treeview-td.oe-treeview-first span + margin-left: 16px // Kitten Mode {{{ .kitten-mode-activated background-image: url(http://placekitten.com/g/1365/769) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index db696ac65f0..2dbf130e030 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -894,11 +894,12 @@ instance.web.WebClient = instance.web.Widget.extend({ }); this.$element.on('click', '.oe_dropdown_toggle', function(ev) { ev.preventDefault(); - var $menu = $(this).find('.oe_dropdown_menu'); + var $toggle = $(this); + var $menu = $toggle.find('.oe_dropdown_menu'); var state = $menu.is('.oe_opened'); setTimeout(function() { // Do not alter propagation - $menu.toggleClass('oe_opened', !state); + $toggle.add($menu).toggleClass('oe_opened', !state); if (!state) { // Move $menu if outside window's edge var doc_width = $(document).width(); diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index e8bd7351f1f..2181b2aa157 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -63,6 +63,12 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie } return fields; }, + store_record:function(records){ + var self = this; + _(records).each(function (record) { + self.records[record.id] = record; + }); + }, on_loaded: function (fields_view) { var self = this; var has_toolbar = !!fields_view.arch.attrs.toolbar; @@ -87,17 +93,19 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie this.$element.addClass(this.fields_view.arch.attrs['class']); this.dataset.read_slice(this.fields_list()).then(function(records) { + self.store_record(records); if (!has_toolbar) { // WARNING: will do a second read on the same ids, but only on // first load so not very important - self.getdata(null, _(records).pluck('id')); + self.render_data({'null':records}) + self.getdata(_.pluck(records,"id")); return; } var $select = self.$element.find('select') .change(function () { var $option = $(this).find(':selected'); - self.getdata($option.val(), $option.data('children')); + self.getdata($option.val()); }); _(records).each(function (record) { self.records[record.id] = record; @@ -112,7 +120,12 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie $select.change(); } }); - + this.$element.find("#tree_view_expand").click(function(){ + self.expand_all(); + }); + this.$element.find("#tree_view_collapse").click(function(){ + self.collpase_all(); + }); // TODO store open nodes in url ?... this.do_push_state({}); @@ -128,6 +141,22 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie return [color, py.parse(py.tokenize(expr)), expr]; }).value(); }, + expand_all: function(){ + var self = this; + var tr = this.$element.find(".oe-treeview-table tbody tr[id^='treerow_']"); + _.each(tr,function(rec){ + self.showcontent($(rec).attr('data-id'),true); + }); + }, + collpase_all: function(){ + var self = this; + var root_tr = this.$element.find(".oe-treeview-table tbody tr[data-level='"+1+"']"); + _.each(root_tr,function(rec){ + if($(rec).hasClass('oe_open')){ + self.showcontent($(rec).attr('data-id'),false); + } + }); + }, /** * Returns the color for the provided record in the current view (from the * ``@colors`` attribute) @@ -164,50 +193,44 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie }); this.$element.delegate('.treeview-tr', 'click', function () { - var is_loaded = 0, - $this = $(this), + var $this = $(this), record_id = $this.data('id'), - record = self.records[record_id], - children_ids = record[self.children_field]; - - _(children_ids).each(function(childid) { - if (self.$element.find('#treerow_' + childid).length) { - if (self.$element.find('#treerow_' + childid).is(':hidden')) { - is_loaded = -1; - } else { - is_loaded++; - } - } - }); - if (is_loaded === 0) { - if (!$this.parent().hasClass('oe_open')) { - self.getdata(record_id, children_ids); - } - } else { - self.showcontent(record_id, is_loaded < 0); - } + bool = $this.parent().hasClass('oe_open'); + self.showcontent(record_id, !bool); }); }, // get child data of selected value - getdata: function (id, children_ids) { + getdata: function (id) { var self = this; - - self.dataset.read_ids(children_ids, this.fields_list()).then(function(records) { - _(records).each(function (record) { - self.records[record.id] = record; - }); - - var $curr_node = self.$element.find('#treerow_' + id); + var parent_child ={}; + id = _.isArray(id)?id:parseInt(id); + var ir_model_data = new instance.web.Model(this.model,self.dataset.get_context() || {},[['id','child_of',id]]).query(); + ir_model_data._execute().then(function(records){ + self.store_record(records); + _.each(records,function(rec){ + if(rec[self.children_field].length === 0)return; + parent_child[rec.id] = []; + _.each(rec[self.children_field],function(key){ + parent_child[rec.id].push(self.records[key]); + }); + }) + self.render_data(parent_child); + }); + }, + render_data: function(groupby){ + var self = this; + _.each(_.keys(groupby),function(key){ + var $curr_node = self.$element.find('#treerow_' + key); + var record = groupby[key]; var children_rows = QWeb.render('TreeView.rows', { - 'records': records, + 'records': record, 'children_field': self.children_field, 'fields_view': self.fields_view.arch.children, 'fields': self.fields, - 'level': $curr_node.data('level') || 0, + 'level': ($curr_node.data('level') || 0) + 1, 'render': instance.web.format_value, 'color_for': self.color_for }); - if ($curr_node.length) { $curr_node.addClass('oe_open'); $curr_node.after(children_rows); @@ -215,8 +238,10 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie self.$element.find('tbody').html(children_rows); } }); + self.collpase_all(); }, + // Get details in listview activate: function(id) { var self = this; @@ -259,13 +284,5 @@ instance.web.TreeView = instance.web.View.extend(/** @lends instance.web.TreeVie }, this); }, - do_show: function () { - this.$element.show(); - }, - - do_hide: function () { - this.$element.hide(); - this.hidden = true; - } }); }; diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 0435313500f..eb3f367ae8c 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -399,16 +399,17 @@
- - - + + + + - @@ -416,7 +417,7 @@ -

+
+
@@ -535,14 +536,16 @@ - - +
+ + + +
+
@@ -554,11 +557,11 @@ + t-att-data-id="record.id" t-att-data-level="level"> - - + + " +#~ msgstr "" diff --git a/addons/web_kanban/static/src/css/kanban.css b/addons/web_kanban/static/src/css/kanban.css index 60967f50afd..925df71f376 100644 --- a/addons/web_kanban/static/src/css/kanban.css +++ b/addons/web_kanban/static/src/css/kanban.css @@ -38,7 +38,6 @@ } .openerp .oe_kanban_view .oe_kanban_groups { height: inherit; - width: 100%; } .openerp .oe_kanban_view .oe_kanban_header:hover .oe_dropdown_kanban { display: inline-block; @@ -64,10 +63,10 @@ } .openerp .oe_kanban_view .oe_kanban_column.oe_kanban_grouped, .openerp .oe_kanban_view .oe_kanban_group_header { background: #f0eeee; -} -.openerp .oe_kanban_view .oe_kanban_column.oe_kanban_grouped, .openerp .oe_kanban_view .oe_kanban_group_header { border-left: 1px solid #f0f8f8; border-right: 1px solid #b9b9b9; + min-width: 170px; + max-width: 250px; } .openerp .oe_kanban_view .oe_form .oe_kanban_column { padding: 0px; @@ -79,9 +78,6 @@ .openerp .oe_kanban_view .oe_kanban_aggregates { padding: 0; } -.openerp .oe_kanban_view .oe_kanban_group_header { - position: relative; -} .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_group_title, .openerp .oe_kanban_view .oe_kanban_group_folded.oe_kanban_column > *, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_aggregates, .openerp .oe_kanban_view .oe_kanban_group_folded .oe_kanban_add { display: none; } @@ -124,7 +120,6 @@ float: right; } .openerp .oe_kanban_view .oe_kanban_quick_create { - overflow: hidden; margin-bottom: 4px; } .openerp .oe_kanban_view .oe_kanban_quick_create_buttons { @@ -346,8 +341,8 @@ -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); -box-shadow: 0 0 3px rgba(0, 0, 0, 0.6); } -.openerp .oe_kanban_view .oe_kanban_card:hover .oe_dropdown_kanban { - display: block; +.openerp .oe_kanban_view .oe_kanban_card:hover .oe_dropdown_kanban > span { + visibility: visible; } .openerp .oe_kanban_view .oe_kanban_card h3 { margin: 0 16px 0 0; @@ -446,7 +441,6 @@ position: absolute; top: -8px; right: 3px; - display: none; cursor: pointer; } .openerp .oe_kanban_view .oe_dropdown_kanban:hover { @@ -457,6 +451,15 @@ top: 28px; min-width: 160px; } +.openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_kanban { + display: none; +} +.openerp .oe_kanban_view .oe_kanban_column .oe_dropdown_kanban.oe_opened > span { + visibility: visible; +} +.openerp .oe_kanban_view .oe_kanban_column .oe_dropdown_kanban > span { + visibility: hidden; +} .openerp .oe_kanban_view .oe_kanban_colorpicker { padding: 3px 6px; white-space: nowrap; diff --git a/addons/web_kanban/static/src/css/kanban.sass b/addons/web_kanban/static/src/css/kanban.sass index 94daf4bd3cd..b1e32e35518 100644 --- a/addons/web_kanban/static/src/css/kanban.sass +++ b/addons/web_kanban/static/src/css/kanban.sass @@ -52,7 +52,6 @@ // KanbanGroups {{{ .oe_kanban_groups height: inherit - width: 100% .oe_kanban_header &:hover .oe_dropdown_kanban @@ -76,10 +75,10 @@ .oe_kanban_column.oe_kanban_grouped, .oe_kanban_group_header background: #f0eeee - - .oe_kanban_column.oe_kanban_grouped, .oe_kanban_group_header border-left: 1px solid #f0f8f8 border-right: 1px solid #b9b9b9 + min-width: 170px + max-width: 250px .oe_form .oe_kanban_column @@ -90,8 +89,6 @@ height: 100% .oe_kanban_aggregates padding: 0 - .oe_kanban_group_header - position: relative .oe_kanban_group_folded .oe_kanban_group_title, &.oe_kanban_column > *, .oe_kanban_aggregates, .oe_kanban_add display: none @@ -120,7 +117,6 @@ width: 16px height: 16px background: url(/web_kanban/static/src/img/minus-icon.png) no-repeat - .oe_kanban_group_folded .oe_kanban_fold_icon // }}} // KanbanQuickCreate {{{ .oe_kanban_add, .oe_kanban_header .oe_dropdown_toggle @@ -132,7 +128,6 @@ float: right .oe_kanban_quick_create - overflow: hidden margin-bottom: 4px .oe_kanban_quick_create_buttons margin: 4px 0 @@ -298,8 +293,8 @@ margin-bottom: 0 &:hover @include box-shadow(0 0 3px rgba(0,0,0,0.6)) - .oe_dropdown_kanban - display: block + .oe_dropdown_kanban > span + visibility: visible h3 margin: 0 16px 0 0 color: #4c4c4c @@ -365,7 +360,6 @@ position: absolute top: -8px right: 3px - display: none cursor: pointer &:hover text-decoration: none @@ -373,6 +367,15 @@ left: 0 top: 28px min-width: 160px + .oe_kanban_header + .oe_dropdown_kanban + display: none + .oe_kanban_column + .oe_dropdown_kanban + &.oe_opened > span + visibility: visible + > span + visibility: hidden // }}} // KanbanColorPicker {{{ .oe_kanban_colorpicker diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 0021d522f43..5a22b9e5ba5 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -286,13 +286,20 @@ instance.web_kanban.KanbanView = instance.web.View.extend({ }, compute_groups_width: function() { var unfolded = 0; + var self = this; _.each(this.groups, function(group) { unfolded += group.state.folded ? 0 : 1; group.$element.css('width', ''); }); _.each(this.groups, function(group) { if (!group.state.folded) { - group.$element.css('width', Math.round(100/unfolded) + '%'); + if (182*unfolded>=self.$element.width()) { + group.$element.css('width', "170px"); + } else if (262*unfolded>self.$element.width()) { + group.$element.css('width', Math.round(100/unfolded) + '%'); + } else { + group.$element.css('width', "250px"); + } } }); }, @@ -750,6 +757,9 @@ instance.web_kanban.KanbanRecord = instance.web.OldWidget.extend({ // Set the cache duration in seconds. url += '&cache=' + parseInt(cache, 10); } + if (this.record[field] && this.record[field].value && ! /^\d+(\.\d*)? \w+$/.test(this.record[field].value)) { + url = 'data:image/png;base64,' + this.record[field].value; + } return url; }, kanban_text_ellipsis: function(s, size) { diff --git a/addons/web_mobile/__openerp__.py b/addons/web_mobile/__openerp__.py index ce76361f619..cd5a4836a5a 100644 --- a/addons/web_mobile/__openerp__.py +++ b/addons/web_mobile/__openerp__.py @@ -1,9 +1,9 @@ { - "name" : "OpenERP Web mobile", + "name" : "OpenERP Web Mobile", "category": "Hidden", "description": """ - OpenERP Web mobile. + OpenERP Web Mobile. """, "version" : "2.0", "depends" : [], diff --git a/addons/web_mobile/i18n/bg.po b/addons/web_mobile/i18n/bg.po new file mode 100644 index 00000000000..3c80927c542 --- /dev/null +++ b/addons/web_mobile/i18n/bg.po @@ -0,0 +1,106 @@ +# Bulgarian translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-07-02 09:06+0200\n" +"PO-Revision-Date: 2012-07-11 14:08+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-12 04:58+0000\n" +"X-Generator: Launchpad (build 15593)\n" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:17 +msgid "OpenERP" +msgstr "OpenERP" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:22 +msgid "Database:" +msgstr "База данни:" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:30 +msgid "Login:" +msgstr "Вход:" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:32 +msgid "Password:" +msgstr "Парола:" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:34 +msgid "Login" +msgstr "Вход" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:36 +msgid "Bad username or password" +msgstr "Грешно потребителско име или парола" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:42 +msgid "Powered by openerp.com" +msgstr "Powered by openerp.com" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:49 +msgid "Home" +msgstr "Начало" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:57 +msgid "Favourite" +msgstr "Любими" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:58 +msgid "Preference" +msgstr "Предпочитания" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:123 +msgid "Logout" +msgstr "Изход" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:132 +msgid "There are no records to show." +msgstr "Няма записи за показване." + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:183 +msgid "Open this resource" +msgstr "Отвори този ресурс" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:223 +#: addons/web_mobile/static/src/xml/web_mobile.xml:226 +msgid "Percent of tasks closed according to total of tasks to do..." +msgstr "Процент на приключените задачи съпоставен с общия брой задачи..." + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:264 +#: addons/web_mobile/static/src/xml/web_mobile.xml:268 +msgid "On" +msgstr "Включено" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:265 +#: addons/web_mobile/static/src/xml/web_mobile.xml:269 +msgid "Off" +msgstr "Изключено" + +#. openerp-web +#: addons/web_mobile/static/src/xml/web_mobile.xml:294 +msgid "Form View" +msgstr "" diff --git a/addons/web_rpc/__openerp__.py b/addons/web_rpc/__openerp__.py index f35f92c153e..27ec39f5748 100644 --- a/addons/web_rpc/__openerp__.py +++ b/addons/web_rpc/__openerp__.py @@ -1,7 +1,7 @@ { - "name" : "OpenERP Web web", + "name" : "OpenERP Web Web", "category" : "Hidden", - "description":'Openerp web web', + "description":'Openerp Web Web', "version" : "2.0", "depends" : [], "installable" : False,
+ t-if="!field.attrs.modifiers.tree_invisible">
, 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-07-02 09:06+0200\n" +"PO-Revision-Date: 2012-07-11 13:48+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-12 04:58+0000\n" +"X-Generator: Launchpad (build 15593)\n" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:11 +msgid "Diagram" +msgstr "Диаграма" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:165 +msgid "Are you sure?" +msgstr "Сигурни ли сте?" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:195 +msgid "" +"Deleting this node cannot be undone.\n" +"It will also delete all connected transitions.\n" +"\n" +"Are you sure ?" +msgstr "" +"Изтриването на този възел не може да бъде отменено.\n" +"То също така ще изтрие и всички свързани преходи.\n" +"\n" +"Сигурни ли сте?" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:213 +msgid "" +"Deleting this transition cannot be undone.\n" +"\n" +"Are you sure ?" +msgstr "" +"Изтриването на този възел не може да бъде отменено.\n" +"\n" +"Сигурни ли сте?" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:224 +#: addons/web_diagram/static/src/js/diagram.js:257 +msgid "Activity" +msgstr "Дейност" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:232 +#: addons/web_diagram/static/src/js/diagram.js:296 +msgid "Open: " +msgstr "Отвори: " + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:262 +#: addons/web_diagram/static/src/js/diagram.js:314 +msgid "Create:" +msgstr "Създай:" + +#. openerp-web +#: addons/web_diagram/static/src/js/diagram.js:289 +#: addons/web_diagram/static/src/js/diagram.js:308 +msgid "Transition" +msgstr "Преход" + +#. openerp-web +#: addons/web_diagram/static/src/xml/base_diagram.xml:6 +msgid "New Node" +msgstr "Нов възел" diff --git a/addons/web_gantt/__openerp__.py b/addons/web_gantt/__openerp__.py index ee6b2d71d18..3357dbae53f 100644 --- a/addons/web_gantt/__openerp__.py +++ b/addons/web_gantt/__openerp__.py @@ -1,9 +1,9 @@ { - "name": "web Gantt", + "name": "Web Gantt", "category": "Hidden", "description": """ - OpenERP Web gantt chart view. + OpenERP Web Gantt chart view. """, "version": "2.0", "depends": ['web'], diff --git a/addons/web_gantt/i18n/bg.po b/addons/web_gantt/i18n/bg.po new file mode 100644 index 00000000000..5b4bda644db --- /dev/null +++ b/addons/web_gantt/i18n/bg.po @@ -0,0 +1,28 @@ +# Bulgarian translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-07-02 09:06+0200\n" +"PO-Revision-Date: 2012-07-11 13:51+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-12 04:58+0000\n" +"X-Generator: Launchpad (build 15593)\n" + +#. openerp-web +#: addons/web_gantt/static/src/js/gantt.js:11 +msgid "Gantt" +msgstr "" + +#. openerp-web +#: addons/web_gantt/static/src/xml/web_gantt.xml:10 +msgid "Create" +msgstr "Създай" diff --git a/addons/web_graph/__openerp__.py b/addons/web_graph/__openerp__.py index 19f46dbb504..84412a9c240 100644 --- a/addons/web_graph/__openerp__.py +++ b/addons/web_graph/__openerp__.py @@ -5,7 +5,7 @@ * Parse a view but allows changing dynamically the presentation * Graph Types: pie, lines, areas, bars, radar -* Stacked / Not Stacked for areas and bars +* Stacked/Not Stacked for areas and bars * Legends: top, inside (top/left), hidden * Features: download as PNG or CSV, browse data grid, switch orientation * Unlimited "Group By" levels (not stacked), two cross level analysis (stacked) diff --git a/addons/web_kanban/i18n/bg.po b/addons/web_kanban/i18n/bg.po new file mode 100644 index 00000000000..21d063845af --- /dev/null +++ b/addons/web_kanban/i18n/bg.po @@ -0,0 +1,69 @@ +# Bulgarian translation for openerp-web +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-07-02 09:06+0200\n" +"PO-Revision-Date: 2012-07-11 14:02+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Bulgarian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-07-12 04:58+0000\n" +"X-Generator: Launchpad (build 15593)\n" + +#. openerp-web +#: addons/web_kanban/static/src/js/kanban.js:10 +msgid "Kanban" +msgstr "Канбан" + +#. openerp-web +#: addons/web_kanban/static/src/js/kanban.js:372 +msgid "Undefined" +msgstr "Неопределен" + +#. openerp-web +#: addons/web_kanban/static/src/js/kanban.js:684 +msgid "Are you sure you want to delete this record ?" +msgstr "Сигурни ли сте, че искате да изтриете този запис?" + +#. openerp-web +#: addons/web_kanban/static/src/js/kanban.js:839 +msgid "Create: " +msgstr "" + +#. openerp-web +#: addons/web_kanban/static/src/xml/web_kanban.xml:53 +msgid "Show more... (" +msgstr "Покажи повече... (" + +#. openerp-web +#: addons/web_kanban/static/src/xml/web_kanban.xml:53 +msgid "remaining)" +msgstr "оставащ)" + +#. openerp-web +#: addons/web_kanban/static/src/xml/web_kanban.xml:71 +msgid "Add" +msgstr "" + +#. openerp-web +#: addons/web_kanban/static/src/xml/web_kanban.xml:71 +msgid "or" +msgstr "" + +#. openerp-web +#: addons/web_kanban/static/src/xml/web_kanban.xml:72 +msgid "Cancel" +msgstr "" + +#~ msgid "Create" +#~ msgstr "Създаване" + +#~ msgid "