diff --git a/addons/web/po/web.pot b/addons/web/po/web.pot index 9f8390e71e8..f0a41e2d16a 100644 --- a/addons/web/po/web.pot +++ b/addons/web/po/web.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,12 +17,69 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/web/static/src/js/chrome.js:162 +#: addons/web/static/src/js/chrome.js:175 +#: addons/web/static/src/js/chrome.js:369 +#: addons/web/static/src/js/view_form.js:341 +#: addons/web/static/src/js/view_form.js:1055 +#: addons/web/static/src/xml/base.xml:0 +msgid "Ok" +msgstr "" + +#: addons/web/static/src/js/chrome.js:678 +msgid "About" +msgstr "" + +#: addons/web/static/src/js/chrome.js:758 +msgid "Preferences" +msgstr "" + +#: addons/web/static/src/js/chrome.js:762 +msgid "Change password" +msgstr "" + +#: addons/web/static/src/js/chrome.js:763 +#: addons/web/static/src/js/search.js:235 +#: addons/web/static/src/js/search.js:276 +#: addons/web/static/src/js/view_editor.js:97 +#: addons/web/static/src/js/view_editor.js:778 +#: addons/web/static/src/js/view_editor.js:907 +#: addons/web/static/src/js/view_form.js:1062 +#: addons/web/static/src/xml/base.xml:0 +msgid "Cancel" +msgstr "" + +#: addons/web/static/src/js/chrome.js:764 +#: addons/web/static/src/js/view_editor.js:75 +#: addons/web/static/src/js/views.js:848 addons/web/static/src/xml/base.xml:0 +msgid "Save" +msgstr "" + +#: addons/web/static/src/js/chrome.js:784 addons/web/static/src/xml/base.xml:0 +msgid "Change Password" +msgstr "" + +#: addons/web/static/src/js/data_export.js:6 +msgid "Export Data" +msgstr "" + +#: addons/web/static/src/js/data_export.js:23 #: addons/web/static/src/js/data_import.js:73 -#: addons/web/static/src/js/view_form.js:2746 -#: addons/web/static/src/js/views.js:803 +#: addons/web/static/src/js/view_editor.js:49 +#: addons/web/static/src/js/view_editor.js:387 +#: addons/web/static/src/js/view_form.js:2741 +#: addons/web/static/src/js/views.js:849 msgid "Close" msgstr "" +#: addons/web/static/src/js/data_export.js:24 +msgid "Export To File" +msgstr "" + +#: addons/web/static/src/js/data_import.js:34 +msgid "Import Data" +msgstr "" + #: addons/web/static/src/js/data_import.js:74 msgid "Import File" msgstr "" @@ -31,161 +88,209 @@ msgstr "" msgid "External ID" msgstr "" -#: addons/web/static/src/js/search.js:230 +#: addons/web/static/src/js/search.js:233 msgid "Filter Entry" msgstr "" -#: addons/web/static/src/js/search.js:232 -#: addons/web/static/src/js/search.js:273 addons/web/static/src/xml/base.xml:0 -msgid "Cancel" -msgstr "" - -#: addons/web/static/src/js/search.js:235 -#: addons/web/static/src/js/search.js:276 +#: addons/web/static/src/js/search.js:238 +#: addons/web/static/src/js/search.js:279 msgid "OK" msgstr "" -#: addons/web/static/src/js/search.js:271 addons/web/static/src/xml/base.xml:0 +#: addons/web/static/src/js/search.js:274 addons/web/static/src/xml/base.xml:0 msgid "Add to Dashboard" msgstr "" -#: addons/web/static/src/js/search.js:400 +#: addons/web/static/src/js/search.js:403 msgid "Invalid Search" msgstr "" -#: addons/web/static/src/js/search.js:400 +#: addons/web/static/src/js/search.js:403 msgid "triggered from search view" msgstr "" -#: addons/web/static/src/js/search.js:482 +#: addons/web/static/src/js/search.js:490 #, python-format msgid "Incorrect value for field %(fieldname)s: [%(value)s] is %(message)s" msgstr "" -#: addons/web/static/src/js/search.js:803 +#: addons/web/static/src/js/search.js:811 msgid "not a valid integer" msgstr "" -#: addons/web/static/src/js/search.js:817 +#: addons/web/static/src/js/search.js:825 msgid "not a valid number" msgstr "" -#: addons/web/static/src/js/search.js:1233 +#: addons/web/static/src/js/search.js:1241 msgid "contains" msgstr "" -#: addons/web/static/src/js/search.js:1234 +#: addons/web/static/src/js/search.js:1242 msgid "doesn't contain" msgstr "" -#: addons/web/static/src/js/search.js:1235 -#: addons/web/static/src/js/search.js:1250 -#: addons/web/static/src/js/search.js:1270 -#: addons/web/static/src/js/search.js:1290 -#: addons/web/static/src/js/search.js:1312 +#: addons/web/static/src/js/search.js:1243 +#: addons/web/static/src/js/search.js:1258 +#: addons/web/static/src/js/search.js:1278 +#: addons/web/static/src/js/search.js:1298 +#: addons/web/static/src/js/search.js:1320 msgid "is equal to" msgstr "" -#: addons/web/static/src/js/search.js:1236 -#: addons/web/static/src/js/search.js:1251 -#: addons/web/static/src/js/search.js:1271 -#: addons/web/static/src/js/search.js:1291 -#: addons/web/static/src/js/search.js:1313 +#: addons/web/static/src/js/search.js:1244 +#: addons/web/static/src/js/search.js:1259 +#: addons/web/static/src/js/search.js:1279 +#: addons/web/static/src/js/search.js:1299 +#: addons/web/static/src/js/search.js:1321 msgid "is not equal to" msgstr "" -#: addons/web/static/src/js/search.js:1237 -#: addons/web/static/src/js/search.js:1252 -#: addons/web/static/src/js/search.js:1272 -#: addons/web/static/src/js/search.js:1292 -#: addons/web/static/src/js/search.js:1314 +#: addons/web/static/src/js/search.js:1245 +#: addons/web/static/src/js/search.js:1260 +#: addons/web/static/src/js/search.js:1280 +#: addons/web/static/src/js/search.js:1300 +#: addons/web/static/src/js/search.js:1322 msgid "greater than" msgstr "" -#: addons/web/static/src/js/search.js:1238 -#: addons/web/static/src/js/search.js:1253 -#: addons/web/static/src/js/search.js:1273 -#: addons/web/static/src/js/search.js:1293 -#: addons/web/static/src/js/search.js:1315 +#: addons/web/static/src/js/search.js:1246 +#: addons/web/static/src/js/search.js:1261 +#: addons/web/static/src/js/search.js:1281 +#: addons/web/static/src/js/search.js:1301 +#: addons/web/static/src/js/search.js:1323 msgid "less than" msgstr "" -#: addons/web/static/src/js/search.js:1239 -#: addons/web/static/src/js/search.js:1254 -#: addons/web/static/src/js/search.js:1274 -#: addons/web/static/src/js/search.js:1294 -#: addons/web/static/src/js/search.js:1316 +#: addons/web/static/src/js/search.js:1247 +#: addons/web/static/src/js/search.js:1262 +#: addons/web/static/src/js/search.js:1282 +#: addons/web/static/src/js/search.js:1302 +#: addons/web/static/src/js/search.js:1324 msgid "greater or equal than" msgstr "" -#: addons/web/static/src/js/search.js:1240 -#: addons/web/static/src/js/search.js:1255 -#: addons/web/static/src/js/search.js:1275 -#: addons/web/static/src/js/search.js:1295 -#: addons/web/static/src/js/search.js:1317 +#: addons/web/static/src/js/search.js:1248 +#: addons/web/static/src/js/search.js:1263 +#: addons/web/static/src/js/search.js:1283 +#: addons/web/static/src/js/search.js:1303 +#: addons/web/static/src/js/search.js:1325 msgid "less or equal than" msgstr "" -#: addons/web/static/src/js/search.js:1306 -#: addons/web/static/src/js/search.js:1331 +#: addons/web/static/src/js/search.js:1314 +#: addons/web/static/src/js/search.js:1339 msgid "is" msgstr "" -#: addons/web/static/src/js/search.js:1332 +#: addons/web/static/src/js/search.js:1340 msgid "is not" msgstr "" -#: addons/web/static/src/js/search.js:1345 +#: addons/web/static/src/js/search.js:1353 msgid "is true" msgstr "" -#: addons/web/static/src/js/search.js:1346 +#: addons/web/static/src/js/search.js:1354 msgid "is false" msgstr "" -#: addons/web/static/src/js/view_editor.js:181 -msgid "Do you really want to remove this view?" +#: addons/web/static/src/js/view_editor.js:42 +msgid "ViewEditor" msgstr "" -#: addons/web/static/src/js/view_editor.js:453 -msgid "Do you really want to remove this node?" -msgstr "" - -#: addons/web/static/src/js/view_form.js:387 -msgid "Warning, the record has been modified, your changes will be discarded." -msgstr "" - -#: addons/web/static/src/js/view_form.js:595 -msgid "Attachments" -msgstr "" - -#: addons/web/static/src/js/view_form.js:1823 -msgid "   Search More..." -msgstr "" - -#: addons/web/static/src/js/view_form.js:1836 -#, python-format -msgid "   Create \"%s\"" -msgstr "" - -#: addons/web/static/src/js/view_form.js:1842 -msgid "   Create and Edit..." -msgstr "" - -#: addons/web/static/src/js/view_list.js:14 +#: addons/web/static/src/js/view_editor.js:46 +#: addons/web/static/src/js/view_list.js:15 #: addons/web/static/src/xml/base.xml:0 msgid "Create" msgstr "" -#: addons/web/static/src/js/view_list.js:263 +#: addons/web/static/src/js/view_editor.js:47 +#: addons/web/static/src/xml/base.xml:0 +msgid "Edit" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:48 +#: addons/web/static/src/xml/base.xml:0 +msgid "Remove" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:71 +#, python-format +msgid "Create a view (%s)" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:170 +msgid "Do you really want to remove this view?" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:367 +#, python-format +msgid "View Editor %d - %s" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:371 +msgid "Preview" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:442 +msgid "Do you really want to remove this node?" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:756 +#: addons/web/static/src/js/view_editor.js:883 +msgid "Properties" +msgstr "" + +#: addons/web/static/src/js/view_editor.js:760 +#: addons/web/static/src/js/view_editor.js:887 +msgid "Update" +msgstr "" + +#: addons/web/static/src/js/view_form.js:384 +msgid "Warning, the record has been modified, your changes will be discarded." +msgstr "" + +#: addons/web/static/src/js/view_form.js:592 +msgid "Attachments" +msgstr "" + +#: addons/web/static/src/js/view_form.js:630 +#, python-format +msgid "Do you really want to delete the attachment %s?" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1052 +msgid "Confirm" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1815 +msgid "   Search More..." +msgstr "" + +#: addons/web/static/src/js/view_form.js:1828 +#, python-format +msgid "   Create \"%s\"" +msgstr "" + +#: addons/web/static/src/js/view_form.js:1834 +msgid "   Create and Edit..." +msgstr "" + +#: addons/web/static/src/js/view_form.js:2377 +#: addons/web/static/src/xml/base.xml:0 +msgid "Add" +msgstr "" + +#: addons/web/static/src/js/view_list.js:265 msgid "Unlimited" msgstr "" -#: addons/web/static/src/js/view_list.js:483 +#: addons/web/static/src/js/view_list.js:488 msgid "Do you really want to remove these records?" msgstr "" -#: addons/web/static/src/js/view_list.js:1159 +#: addons/web/static/src/js/view_list.js:1167 msgid "Undefined" msgstr "" @@ -193,83 +298,79 @@ msgstr "" msgid "Do you really want to delete this record?" msgstr "" -#: addons/web/static/src/js/views.js:518 +#: addons/web/static/src/js/views.js:572 msgid "Search: " msgstr "" -#: addons/web/static/src/js/views.js:621 +#: addons/web/static/src/js/views.js:687 msgid "Customize" msgstr "" -#: addons/web/static/src/js/views.js:624 +#: addons/web/static/src/js/views.js:690 msgid "Manage Views" msgstr "" -#: addons/web/static/src/js/views.js:626 addons/web/static/src/js/views.js:630 -#: addons/web/static/src/js/views.js:635 +#: addons/web/static/src/js/views.js:692 addons/web/static/src/js/views.js:696 +#: addons/web/static/src/js/views.js:701 msgid "Manage views of the current object" msgstr "" -#: addons/web/static/src/js/views.js:628 +#: addons/web/static/src/js/views.js:694 msgid "Edit Workflow" msgstr "" -#: addons/web/static/src/js/views.js:633 +#: addons/web/static/src/js/views.js:699 msgid "Customize Object" msgstr "" -#: addons/web/static/src/js/views.js:637 +#: addons/web/static/src/js/views.js:703 msgid "Translate" msgstr "" -#: addons/web/static/src/js/views.js:639 +#: addons/web/static/src/js/views.js:705 msgid "Technical translation" msgstr "" -#: addons/web/static/src/js/views.js:644 +#: addons/web/static/src/js/views.js:710 msgid "Other Options" msgstr "" -#: addons/web/static/src/js/views.js:647 addons/web/static/src/xml/base.xml:0 +#: addons/web/static/src/js/views.js:713 addons/web/static/src/xml/base.xml:0 msgid "Import" msgstr "" -#: addons/web/static/src/js/views.js:650 addons/web/static/src/xml/base.xml:0 +#: addons/web/static/src/js/views.js:716 addons/web/static/src/xml/base.xml:0 msgid "Export" msgstr "" -#: addons/web/static/src/js/views.js:653 +#: addons/web/static/src/js/views.js:719 msgid "View Log" msgstr "" -#: addons/web/static/src/js/views.js:682 +#: addons/web/static/src/js/views.js:728 msgid "Reports" msgstr "" -#: addons/web/static/src/js/views.js:682 +#: addons/web/static/src/js/views.js:728 msgid "Actions" msgstr "" -#: addons/web/static/src/js/views.js:682 +#: addons/web/static/src/js/views.js:728 msgid "Links" msgstr "" -#: addons/web/static/src/js/views.js:762 +#: addons/web/static/src/js/views.js:808 msgid "You must choose at least one record." msgstr "" -#: addons/web/static/src/js/views.js:763 +#: addons/web/static/src/js/views.js:809 msgid "Warning" msgstr "" -#: addons/web/static/src/js/views.js:797 +#: addons/web/static/src/js/views.js:843 msgid "Translations" msgstr "" -#: addons/web/static/src/js/views.js:802 addons/web/static/src/xml/base.xml:0 -msgid "Save" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "x" msgstr "" @@ -382,10 +483,6 @@ msgstr "" msgid "Confirm new master password:" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Change Password" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "User:" msgstr "" @@ -481,11 +578,31 @@ msgid "Disable all tips" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "View#" +msgid "More…" msgstr "" #: addons/web/static/src/xml/base.xml:0 -msgid "More…" +msgid "Debug View#" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "- Fields View Get" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "- Edit" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "View" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "- Edit SearchView" +msgstr "" + +#: addons/web/static/src/xml/base.xml:0 +msgid "- Edit Action" msgstr "" #: addons/web/static/src/xml/base.xml:0 @@ -532,18 +649,10 @@ msgstr "" msgid ">>" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Edit" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Duplicate" msgstr "" -#: addons/web/static/src/xml/base.xml:0 -msgid "Add" -msgstr "" - #: addons/web/static/src/xml/base.xml:0 msgid "Unhandled widget" msgstr "" @@ -776,10 +885,6 @@ msgstr "" 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 "" @@ -796,10 +901,6 @@ msgstr "" 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 "" diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 00e8e1f5e55..04fff6c9375 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -717,11 +717,9 @@ label.error { .openerp .oe_search-view-buttons { padding: 10px 0 10px 0; } -.openerp .oe_search-view-custom-filter-btn span { - background: url(/web/static/src/img/icons/gtk-add.png) repeat-y; - padding-left: 18px; +.openerp .oe_search-view-filters-management { + float: right; } - .openerp .searchview_extended_add_proposition span { font-size: 0.9em; background: url(/web/static/src/img/icons/gtk-add.png) repeat-y; @@ -1108,7 +1106,8 @@ label.error { white-space: normal; } -.openerp .oe_form_field_one2many .oe-actions h3.oe_view_title { +.openerp .oe_form_field_one2many .oe-actions h3.oe_view_title, +.openerp .oe_form_field_one2many_list .oe-actions h3.oe_view_title{ display: inline; margin: 0 0.5em 0 0; } @@ -1151,7 +1150,11 @@ label.error { .openerp .oe_forms select{ padding-top: 2px; } - +.openerp .oe_forms input[disabled], +.openerp .oe_forms select[disabled], +.openerp .oe_forms textarea[disabled]{ + background: #E0E0E0; +} .openerp .oe_forms textarea { resize:vertical; } diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 4910d794876..22b8ff88c37 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -2,7 +2,8 @@ * OpenERP Web chrome *---------------------------------------------------------*/ openerp.web.chrome = function(openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Notification# */{ template: 'Notification', @@ -157,11 +158,9 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ on_managed_error: function(error) { $('
' + QWeb.render('DialogWarning', {error: error}) + '
').dialog({ title: "OpenERP " + _.str.capitalize(error.type), - buttons: { - Ok: function() { - $(this).dialog("close"); - } - } + buttons: [ + {text: _t("Ok"), click: function() { $(this).dialog("close"); }} + ] }); }, on_traceback: function(error) { @@ -172,11 +171,9 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ height: '90%', min_width: '800px', min_height: '600px', - buttons: { - Ok: function() { - $(this).dialog("close"); - } - } + buttons: [ + {text: _t("Ok"), click: function() { $(this).dialog("close"); }} + ] }).start(); dialog.$element.html(QWeb.render('DialogTraceback', {error: error})); } @@ -368,11 +365,9 @@ openerp.web.Database = openerp.web.Widget.extend(/** @lends openerp.web.Database return $('
').dialog({ modal: true, title: error.title, - buttons: { - Ok: function() { - $(this).dialog("close"); - } - } + buttons: [ + {text: _t("Ok"), click: function() { $(this).dialog("close"); }} + ] }).html(error.error); }, do_create: function() { @@ -663,7 +658,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * self.$content.remove(); if (!self.session.uid) return; - var func = new openerp.web.Model(self.session, "res.users").get_func("read"); + var func = new openerp.web.Model("res.users").get_func("read"); return func(self.session.uid, ["name", "company_id"]).pipe(function(res) { self.$content = $(QWeb.render("Header-content", {widget: self, user: res})); self.$content.appendTo(self.$element); @@ -680,7 +675,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * self.rpc("/web/webclient/version_info", {}).then(function(res) { var $help = $(QWeb.render("About-Page", {version_info: res})); $help.dialog({autoOpen: true, - modal: true, width: 960, title: "About"}); + modal: true, width: 960, title: _t("About")}); }); }, shortcut_load :function(){ @@ -760,25 +755,22 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * }); this.dialog = new openerp.web.Dialog(this,{ modal: true, - title: 'Preferences', + title: _t("Preferences"), width: 600, height: 500, - buttons: { - "Change password": function(){ - self.change_password(); - }, - Cancel: function(){ - $(this).dialog('destroy'); - }, - Save: function(){ - var inner_viewmanager = action_manager.inner_viewmanager; - inner_viewmanager.views[inner_viewmanager.active_view].controller.do_save() - .then(function() { - self.dialog.stop(); - window.location.reload(); - }); + buttons: [ + {text: _t("Change password"), click: function(){ self.change_password(); }}, + {text: _t("Cancel"), click: function(){ $(this).dialog('destroy'); }}, + {text: _t("Save"), click: function(){ + var inner_viewmanager = action_manager.inner_viewmanager; + inner_viewmanager.views[inner_viewmanager.active_view].controller.do_save() + .then(function() { + self.dialog.stop(); + window.location.reload(); + }); + } } - } + ] }); this.dialog.start().open(); action_manager.appendTo(this.dialog); @@ -789,7 +781,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * var self = this; this.dialog = new openerp.web.Dialog(this,{ modal : true, - title : 'Change Password', + title: _t("Change Password"), width : 'auto', height : 'auto' }); @@ -814,11 +806,9 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * return $('
').dialog({ modal: true, title: error.title, - buttons: { - Ok: function() { - $(this).dialog("close"); - } - } + buttons: [ + {text: _("Ok"), click: function() { $(this).dialog("close"); }} + ] }).html(error.error); }, on_logout: function() { @@ -916,6 +906,8 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ if (!(this.folded && manual)) { this.do_show_secondary($sub_menu, $main_menu); + } else { + this.do_show_secondary(); } if ($main_menu != $clicked_menu) { @@ -941,8 +933,15 @@ openerp.web.Menu = openerp.web.Widget.extend(/** @lends openerp.web.Menu# */{ } return false; }, + do_hide_secondary: function() { + this.$secondary_menu.hide(); + }, do_show_secondary: function($sub_menu, $main_menu) { var self = this; + this.$secondary_menu.show(); + if (!arguments.length) { + return; + } if (this.folded) { var css = $main_menu.position(), fold_width = this.$secondary_menu.width() + 2, @@ -1052,7 +1051,6 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie if(this.action_manager) this.action_manager.stop(); this.action_manager = new openerp.web.ActionManager(this); - this.action_manager.do_push_state.add(this.do_push_state); this.action_manager.appendTo($("#oe_app")); if (openerp._modules_loaded) { // TODO: find better option than this @@ -1067,7 +1065,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie }, on_logged_out: function() { $(window).unbind('hashchange', this.on_hashchange); - this.do_push_state({},true); + this.do_push_state({}); if(this.action_manager) this.action_manager.stop(); this.action_manager = null; @@ -1089,11 +1087,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie } this._current_state = state; }, - do_push_state: function(state, overwrite) { - if (!overwrite) { - var hash = $.deparam.fragment(true); - state = _.extend({}, hash, state); - } + do_push_state: function(state) { var url = '#' + $.param(state); this._current_state = _.clone(state); $.bbq.pushState(url); diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index 26147b4d4e0..aec701e6e67 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -811,7 +811,7 @@ openerp.web.ProxyDataSet = openerp.web.DataSetSearch.extend({ }); openerp.web.Model = openerp.web.CallbackEnabled.extend({ - init: function(_, model_name) { + init: function(model_name) { this._super(); this.model_name = model_name; }, diff --git a/addons/web/static/src/js/data_export.js b/addons/web/static/src/js/data_export.js index ea142606b5b..8a2d2c8594b 100644 --- a/addons/web/static/src/js/data_export.js +++ b/addons/web/static/src/js/data_export.js @@ -1,8 +1,9 @@ openerp.web.data_export = function(openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.DataExport = openerp.web.Dialog.extend({ template: 'ExportTreeView', - dialog_title: 'Export Data', + dialog_title: {toString: function () { return _t("Export Data"); }}, init: function(parent, dataset) { this._super(parent); this.records = {}; @@ -18,14 +19,10 @@ openerp.web.DataExport = openerp.web.Dialog.extend({ width: '55%', height: 'auto', position: 'top', - buttons : { - "Close" : function() { - self.close(); - }, - "Export To File" : function() { - self.on_click_export_data(); - } - }, + buttons : [ + {text: _t("Close"), click: function() { self.close(); }}, + {text: _t("Export To File"), click: function() { self.on_click_export_data(); }} + ], close: function(event, ui){ self.close();} }); self.$element.removeClass('ui-dialog-content ui-widget-content'); diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js index cd699c0481d..7f4af7b35bb 100644 --- a/addons/web/static/src/js/data_import.js +++ b/addons/web/static/src/js/data_import.js @@ -31,7 +31,7 @@ function jsonp(form, attributes, callback) { openerp.web.DataImport = openerp.web.Dialog.extend({ template: 'ImportDataView', - dialog_title: "Import Data", + dialog_title: {toString: function () { return _t("Import Data"); }}, init: function(parent, dataset){ var self = this; this._super(parent, {}); diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index d1e4b161b39..9b485b457cd 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -155,6 +155,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search var ext = new openerp.web.search.ExtendedSearch(this, this.model); lines.push([ext]); this.inputs.push(ext); + this.extended_search = ext; var render = QWeb.render("SearchView", { 'view': data.fields_view['arch'], @@ -163,7 +164,6 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search }); this.$element.html(render); - this.$element.find(".oe_search-view-custom-filter-btn").click(ext.on_activate); var f = this.$element.find('form'); this.$element.find('form') @@ -199,6 +199,9 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search var select = this.$element.find(".oe_search-view-filters-management"); var val = select.val(); switch(val) { + case 'advanced_filter': + this.extended_search.on_activate(); + break; case 'add_to_dashboard': this.on_add_to_dashboard(); break; diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index 352856c2b6c..f925a6416eb 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -35,28 +35,19 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ pager: false, radio: true, select_view_id: self.parent.fields_view.view_id - }, + } }; this.view_edit_dialog = new openerp.web.Dialog(this, { modal: true, - title: 'ViewEditor', + title: _t("ViewEditor"), width: 750, height: 500, - buttons: { - "Create": function(){ - self.on_create_view(); - }, - "Edit": function(){ - self.xml_element_id = 0; - self.get_arch(); - }, - "Remove": function(){ - self.do_delete_view(); - }, - "Close": function(){ - self.view_edit_dialog.close(); - } - }, + buttons: [ + {text: _t("Create"), click: function() { self.on_create_view(); }}, + {text: _t("Edit"), click: function() { self.xml_element_id = 0; self.get_arch(); }}, + {text: _t("Remove"), click: function() { self.do_delete_view(); }}, + {text: _t("Close"), click: function() { self.view_edit_dialog.close(); }} + ] }).start().open(); this.main_view_id = this.parent.fields_view.view_id; this.action_manager = new openerp.web.ActionManager(this); @@ -77,36 +68,34 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ var self = this; this.create_view_dialog = new openerp.web.Dialog(this, { modal: true, - title: _.str.sprintf("Create a view (%s)", self.model), + title: _.str.sprintf(_t("Create a view (%s)"), self.model), width: 500, height: 400, - buttons: { - "Save": function(){ - var view_values = {}; - var warn = false; - _.each(self.create_view_widget, function(widget) { - if (widget.is_invalid) { - warn = true; - return false; - }; - if (widget.dirty && !widget.is_invalid) { - view_values[widget.name] = widget.get_value(); - } - }); - if (warn) { - self.on_valid_create_view(self.create_view_widget); - } else { - $.when(self.do_save_view(view_values)).then(function() { - self.create_view_dialog.close(); - var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller; - controller.reload_content(); - }); + buttons: [ + {text: _t("Save"), click: function () { + var view_values = {}; + var warn = false; + _.each(self.create_view_widget, function(widget) { + if (widget.is_invalid) { + warn = true; + return false; } - }, - "Cancel": function(){ - self.create_view_dialog.close(); + if (widget.dirty && !widget.is_invalid) { + view_values[widget.name] = widget.get_value(); + } + }); + if (warn) { + self.on_valid_create_view(self.create_view_widget); + } else { + $.when(self.do_save_view(view_values)).then(function() { + self.create_view_dialog.close(); + var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller; + controller.reload_content(); + }); } - } + }}, + {text: _t("Cancel"), click: function () { self.create_view_dialog.close(); }} + ] }); this.create_view_dialog.start().open(); var view_widget = [{'name': 'view_name', 'string':'View Name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)}, @@ -375,11 +364,11 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ this.one_object = one_object; this.edit_xml_dialog = new openerp.web.Dialog(this, { modal: true, - title: _.str.sprintf("View Editor %d - %s", self.main_view_id, self.model), + title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model), width: 750, height: 500, - buttons: { - "Preview": function() { + buttons: [ + {text: _t("Preview"), click: function() { var action = { context: self.session.user_context, res_model: self.model, @@ -389,16 +378,16 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ flags: { sidebar: false, views_switcher: false, - action_buttons: false, - }, + action_buttons: false + } }; var action_manager = new openerp.web.ActionManager(self); action_manager.do_action(action); - }, - "Close": function(){ + }}, + {text: _t("Close"), click: function(){ self.edit_xml_dialog.close(); - } - } + }} + ] }).start().open(); var no_property_att = []; _.each(_PROPERTIES, function(val, key) { @@ -764,17 +753,17 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ var self = this; this.edit_node_dialog = new openerp.web.Dialog(this,{ modal: true, - title: 'Properties', + title: _t("Properties"), width: 500, height: 400, - buttons: { - "Update": function(){ + buttons: [ + {text: _t("Update"), click: function () { var warn = false, update_values = []; _.each(self.edit_widget, function(widget) { if (widget.is_invalid) { warn = true; return false; - }; + } if (widget.dirty && !widget.is_invalid) { update_values.push([widget.name, widget.get_value()]); } @@ -785,11 +774,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ self.do_save_update_arch("update_node", update_values); self.edit_node_dialog.close(); } - }, - "Cancel": function(){ - self.edit_node_dialog.close(); - } - } + }}, + {text: _t("Cancel"), click: function () { self.edit_node_dialog.close(); }} + ] }); this.edit_node_dialog.start().open(); var _PROPERTIES_ATTRIBUTES = { @@ -893,32 +880,32 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ this.add_widget = []; this.add_node_dialog = new openerp.web.Dialog(this,{ modal: true, - title: 'Properties', + title: _t("Properties"), width: 450, height: 190, - buttons: { - "Update": function(){ - var check_add_node = true, values = {}; - _.each(self.add_widget, function(widget) { - values[widget.name] = widget.get_value() || false; - }); - (values.position == "Inside")? - check_add_node =(_.include(_CHILDREN[properties[0]],values.node_type))?true:false: - check_add_node =(_.include(_CHILDREN[properties[1]],values.node_type))?true:false; - if(values.node_type == "field" && check_add_node ) - {check_add_node = (values.field_value != " ")?true:false; - } - if(check_add_node){ - var tag = (values.node_type == "field")? - _.str.sprintf("<%s name='%s'> ",values.node_type,values.field_value,values.node_type): - _.str.sprintf("<%s> ",values.node_type,values.node_type); - self.do_save_update_arch("add_node", [tag, values.position]); - }else{alert("Can't Update View");} - }, - "Cancel": function(){ - self.add_node_dialog.close(); + buttons: [ + {text: _t("Update"), click: function() { + var check_add_node = true, values = {}; + _.each(self.add_widget, function(widget) { + values[widget.name] = widget.get_value() || false; + }); + (values.position == "Inside")? + check_add_node =(_.include(_CHILDREN[properties[0]],values.node_type))?true:false: + check_add_node =(_.include(_CHILDREN[properties[1]],values.node_type))?true:false; + if(values.node_type == "field" && check_add_node ) + {check_add_node = (values.field_value != " ")?true:false; } - } + if(check_add_node){ + var tag = (values.node_type == "field")? + _.str.sprintf("<%s name='%s'> ",values.node_type,values.field_value,values.node_type): + _.str.sprintf("<%s> ",values.node_type,values.node_type); + self.do_save_update_arch("add_node", [tag, values.position]); + } else { + alert("Can't Update View"); + } + }}, + {text: _t("Cancel"), click: function() { self.add_node_dialog.close(); }} + ] }).start().open(); this.add_node_dialog.$element.append('
'); var table_selector = self.add_node_dialog.$element.find('table[id=rec_table] tbody'); diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index fef32df4a90..0e7eca43eda 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -132,7 +132,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# return promise; }, do_hide: function () { - this.$element.hide(); + this._super(); if (this.sidebar) { this.sidebar.$element.hide(); } @@ -140,7 +140,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# on_record_loaded: function(record) { var self = this, set_values = []; if (!record) { - throw("Form: No record received"); + throw new Error("Form: No record received"); } this.datarecord = record; @@ -175,6 +175,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# if (self.default_focus_field && !self.embedded_view) { self.default_focus_field.focus(); } + if (record.id) { + self.do_push_state({id:record.id}); + } }); }, on_form_changed: function() { @@ -334,11 +337,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# if (!_.isEmpty(result.warning)) { $(QWeb.render("DialogWarning", result.warning)).dialog({ modal: true, - buttons: { - Ok: function() { - $(this).dialog("close"); - } - } + buttons: [ + {text: _t("Ok"), click: function() { $(this).dialog("close"); }} + ] }); } if (result.domain) { @@ -619,14 +620,14 @@ openerp.web.form.SidebarAttachments = openerp.web.Widget.extend({ var $e = $(e.target); if ($e.val() != '') { this.$element.find('form.oe-binary-form').submit(); - $e.parent().find('input[type=file]').attr('disabled', 'true'); - $e.parent().find('button').attr('disabled', 'true').find('img, span').toggle(); + $e.parent().find('input[type=file]').prop('disabled', true); + $e.parent().find('button').prop('disabled', true).find('img, span').toggle(); } }, on_attachment_delete: function(e) { var self = this, $e = $(e.currentTarget); var name = _.str.trim($e.parent().find('a.oe-sidebar-attachments-link').text()); - if (confirm("Do you really want to delete the attachment " + name + " ?")) { + if (confirm(_.sprintf(_t("Do you really want to delete the attachment %s?"), name))) { this.rpc('/web/dataset/unlink', { model: 'ir.attachment', ids: [parseInt($e.attr('data-id'))] @@ -1048,20 +1049,22 @@ openerp.web.form.WidgetButton = openerp.web.form.Widget.extend({ if (self.node.attrs.confirm) { var def = $.Deferred(); var dialog = $('
' + self.node.attrs.confirm + '
').dialog({ - title: 'Confirm', + title: _t('Confirm'), modal: true, - buttons: { - Ok: function() { - self.on_confirmed().then(function() { - def.resolve(); - }); - $(this).dialog("close"); + buttons: [ + {text: _t("Ok"), click: function() { + self.on_confirmed().then(function() { + def.resolve(); + }); + $(this).dialog("close"); + } }, - Cancel: function() { - def.resolve(); - $(this).dialog("close"); + {text: _t("Cancel"), click: function() { + def.resolve(); + $(this).dialog("close"); + } } - } + ] }); return def.promise(); } else { @@ -1094,13 +1097,9 @@ openerp.web.form.WidgetButton = openerp.web.form.Widget.extend({ this.check_disable(); }, check_disable: function() { - if (this.readonly || this.force_disabled || !this.view.is_interactible_record()) { - this.$element.find("button").attr("disabled", "disabled"); - this.$element.find("button").css("color", "grey"); - } else { - this.$element.find("button").removeAttr("disabled"); - this.$element.find("button").css("color", ""); - } + var disabled = (this.readonly || this.force_disabled || !this.view.is_interactible_record()); + this.$element.find('button').prop('disabled', disabled); + this.$element.find("button").css('color', disabled ? 'grey' : ''); } }); @@ -1268,7 +1267,7 @@ openerp.web.form.FieldChar = openerp.web.form.Field.extend({ }, update_dom: function() { this._super.apply(this, arguments); - this.$element.find('input').attr('disabled', this.readonly); + this.$element.find('input').prop('disabled', this.readonly); }, set_value_from_ui: function() { this.value = openerp.web.parse_value(this.$element.find('input').val(), this); @@ -1392,7 +1391,7 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({ }, set_readonly: function(readonly) { this.readonly = readonly; - this.$input.attr('disabled', this.readonly); + this.$input.prop('disabled', this.readonly); this.$element.find('img.oe_datepicker_trigger').toggleClass('oe_input_icon_disabled', readonly); }, is_valid: function(required) { @@ -1479,7 +1478,7 @@ openerp.web.form.FieldText = openerp.web.form.Field.extend({ }, update_dom: function() { this._super.apply(this, arguments); - this.$element.find('textarea').attr('disabled', this.readonly); + this.$element.find('textarea').prop('disabled', this.readonly); }, set_value_from_ui: function() { this.value = openerp.web.parse_value(this.$element.find('textarea').val(), this); @@ -1516,7 +1515,7 @@ openerp.web.form.FieldBoolean = openerp.web.form.Field.extend({ }, update_dom: function() { this._super.apply(this, arguments); - this.$element.find('input').attr('disabled', this.readonly); + this.$element.find('input').prop('disabled', this.readonly); }, focus: function() { this.$element.find('input').focus(); @@ -1599,7 +1598,7 @@ openerp.web.form.FieldSelection = openerp.web.form.Field.extend({ }, update_dom: function() { this._super.apply(this, arguments); - this.$element.find('select').attr('disabled', this.readonly); + this.$element.find('select').prop('disabled', this.readonly); }, validate: function() { var value = this.values[this.$element.find('select')[0].selectedIndex]; @@ -1948,7 +1947,7 @@ openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ }, update_dom: function() { this._super.apply(this, arguments); - this.$input.attr('disabled', this.readonly); + this.$input.prop('disabled', this.readonly); } }); @@ -2059,7 +2058,9 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ }); this.views = views; - this.viewmanager = new openerp.web.ViewManager(this, this.dataset, views); + this.viewmanager = new openerp.web.ViewManager(this, this.dataset, views, { + action_buttons : false + }); this.viewmanager.template = 'One2Many.viewmanager'; this.viewmanager.registry = openerp.web.views.clone({ list: 'openerp.web.form.One2ManyListView', @@ -2087,7 +2088,6 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ controller.on_pager_action.add_first(function() { self.save_any_view(); }); - controller.$element.find(".oe_form_button_save").hide(); } else if (view_type == "graph") { self.reload_current_view() } @@ -2374,7 +2374,7 @@ openerp.web.form.FieldMany2Many = openerp.web.form.Field.extend({ load_view: function() { var self = this; this.list_view = new openerp.web.form.Many2ManyListView(this, this.dataset, false, { - 'addable': self.is_readonly() ? null : 'Add', + 'addable': self.is_readonly() ? null : _t("Add"), 'deletable': self.is_readonly() ? false : true, 'selectable': self.multi_selection }); @@ -2905,7 +2905,7 @@ openerp.web.form.FieldBinaryFile = openerp.web.form.FieldBinary.extend({ update_dom: function() { this._super.apply(this, arguments); this.$element.find('.oe-binary-file-set, .oe-binary-file-clear').toggle(!this.readonly); - this.$element.find('input[type=text]').attr('disabled', this.readonly); + this.$element.find('input[type=text]').prop('disabled', this.readonly); }, set_value: function(value) { this._super.apply(this, arguments); diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 059bc020682..36dc71cc485 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -12,7 +12,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# // whether the column headers should be displayed 'header': true, // display addition button, with that label - 'addable': _t("Create"), + 'addable': {toString: function () { return _t("Create"); }}, // whether the list view can be sorted, note that once a view has been // sorted it can not be reordered anymore 'sortable': true, @@ -79,6 +79,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# self.compute_aggregates(); }); + this.no_leaf = false; }, /** * Retrieves the view's number of records per page (|| section) @@ -401,13 +402,13 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# }, this)); }, do_show: function () { - this.$element.show(); + this._super(); if (this.sidebar) { this.sidebar.$element.show(); } }, do_hide: function () { - this.$element.hide(); + this._super(); if (this.sidebar) { this.sidebar.$element.hide(); } @@ -473,6 +474,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# if (_.isEmpty(group_by) && !context['group_by_no_leaf']) { group_by = null; } + this.no_leaf = !!context['group_by_no_leaf']; this.reload_view(!!group_by, context).then( $.proxy(this, 'reload_content')); diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index abcfb5131dd..40ca1176c79 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -102,9 +102,10 @@ openerp.web.page = function (openerp) { this._super(s[2]); } }); - openerp.web.page.FieldBooleanReadonly = openerp.web.page.FieldCharReadonly.extend({ - set_value: function (value) { - this._super(value ? '\u2611' : '\u2610'); + openerp.web.page.FieldBooleanReadonly = openerp.web.form.FieldBoolean.extend({ + update_dom: function() { + this._super.apply(this, arguments); + this.$element.find('input').prop('disabled', true); } }); openerp.web.page.FieldSelectionReadonly = openerp.web.page.FieldReadonly.extend({ diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 0ad49f69f7b..36edec727a6 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -20,6 +20,7 @@ session.web.ActionManager = session.web.Widget.extend({ identifier_prefix: "actionmanager", init: function(parent) { this._super(parent); + this.inner_action = null; this.inner_viewmanager = null; this.dialog = null; this.dialog_viewmanager = null; @@ -46,10 +47,14 @@ session.web.ActionManager = session.web.Widget.extend({ this.client_widget = null; } }, - - do_push_state: function(state, overwrite) { + do_push_state: function(state) { + if (this.widget_parent && this.widget_parent.do_push_state) { + if (this.inner_action && this.inner_action.id) { + state['action_id'] = this.inner_action.id; + } + this.widget_parent.do_push_state(state); + } }, - do_load_state: function(state) { if (state.action_id) { this.null_action(); @@ -69,7 +74,6 @@ session.web.ActionManager = session.web.Widget.extend({ this.inner_viewmanager.do_load_state(state); } }, - do_action: function(action, on_close) { if (_.isNumber(action)) { var self = this; @@ -128,10 +132,6 @@ session.web.ActionManager = session.web.Widget.extend({ this.content_stop(); this.inner_action = action; this.inner_viewmanager = new session.web.ViewManagerAction(this, action); - this.inner_viewmanager.do_push_state.add(function(state,overwrite) { - state['action_id'] = action.id; - self.do_push_state(state,true); - }); this.inner_viewmanager.appendTo(this.$element); } }, @@ -152,12 +152,9 @@ session.web.ActionManager = session.web.Widget.extend({ }, ir_actions_client: function (action) { this.content_stop(); + this.dialog_stop(); var ClientWidget = session.web.client_actions.get_object(action.tag); (this.client_widget = new ClientWidget(this, action.params)).appendTo(this); - - var client_action = {tag: action.tag}; - if (action.params) _.extend(client_action, {params: action.params}); - this.do_push_state({client_action: client_action}, true); }, ir_actions_report_xml: function(action, on_closed) { var self = this; @@ -200,7 +197,7 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View * @param dataset * @param views */ - init: function(parent, dataset, views) { + init: function(parent, dataset, views, flags) { this._super(parent); this.model = dataset ? dataset.model : undefined; this.dataset = dataset; @@ -208,7 +205,7 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View this.active_view = null; this.views_src = _.map(views, function(x) {return x instanceof Array? {view_id: x[0], view_type: x[1]} : x;}); this.views = {}; - this.flags = this.flags || {}; + this.flags = flags || {}; this.registry = session.web.views; this.views_history = []; }, @@ -314,8 +311,6 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View }); return view_promise; }, - - /** * Returns to the view preceding the caller view in this manager's * navigation history (the navigation history is appended to via @@ -391,7 +386,8 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View /** * Called by children view after executing an action */ - on_action_executed: function () {}, + on_action_executed: function () { + }, display_title: function () { var view = this.views[this.active_view]; if (view) { @@ -415,19 +411,10 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner // dataset initialization will take the session from ``this``, so if we // do not have it yet (and we don't, because we've not called our own // ``_super()``) rpc requests will blow up. - this._super(parent, null, action.views); - this.session = parent.session; - this.action = action; - var dataset = new session.web.DataSetSearch(this, action.res_model, action.context, action.domain); - if (action.res_id) { - dataset.ids.push(action.res_id); - dataset.index = 0; - } - this.dataset = dataset; - this.flags = this.action.flags || {}; + var flags = action.flags || {}; if (action.res_model == 'board.board' && action.view_mode === 'form') { // Special case for Dashboards - _.extend(this.flags, { + _.extend(flags, { views_switcher : false, display_title : false, search_view : false, @@ -436,6 +423,15 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner action_buttons : false }); } + this._super(parent, null, action.views, flags); + this.session = parent.session; + this.action = action; + var dataset = new session.web.DataSetSearch(this, action.res_model, action.context, action.domain); + if (action.res_id) { + dataset.ids.push(action.res_id); + dataset.index = 0; + } + this.dataset = dataset; // setup storage for session-wise menu hiding if (this.session.hidden_menutips) { @@ -466,12 +462,6 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner var main_view_loaded = this._super(); - _.each(_.keys(this.views), function(view_type) { - $.when(self.views[view_type].deferred).done(function(view_type) { - self.views[view_type].controller.do_push_state.add(self.do_push_state); - }); - }); - var manager_ready = $.when(searchview_loaded, main_view_loaded); this.$element.find('.oe_debug_view').change(this.on_debug_changed); @@ -584,21 +574,20 @@ session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepner } else { $search_prefix.remove(); } - - self.do_push_state({view_type: self.active_view}); }); }, - - do_push_state: function(state, overwrite) { + do_push_state: function(state) { + if (this.widget_parent && this.widget_parent.do_push_state) { + state["view_type"] = this.active_view; + this.widget_parent.do_push_state(state); + } }, - do_load_state: function(state) { var self = this; $.when(this.on_mode_switch(state.view_type, true)).done(function() { self.views[self.active_view].controller.do_load_state(state); }); }, - shortcut_check : function(view) { var self = this; var grandparent = this.widget_parent && this.widget_parent.widget_parent; @@ -851,7 +840,7 @@ session.web.Sidebar = session.web.Widget.extend({ }); session.web.TranslateDialog = session.web.Dialog.extend({ - dialog_title: _t("Translations"), + dialog_title: {toString: function () { return _t("Translations"); }}, init: function(view) { // TODO fme: should add the language to fields_view_get because between the fields view get // and the moment the user opens the translation dialog, the user language could have been changed @@ -1064,19 +1053,34 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ this.embedded_view = embedded_view; this.options.sidebar = false; }, + do_show: function () { + this.$element.show(); + this.do_push_state({}); + }, + do_hide: function () { + this.$element.hide(); + }, + do_push_state: function(state) { + if (this.widget_parent && this.widget_parent.do_push_state) { + this.widget_parent.do_push_state(state); + } + }, + do_load_state: function(state) { + }, /** * Switches to a specific view type * * @param {String} view view type to switch to */ - do_switch_view: function(view) { }, + do_switch_view: function(view) { + }, /** * Cancels the switch to the current view, switches to the previous one */ - do_prev_view: function () { }, + do_prev_view: function () { + }, do_search: function(view) { }, - set_common_sidebar_sections: function(sidebar) { sidebar.add_default_sections(); }, @@ -1144,12 +1148,6 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ }, sidebar_context: function () { return $.Deferred().resolve({}).promise(); - }, - - do_push_state: function(state, overwrite) { - }, - - do_load_state: function(state) { } }); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 1894d351e40..a880293403d 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -483,6 +483,10 @@ + + + this.attr('t-if', 'views.length != 1'); + @@ -569,7 +573,7 @@ -
+ @@ -1148,7 +1155,6 @@
-
@@ -1162,6 +1168,7 @@ + diff --git a/addons/web_calendar/po/web_calendar.pot b/addons/web_calendar/po/web_calendar.pot index f92c598a0bf..bb96357ea66 100644 --- a/addons/web_calendar/po/web_calendar.pot +++ b/addons/web_calendar/po/web_calendar.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" -#: addons/web_calendar/static/src/js/calendar.js:412 +#: addons/web_calendar/static/src/js/calendar.js:444 msgid "Responsible" msgstr "" -#: addons/web_calendar/static/src/js/calendar.js:441 +#: addons/web_calendar/static/src/js/calendar.js:473 msgid "Navigator" msgstr "" diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index 887bdc47780..1e253fc8f44 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -10,6 +10,7 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ // Dhtmlx scheduler ? init: function(parent, dataset, view_id, options) { this._super(parent); + this.ready = $.Deferred(); this.set_default_options(options); this.dataset = dataset; this.model = dataset.model; @@ -26,6 +27,9 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ '#905000', '#9b0000', '#840067', '#510090', '#0000c9', '#009b00', '#9abe00', '#ffc900' ]; this.color_map = {}; this.last_search = []; + this.range_start = null; + this.range_stop = null; + this.update_range_dates(Date.today()); }, start: function() { this._super(); @@ -126,9 +130,8 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ scheduler.attachEvent('onClick', this.do_edit_event); scheduler.attachEvent('onLightbox', this.do_edit_event); - scheduler.attachEvent('onViewChange', function(mode, date) { - self.$element.removeClass('oe_cal_day oe_cal_week oe_cal_month').addClass('oe_cal_' + mode); - }); + scheduler.attachEvent('onViewChange', this.on_view_changed); + this.refresh_scheduler(); if (this.options.sidebar) { this.mini_calendar = scheduler.renderCalendar({ @@ -141,6 +144,18 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ }); } }, + on_view_changed: function(mode, date) { + this.$element.removeClass('oe_cal_day oe_cal_week oe_cal_month').addClass('oe_cal_' + mode); + if (!date.between(this.range_start, this.range_stop)) { + this.update_range_dates(date); + this.do_ranged_search(); + } + this.ready.resolve(); + }, + update_range_dates: function(date) { + this.range_start = date.clone().moveToFirstDayOfMonth(); + this.range_stop = this.range_start.clone().addMonths(1).addSeconds(-1); + }, refresh_scheduler: function() { scheduler.setCurrentView(scheduler._date); }, @@ -345,23 +360,30 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ return data; }, do_search: function(domain, context, group_by) { + this.last_search = arguments; + this.do_ranged_search(); + }, + do_ranged_search: function() { var self = this - if (!domain) { - this.do_search.apply(this, this.last_search); - } else { - this.last_search = [domain, context, group_by]; - } scheduler.clearAll(); - $.when(this.has_been_loaded).then(function() { + $.when(this.has_been_loaded, this.ready).then(function() { self.dataset.read_slice(_.keys(self.fields), { offset: 0, - limit: self.limit + domain: self.get_range_domain(), + context: self.last_search[1] }, function(events) { self.dataset_events = events; self.on_events_loaded(events); }); }); }, + get_range_domain: function() { + var format = openerp.web.date_to_str, + domain = this.last_search[0].slice(0); + domain.unshift([this.date_start, '>=', format(this.range_start.clone().addDays(-6))]); + domain.unshift([this.date_start, '<=', format(this.range_stop.clone().addDays(6))]); + return domain; + }, do_show: function () { var self = this; $.when(this.has_been_loaded).then(function() { @@ -372,7 +394,7 @@ openerp.web_calendar.CalendarView = openerp.web.View.extend({ }); }, do_hide: function () { - this.$element.hide(); + this._super(); if (this.sidebar) { this.sidebar.$element.hide(); } diff --git a/addons/web_chat/po/web_chat.pot b/addons/web_chat/po/web_chat.pot index 070ea446394..9d965323f20 100644 --- a/addons/web_chat/po/web_chat.pot +++ b/addons/web_chat/po/web_chat.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_dashboard/po/web_dashboard.pot b/addons/web_dashboard/po/web_dashboard.pot index 201c979a547..064b084acba 100644 --- a/addons/web_dashboard/po/web_dashboard.pot +++ b/addons/web_dashboard/po/web_dashboard.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/web_dashboard/static/src/js/dashboard.js:63 +msgid "Edit Layout" +msgstr "" + #: addons/web_dashboard/static/src/xml/web_dashboard.xml:0 msgid "Reset" msgstr "" diff --git a/addons/web_dashboard/static/src/css/dashboard.css b/addons/web_dashboard/static/src/css/dashboard.css index 7ee47f4b88c..785de7d5b6b 100644 --- a/addons/web_dashboard/static/src/css/dashboard.css +++ b/addons/web_dashboard/static/src/css/dashboard.css @@ -39,6 +39,11 @@ padding-bottom: 2px; } +.openerp .oe_dashboard_button_create { + margin-left: 4px; + padding: 0 4px 0 4px; +} + .openerp a.oe-dashboard-action-rename { float: left; padding-right: 4px; diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js index c7132d7a9ef..28ea12796d2 100644 --- a/addons/web_dashboard/static/src/js/dashboard.js +++ b/addons/web_dashboard/static/src/js/dashboard.js @@ -1,5 +1,6 @@ openerp.web_dashboard = function(openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; if (!openerp.web_dashboard) { /** @namespace */ @@ -59,7 +60,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ }; var $dialog = $('
').dialog({ modal: true, - title: 'Edit Layout', + title: _t("Edit Layout"), width: 'auto', height: 'auto' }).html(QWeb.render('DashBoard.layouts', qdict)); @@ -149,12 +150,13 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ view_mode = action_attrs.view_mode; if (action_attrs.context) { - action.context = action_attrs.context; + action.context = _.extend((action.context || {}), action_attrs.context); } if (action_attrs.domain) { - action.domain = action_attrs.domain; + action.domain = action.domain || []; + action.domain.unshift.apply(action.domain, action_attrs.domain); } - var action_orig = _.extend({}, action); + var action_orig = _.extend({ flags : {} }, action); if (view_mode && view_mode != action.view_mode) { var action_view_mode = action.view_mode.split(','); @@ -195,7 +197,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({ var action_id = parseInt(action_attrs.creatable, 10); $action.parent().find('button.oe_dashboard_button_create').click(function() { if (isNaN(action_id)) { - action.flags.default_view = 'form'; + action_orig.flags.default_view = 'form'; self.do_action(action_orig); } else { self.rpc('/web/action/load', { @@ -397,8 +399,8 @@ openerp.web_dashboard.ApplicationTiles = openerp.web.Widget.extend({ this._super(parent); }, start: function() { - // TODO menu hide var self = this; + openerp.webclient.menu.do_hide_secondary(); var domain = [['application','=',true], ['state','=','installed'], ['name', '!=', 'base']]; var ds = new openerp.web.DataSetSearch(this, 'ir.module.module',{},domain); ds.read_slice(['id'], {}, function(result) { diff --git a/addons/web_dashboard/static/src/xml/web_dashboard.xml b/addons/web_dashboard/static/src/xml/web_dashboard.xml index 5d05990c917..5f98df612d5 100644 --- a/addons/web_dashboard/static/src/xml/web_dashboard.xml +++ b/addons/web_dashboard/static/src/xml/web_dashboard.xml @@ -25,11 +25,11 @@

&nbsp; +

-
diff --git a/addons/web_diagram/po/web_diagram.pot b/addons/web_diagram/po/web_diagram.pot index 91d96431684..2c1fc4c6013 100644 --- a/addons/web_diagram/po/web_diagram.pot +++ b/addons/web_diagram/po/web_diagram.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 0.9.6\n" +#: addons/web_diagram/static/src/js/diagram.js:208 +msgid "Cancel" +msgstr "" + +#: addons/web_diagram/static/src/js/diagram.js:209 +msgid "Save" +msgstr "" + #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" msgstr "" diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 08617efd073..0572b7f6fed 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -3,7 +3,8 @@ *---------------------------------------------------------*/ openerp.web_diagram = function (openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.views.add('diagram', 'openerp.web.DiagramView'); openerp.web.DiagramView = openerp.web.View.extend({ searchable: false, @@ -203,19 +204,18 @@ openerp.web.DiagramView = openerp.web.View.extend({ var dialog = new openerp.web.Dialog(this, { width: 800, height: 600, - buttons : { - Cancel : function() { - $(this).dialog('destroy'); - }, - Save : function() { - var form_view = action_manager.inner_viewmanager.views.form.controller; + buttons : [ + {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }}, + {text: _t("Save"), click: function() { + var form_view = action_manager.inner_viewmanager.views.form.controller; - form_view.do_save(function() { - self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); - }); - $(this).dialog('destroy'); + form_view.do_save(function() { + self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); + }); + $(this).dialog('destroy'); + } } - } + ] }).start().open(); action_manager.appendTo(dialog.$element); action_manager.do_action({ @@ -298,14 +298,6 @@ openerp.web.DiagramView = openerp.web.View.extend({ } $pager.find('span.oe_pager_index').html(index); $pager.find('span.oe_pager_count').html(this.dataset.count); - }, - - do_show: function () { - this.$element.show(); - }, - - do_hide: function () { - this.$element.hide(); } }); }; diff --git a/addons/web_gantt/po/web_gantt.pot b/addons/web_gantt/po/web_gantt.pot index 9c91dda7f30..2e05d9b703e 100644 --- a/addons/web_gantt/po/web_gantt.pot +++ b/addons/web_gantt/po/web_gantt.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index 71dba5da093..ccf2ac07bfb 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -459,14 +459,6 @@ openerp.web_gantt.GanttView = openerp.web.View.extend({ } }, - do_show: function () { - this.$element.show(); - }, - - do_hide: function () { - this.$element.hide(); - }, - convert_str_date: function (str) { if (typeof str == 'string') { if (str.length == 19) { diff --git a/addons/web_graph/po/web_graph.pot b/addons/web_graph/po/web_graph.pot index 070ea446394..9d965323f20 100644 --- a/addons/web_graph/po/web_graph.pot +++ b/addons/web_graph/po/web_graph.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js index 8c330434075..acab0b73f5e 100644 --- a/addons/web_graph/static/src/js/graph.js +++ b/addons/web_graph/static/src/js/graph.js @@ -37,12 +37,6 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ } this._super(); }, - do_show: function () { - this.$element.show(); - }, - do_hide: function () { - this.$element.hide(); - }, start: function() { var self = this; this._super(); @@ -177,19 +171,20 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ graph_data = _(graph_data).sortBy(function (point) { return point[self.abscissa] + '[[--]]' + point[self.group_field]; }); - - if (this.chart == 'bar') { - return this.schedule_bar(graph_data); + if (this.chart == 'bar' || 'line' || 'area') { + return this.schedule_bar_line_area(graph_data); } else if (this.chart == "pie") { return this.schedule_pie(graph_data); } }, - - schedule_bar: function(results) { + schedule_bar_line_area: function(results) { var self = this; - var group_list, view_chart; + var group_list, + view_chart = (self.chart == 'line')?'line':(self.chart == 'area')?'area':''; if (!this.group_field) { - view_chart = (this.orientation === 'horizontal') ? 'barH' : 'bar'; + if (self.chart == 'bar'){ + view_chart = (this.orientation === 'horizontal') ? 'barH' : 'bar'; + } group_list = _(this.columns).map(function (column, index) { return { group: column.name, @@ -202,7 +197,7 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ // value) and stacked bar charts (basically the same but with the // columns on top of one another instead of side by side), but it // does not handle clustered stacked bar charts - if (this.columns.length > 1) { + if (self.chart == 'bar' && (this.columns.length > 1)) { this.$element.text( 'OpenERP Web does not support combining grouping and ' + 'multiple columns in graph at this time.'); @@ -211,8 +206,10 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ } // transform series for clustered charts into series for stacked // charts - view_chart = (this.orientation === 'horizontal') - ? 'stackedBarH' : 'stackedBar'; + if (self.chart == 'bar'){ + view_chart = (this.orientation === 'horizontal') + ? 'stackedBarH' : 'stackedBar'; + } group_list = _(results).chain() .pluck(this.group_field) .uniq() @@ -253,7 +250,7 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ }; var x_axis, y_axis; - if (self.orientation == 'horizontal') { + if (self.chart == 'bar' && self.orientation == 'horizontal') { x_axis = ordinate_description; y_axis = abscissa_description; } else { @@ -266,11 +263,12 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ return; } self.renderer = null; - var bar_chart = new dhtmlXChart({ + var charts = new dhtmlXChart({ view: view_chart, - container: self.element_id+"-barchart", + container: self.element_id+"-"+self.chart+"chart", value:"#"+group_list[0].group+"#", - gradient: "3d", + gradient: (self.chart == "bar") ? "3d" : "light", + alpha: (self.chart == "area") ? 0.6 : 1, border: false, width: 1024, tooltip:{ @@ -278,7 +276,15 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ self.abscissa, group_list[0].text, group_list[0].group) }, radius: 0, - color:group_list[0].color, + color: (self.chart != "line") ? group_list[0].color : "", + item: (self.chart == "line") ? { + borderColor: group_list[0].color, + color: "#000000" + } : "", + line: (self.chart == "line") ? { + color: group_list[0].color, + width: 3 + } : "", origin:0, xAxis: x_axis, yAxis: y_axis, @@ -296,23 +302,32 @@ openerp.web_graph.GraphView = openerp.web.View.extend({ } } }); + for (var m = 1; m\n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 7299a3ae63d..9f86d4d3383 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -258,12 +258,6 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ }); } }, - do_show: function () { - this.$element.show(); - }, - do_hide: function () { - this.$element.hide(); - }, compute_groups_width: function() { var unfolded = 0; _.each(this.groups, function(group) { diff --git a/addons/web_mobile/po/web_mobile.pot b/addons/web_mobile/po/web_mobile.pot index 6667eeb8d27..53c029ce5ad 100644 --- a/addons/web_mobile/po/web_mobile.pot +++ b/addons/web_mobile/po/web_mobile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 9bf814aa4f4..e650530a914 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -1,5 +1,6 @@ openerp.web_process = function (openerp) { - var QWeb = openerp.web.qweb; + var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.ViewManager.include({ start: function() { this._super(); @@ -275,19 +276,17 @@ openerp.web_process = function (openerp) { var dialog = new openerp.web.Dialog(this, { width: 800, height: 600, - buttons : { - Cancel : function() { - $(this).dialog('destroy'); - }, - Save : function() { + buttons : [ + {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }}, + {text: _t("Save"), click: function() { var form_view = action_manager.inner_viewmanager.views.form.controller; form_view.do_save(function() { self.initialize_process_view(); }); $(this).dialog('destroy'); - } - } + }} + ] }).start().open(); action_manager.appendTo(dialog.$element); diff --git a/addons/web_rpc/po/web_rpc.pot b/addons/web_rpc/po/web_rpc.pot index 070ea446394..9d965323f20 100644 --- a/addons/web_rpc/po/web_rpc.pot +++ b/addons/web_rpc/po/web_rpc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2011-12-09 10:33+0100\n" +"POT-Creation-Date: 2011-12-15 11:40+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n"