diff --git a/addons/web/common/http.py b/addons/web/common/http.py index 69220eec2d7..96af5afe65e 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -406,7 +406,7 @@ class Root(object): params = urllib.urlencode(request.args) return werkzeug.utils.redirect(self.root + '?' + params, 301)( environ, start_response) - elif request.path == '/mobile': + elif request.path == '/mobile' or ('#' in request.path): return werkzeug.utils.redirect( '/web_mobile/static/src/web_mobile.html', 301)(environ, start_response) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index c542bffffad..6af0268b3bf 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -268,13 +268,18 @@ class Database(openerpweb.Controller): params['db_lang'], params['create_admin_pwd'] ) - + try: return req.session.proxy("db").create(*create_attrs) except xmlrpclib.Fault, e: - if e.faultCode and e.faultCode.split(':')[0] == 'AccessDenied': - return {'error': e.faultCode, 'title': 'Create Database'} - return {'error': 'Could not create database !', 'title': 'Create Database'} + if e.faultCode and isinstance(e.faultCode, str)\ + and e.faultCode.split(':')[0] == 'AccessDenied': + return {'error': e.faultCode, 'title': 'Database creation error'} + return { + 'error': "Could not create database '%s': %s" % ( + params['db_name'], e.faultString), + 'title': 'Database creation error' + } @openerpweb.jsonrequest def drop(self, req, fields): @@ -338,7 +343,8 @@ class Session(openerpweb.Controller): "session_id": req.session_id, "uid": req.session._uid, "context": ctx, - "db": req.session._db + "db": req.session._db, + "login": req.session._login } @openerpweb.jsonrequest @@ -347,7 +353,8 @@ class Session(openerpweb.Controller): return { "uid": req.session._uid, "context": req.session.get_context() if req.session._uid else False, - "db": req.session._db + "db": req.session._db, + "login": req.session._login } @openerpweb.jsonrequest diff --git a/addons/web/po/ar.po b/addons/web/po/ar.po index 4a6ebecff9f..34c7beccf4a 100644 --- a/addons/web/po/ar.po +++ b/addons/web/po/ar.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-09 05:09+0000\n" -"X-Generator: Launchpad (build 14263)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:49+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/da.po b/addons/web/po/da.po index db03cc5e19b..d40db04e29e 100644 --- a/addons/web/po/da.po +++ b/addons/web/po/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-09 05:09+0000\n" -"X-Generator: Launchpad (build 14263)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:49+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/de.po b/addons/web/po/de.po index 0a26630321f..72778500484 100644 --- a/addons/web/po/de.po +++ b/addons/web/po/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/es.po b/addons/web/po/es.po index 9bd7071871b..e53b5e2631b 100644 --- a/addons/web/po/es.po +++ b/addons/web/po/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/es_EC.po b/addons/web/po/es_EC.po index 588408ba979..fc98c8bb536 100644 --- a/addons/web/po/es_EC.po +++ b/addons/web/po/es_EC.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/et.po b/addons/web/po/et.po index 6b6da84f3a5..b9362cd0fdc 100644 --- a/addons/web/po/et.po +++ b/addons/web/po/et.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/fr.po b/addons/web/po/fr.po index df35344c558..fcbcce3b1a7 100644 --- a/addons/web/po/fr.po +++ b/addons/web/po/fr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/gl.po b/addons/web/po/gl.po index 34b2d50085f..7a8fefab03c 100644 --- a/addons/web/po/gl.po +++ b/addons/web/po/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/it.po b/addons/web/po/it.po index 647030fd4ea..a3899989d7e 100644 --- a/addons/web/po/it.po +++ b/addons/web/po/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/nl_BE.po b/addons/web/po/nl_BE.po index 3d649b59b9d..43f52ade62e 100644 --- a/addons/web/po/nl_BE.po +++ b/addons/web/po/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/pl.po b/addons/web/po/pl.po index fde2196a73e..56f004a0197 100644 --- a/addons/web/po/pl.po +++ b/addons/web/po/pl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 06:04+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/pt_BR.po b/addons/web/po/pt_BR.po index 8b81c9c90cb..b80ea3a78bd 100644 --- a/addons/web/po/pt_BR.po +++ b/addons/web/po/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-13 05:56+0000\n" -"X-Generator: Launchpad (build 14277)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/po/sl.po b/addons/web/po/sl.po index 54349249817..585dae78293 100644 --- a/addons/web/po/sl.po +++ b/addons/web/po/sl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web/static/src/js/view_form.js:355 msgid "" diff --git a/addons/web/static/lib/qweb/qweb2.js b/addons/web/static/lib/qweb/qweb2.js index 34457ade4fd..a6a6da5a6d7 100644 --- a/addons/web/static/lib/qweb/qweb2.js +++ b/addons/web/static/lib/qweb/qweb2.js @@ -4,7 +4,7 @@ // TODO: t-set + t-value + children node == scoped variable ? var QWeb2 = { expressions_cache: {}, - RESERVED_WORDS: 'true,false,NaN,null,undefined,debugger,in,instanceof,new,function,return,this,typeof,eval,Math,RegExp,Array,Object,Date'.split(','), + RESERVED_WORDS: 'true,false,NaN,null,undefined,debugger,console,in,instanceof,new,function,return,this,typeof,eval,Math,RegExp,Array,Object,Date'.split(','), ACTIONS_PRECEDENCE: 'foreach,if,call,set,esc,escf,raw,rawf,js,debug,log'.split(','), WORD_REPLACEMENT: { 'and': '&&', diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index c061353d113..d8f31af1d35 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -809,33 +809,33 @@ label.error { also on the first and last children of the first and last row */ .openerp .oe-listview table.oe-listview-content { - -webkit-border-radius: 7px; - -moz-border-radius: 7px; - border-radius: 7px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; } .openerp .oe-listview table.oe-listview-content thead tr:first-child th:first-child { - -webkit-border-top-left-radius: 7px; - -moz-border-radius-topleft: 7px; - border-top-left-radius: 7px; + -webkit-border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; + border-top-left-radius: 4px; } .openerp .oe-listview table.oe-listview-content thead tr:first-child th:last-child { - -webkit-border-top-right-radius: 7px; - -moz-border-radius-topright: 7px; - border-top-right-radius: 7px; + -webkit-border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; + border-top-right-radius: 4px; } .openerp .oe-listview table.oe-listview-content tfoot tr:last-child th:first-child, .openerp .oe-listview table.oe-listview-content tfoot tr:last-child td:first-child, .openerp .oe-listview table.oe-listview-content tbody:last-child tr:last-child th:first-child { - -webkit-border-bottom-left-radius: 7px; - -moz-border-radius-bottomleft: 7px; - border-bottom-left-radius: 7px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + border-bottom-left-radius: 4px; } .openerp .oe-listview table.oe-listview-content tfoot tr:last-child th:last-child, .openerp .oe-listview table.oe-listview-content tfoot tr:last-child td:last-child, .openerp .oe-listview table.oe-listview-content tbody:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 7px; - -moz-border-radius-bottomright: 7px; - border-bottom-right-radius: 7px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + border-bottom-right-radius: 4px; } /* Notebook */ @@ -967,20 +967,25 @@ label.error { .openerp .oe_forms textarea { resize:vertical; } -.openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms .button { +.openerp .oe_forms input[type="text"], .openerp .oe_forms input[type="password"], .openerp .oe_forms select, .openerp .oe_forms .oe_button { height: 22px; } .openerp .oe_forms input.field_datetime { min-width: 11em; } -.openerp .oe_forms.oe_frame .oe_datepicker_root { - width: 100%; -} -.openerp .oe_forms .button { +.openerp .oe_forms .oe_button { color: #4c4c4c; white-space: nowrap; + min-width: 100%; + width: 100%; } -.openerp .oe_forms .button span { +@-moz-document url-prefix() { + /* Strange firefox behaviour on width: 100% + white-space: nowrap */ + .openerp .oe_forms .oe_button { + width: auto; + } +} +.openerp .oe_forms .oe_button span { position: relative; vertical-align: top; } @@ -989,13 +994,20 @@ label.error { cursor: pointer; right: 5px; top: 3px; + z-index: 2; +} +.openerp .oe_datepicker_container { + position: absolute; + top: 0; + right: 0; + display: none; } .openerp .oe_datepicker_root { position: relative; display: inline-block; } -.openerp .oe_datepicker_root input[type="text"] { - min-width: 160px; +.openerp .oe_forms.oe_frame .oe_datepicker_root { + width: 100%; } .openerp .oe_input_icon_disabled { position: absolute; @@ -1003,7 +1015,7 @@ label.error { opacity: 0.5; filter:alpha(opacity=50); right: 5px; - top: 5px; + top: 3px; } .openerp img.oe_field_translate { margin-left: -21px; diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index f77f9bf1041..a9731ef5b16 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -125,7 +125,11 @@ openerp.web.callback = function(obj, method) { callback.callback_chain.splice(i, 1); i -= 1; } - r = c.callback.apply(c.self, c.args.concat(args)); + var result = c.callback.apply(c.self, c.args.concat(args)); + if (c.callback === method) { + // return the result of the original method + r = result; + } // TODO special value to stop the chain // openerp.web.callback_stop } @@ -354,6 +358,7 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. this.debug = (window.location.search.indexOf('?debug') !== -1); this.session_id = false; this.uid = false; + this.username = false; this.user_context= {}; this.db = false; this.module_list = []; @@ -484,10 +489,13 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. var self = this; var params = { db: db, login: login, password: password }; return this.rpc("/web/session/login", params, function(result) { - self.session_id = result.session_id; - self.uid = result.uid; - self.user_context = result.context; - self.db = result.db; + _.extend(self, { + session_id: result.session_id, + uid: result.uid, + user_context: result.context, + db: result.db, + username: result.login + }); self.session_save(); self.on_session_valid(); return true; @@ -501,9 +509,12 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. var self = this; this.session_id = this.get_cookie('session_id'); return this.rpc("/web/session/get_session_info", {}).then(function(result) { - self.uid = result.uid; - self.user_context = result.context; - self.db = result.db; + _.extend(self, { + uid: result.uid, + user_context: result.context, + db: result.db, + username: result.login + }); if (self.uid) self.on_session_valid(); else diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index e783f374dce..69d8fd9ddfd 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -316,7 +316,7 @@ openerp.web.DataSet = openerp.web.Widget.extend( /** @lends openerp.web.DataSet def.reject(); } else { fields = fields || false; - return this.read_ids([this.ids[this.index]], fields).then(function(records) { + this.read_ids([this.ids[this.index]], fields).then(function(records) { def.resolve(records[0]); }, function() { def.reject.apply(def, arguments); diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index c82584e87f8..f95801975b5 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -41,7 +41,11 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search if (this.headless) { this.ready.resolve(); } else { - this.rpc("/web/searchview/load", {"model": this.model, "view_id":this.view_id}, this.on_loaded); + this.rpc("/web/searchview/load", { + model: this.model, + view_id: this.view_id, + context: this.dataset.get_context() + }, this.on_loaded); } return this.ready.promise(); }, diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 6cc46246651..8b84404f87a 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -140,7 +140,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# // null index means we should start a new record promise = this.on_button_new(); } else { - promise = this.dataset.read_index(_.keys(this.fields_view.fields), this.on_record_loaded); + promise = this.dataset.read_index(_.keys(this.fields_view.fields)).pipe(this.on_record_loaded); } this.$element.show(); if (this.sidebar) { @@ -155,6 +155,8 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# } }, on_record_loaded: function(record) { + var self = this, + deferred_stack = $.Deferred.queue(); if (!record) { throw("Form: No record received"); } @@ -172,33 +174,41 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# this.$form_header.find('.oe_form_on_readonly').toggle(this.readonly); this.$form_header.find('.oe_form_on_editable').toggle(!this.readonly); this.datarecord = record; - for (var f in this.fields) { - var field = this.fields[f]; - field.dirty = false; - field.set_value(this.datarecord[f] || false); - field.validate(); - } - if (!record.id) { - // New record: Second pass in order to trigger the onchanges - this.show_invalid = false; - for (var f in record) { - var field = this.fields[f]; - if (field) { - field.dirty = true; - this.do_onchange(field); + + _(this.fields).each(function (field, f) { + field.reset(); + var result = field.set_value(self.datarecord[f] || false); + if (result && _.isFunction(result.promise)) { + deferred_stack.push(result); + } + $.when(result).then(function() { + field.validate(); + }); + }); + deferred_stack.push('force resolution if no fields'); + return deferred_stack.then(function() { + if (!record.id) { + // New record: Second pass in order to trigger the onchanges + self.show_invalid = false; + for (var f in record) { + var field = self.fields[f]; + if (field) { + field.dirty = true; + self.do_onchange(field); + } } } - } - this.on_form_changed(); - this.initial_mutating_lock.resolve(); - this.show_invalid = true; - this.do_update_pager(record.id == null); - if (this.sidebar) { - this.sidebar.attachments.do_update(); - } - if (this.default_focus_field && !this.embedded_view) { - this.default_focus_field.focus(); - } + self.on_form_changed(); + self.initial_mutating_lock.resolve(); + self.show_invalid = true; + self.do_update_pager(record.id == null); + if (self.sidebar) { + self.sidebar.attachments.do_update(); + } + if (self.default_focus_field && !self.embedded_view) { + self.default_focus_field.focus(); + } + }); }, on_form_changed: function() { for (var w in this.widgets) { @@ -354,12 +364,13 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# var keys = _.keys(self.fields_view.fields); $.when(self.do_set_editable()).then(function() { if (keys.length) { - self.dataset.default_get(keys).then(self.on_record_loaded).then(function() { + self.dataset.default_get(keys).pipe(self.on_record_loaded).then(function() { def.resolve(); }); } else { - self.on_record_loaded({}); - def.resolve(); + self.on_record_loaded({}).then(function() { + def.resolve(); + }); } }); } @@ -427,7 +438,10 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# if (!first_invalid_field) { first_invalid_field = f; } - } else if (f.is_dirty()) { + } else if (f.name !== 'id' && !f.readonly && (!self.datarecord.id || f.is_dirty())) { + // Special case 'id' field, do not save this field + // on 'create' : save all non readonly fields + // on 'edit' : save non readonly modified fields values[f.name] = f.get_value(); } } @@ -476,8 +490,8 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# // should not happen in the server, but may happen for internal purpose return $.Deferred().reject(); } else { - this.reload(); - return $.when(r).then(success); + return $.when(this.reload()).pipe(function () { + return $.when(r).then(success); }, null); } }, /** @@ -524,7 +538,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# if (self.dataset.index == null || self.dataset.index < 0) { return $.when(self.on_button_new()); } else { - return self.dataset.read_index(_.keys(self.fields_view.fields), self.on_record_loaded); + return self.dataset.read_index(_.keys(self.fields_view.fields)).pipe(self.on_record_loaded); } }; this.reload_lock = this.reload_lock.pipe(act, act); @@ -1180,8 +1194,7 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f this.nolabel = (this.field.nolabel || node.attrs.nolabel) === '1'; this.readonly = this.modifiers['readonly'] === true; this.required = this.modifiers['required'] === true; - this.invalid = false; - this.dirty = false; + this.invalid = this.dirty = false; this.classname = 'oe_form_field_' + this.type; }, @@ -1251,6 +1264,9 @@ openerp.web.form.Field = openerp.web.form.Widget.extend(/** @lends openerp.web.f this.invalid = false; }, focus: function() { + }, + reset: function() { + this.dirty = false; } }); @@ -1340,7 +1356,6 @@ openerp.web.form.FieldFloat = openerp.web.form.FieldChar.extend({ if (value === false || value === undefined) { // As in GTK client, floats default to 0 value = 0; - this.dirty = true; } this._super.apply(this, [value]); } @@ -1350,54 +1365,58 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({ template: "web.datetimepicker", jqueryui_object: 'datetimepicker', type_of_date: "datetime", + init: function(parent) { + this._super(parent); + this.name = parent.name; + }, start: function() { var self = this; - this.$element.find('input').change(this.on_change); + this.$input = this.$element.find('input.oe_datepicker_master'); + this.$input_picker = this.$element.find('input.oe_datepicker_container'); + this.$input.change(this.on_change); this.picker({ onSelect: this.on_picker_select, changeMonth: true, changeYear: true, showWeek: true, - showButtonPanel: false + showButtonPanel: true }); this.$element.find('img.oe_datepicker_trigger').click(function() { if (!self.readonly) { self.picker('setDate', self.value ? openerp.web.auto_str_to_date(self.value) : new Date()); - self.$element.find('.oe_datepicker').toggle(); + self.$input_picker.show(); + self.picker('show'); + self.$input_picker.hide(); } }); - this.$element.find('.ui-datepicker-inline').removeClass('ui-widget-content ui-corner-all'); - this.$element.find('button.oe_datepicker_close').click(function() { - self.$element.find('.oe_datepicker').hide(); - }); this.set_readonly(false); this.value = false; }, picker: function() { - return $.fn[this.jqueryui_object].apply(this.$element.find('.oe_datepicker_container'), arguments); + return $.fn[this.jqueryui_object].apply(this.$input_picker, arguments); }, on_picker_select: function(text, instance) { var date = this.picker('getDate'); - this.$element.find('input').val(date ? this.format_client(date) : '').change(); + this.$input.val(date ? this.format_client(date) : '').change(); }, set_value: function(value) { this.value = value; - this.$element.find('input').val(value ? this.format_client(value) : ''); + this.$input.val(value ? this.format_client(value) : ''); }, get_value: function() { return this.value; }, set_value_from_ui: function() { - var value = this.$element.find('input').val() || false; + var value = this.$input.val() || false; this.value = this.parse_client(value); }, set_readonly: function(readonly) { this.readonly = readonly; - this.$element.find('input').attr('disabled', this.readonly); + this.$input.attr('disabled', this.readonly); this.$element.find('img.oe_datepicker_trigger').toggleClass('oe_input_icon_disabled', readonly); }, is_valid: function(required) { - var value = this.$element.find('input').val(); + var value = this.$input.val(); if (value === "") { return !required; } else { @@ -1410,7 +1429,7 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({ } }, focus: function() { - this.$element.find('input').focus(); + this.$input.focus(); }, parse_client: function(v) { return openerp.web.parse_value(v, {"widget": this.type_of_date}); @@ -1427,11 +1446,7 @@ openerp.web.DateTimeWidget = openerp.web.Widget.extend({ openerp.web.DateWidget = openerp.web.DateTimeWidget.extend({ jqueryui_object: 'datepicker', - type_of_date: "date", - on_picker_select: function(text, instance) { - this._super(text, instance); - this.$element.find('.oe_datepicker').hide(); - } + type_of_date: "date" }); openerp.web.form.FieldDatetime = openerp.web.form.Field.extend({ @@ -2109,7 +2124,7 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ }, reload_current_view: function() { var self = this; - self.is_loaded = self.is_loaded.pipe(function() { + return self.is_loaded = self.is_loaded.pipe(function() { var view = self.viewmanager.views[self.viewmanager.active_view].controller; if(self.viewmanager.active_view === "list") { return view.reload_content(); @@ -2182,8 +2197,8 @@ openerp.web.form.FieldOne2Many = openerp.web.form.Field.extend({ if (this.dataset.index === null && this.dataset.ids.length > 0) { this.dataset.index = 0; } - self.reload_current_view(); - this.is_setted.resolve(); + self.is_setted.resolve(); + return self.reload_current_view(); }, get_value: function() { var self = this; diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index 5143adb3838..34d47b92813 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -42,7 +42,8 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView# model: this.model, view_id: this.view_id, view_type: "tree", - toolbar: this.view_manager ? !!this.view_manager.sidebar : false + toolbar: this.view_manager ? !!this.view_manager.sidebar : false, + context: this.dataset.get_context() }, this.on_loaded); }, /** @@ -214,17 +215,23 @@ openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView# // Get details in listview activate: function(id) { var self = this; + var local_context = { + active_model: self.dataset.model, + active_id: id, + active_ids: [id]}; this.rpc('/web/treeview/action', { id: id, model: this.dataset.model, context: new openerp.web.CompoundContext( - this.dataset.get_context(), { - active_model: this.dataset.model, - active_id: id, - active_ids: [id]}) + this.dataset.get_context(), local_context) }, function (actions) { if (!actions.length) { return; } var action = actions[0][2]; + var c = new openerp.web.CompoundContext(local_context); + if (action.context) { + c.add(action.context); + } + action.context = c; self.do_action(action); }); }, diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index d348b2d7240..90060f47fc1 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -143,7 +143,7 @@ session.web.ActionManager = session.web.Widget.extend({ var ClientWidget = session.web.client_actions.get_object(action.tag); (this.client_widget = new ClientWidget(this, action.params)).appendTo(this); }, - ir_actions_report_xml: function(action) { + ir_actions_report_xml: function(action, on_closed) { var self = this; $.blockUI(); self.rpc("/web/session/eval_domain_and_context", { @@ -155,8 +155,14 @@ session.web.ActionManager = session.web.Widget.extend({ self.session.get_file({ url: '/web/report', data: {action: JSON.stringify(action)}, - complete: $.unblockUI - }); + complete: $.unblockUI, + success: function(){ + if (!self.dialog && on_closed) { + on_closed(); + } + self.dialog_stop(); + } + }) }); }, ir_actions_act_url: function (action) { @@ -210,7 +216,7 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View sidebar_id : self.element_id + '_sidebar_' + view.view_type, action : self.action, action_views_ids : views_ids - }, self.flags, view.options || {}) + }, self.flags, self.flags[view.view_type] || {}, view.options || {}) }); views_ids[view.view_type] = view.view_id; }); @@ -882,7 +888,7 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ } }; var context = new session.web.CompoundContext(dataset.get_context(), action_data.context || {}); - + var handler = function (r) { var action = r.result; if (action && action.constructor == Object) { diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 92a3e5ffc43..fb7ccdf7d8e 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -714,7 +714,7 @@ Unhandled widget - + console.warn('Unhandled widget', dict.widget); @@ -907,13 +907,13 @@
- + - @@ -1081,7 +1081,7 @@
- @@ -1163,8 +1163,8 @@ t-att-title="attrs.help" t-att-class="classes.join(' ')" t-att-autofocus="attrs.default_focus === '1' ? 'autofocus' : undefined"> - -
+ +
Welcome to your new OpenERP instance.
  • Remember to bookmark this page.
  • -
  • Remember your login:
  • +
  • Remember your login:
  • Choose the first OpenERP Application you want to install..
  • diff --git a/addons/web_default_home/po/ar.po b/addons/web_default_home/po/ar.po index 16c56db9120..f2ffbe0d9bd 100644 --- a/addons/web_default_home/po/ar.po +++ b/addons/web_default_home/po/ar.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-09 05:09+0000\n" -"X-Generator: Launchpad (build 14263)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/da.po b/addons/web_default_home/po/da.po index 989daa78361..ae78d55092a 100644 --- a/addons/web_default_home/po/da.po +++ b/addons/web_default_home/po/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/de.po b/addons/web_default_home/po/de.po index 2363aea8505..420026692c1 100644 --- a/addons/web_default_home/po/de.po +++ b/addons/web_default_home/po/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/es.po b/addons/web_default_home/po/es.po index 5120f12015d..75060c85fc9 100644 --- a/addons/web_default_home/po/es.po +++ b/addons/web_default_home/po/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/es_EC.po b/addons/web_default_home/po/es_EC.po index 077b51cbeee..e57355cf87b 100644 --- a/addons/web_default_home/po/es_EC.po +++ b/addons/web_default_home/po/es_EC.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/et.po b/addons/web_default_home/po/et.po index a2dedb192d4..cc250cc6b2b 100644 --- a/addons/web_default_home/po/et.po +++ b/addons/web_default_home/po/et.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/fr.po b/addons/web_default_home/po/fr.po index e1b15ca7021..97e7e4467d4 100644 --- a/addons/web_default_home/po/fr.po +++ b/addons/web_default_home/po/fr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:09+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/gl.po b/addons/web_default_home/po/gl.po index 5783af8a2fb..5447f024fb2 100644 --- a/addons/web_default_home/po/gl.po +++ b/addons/web_default_home/po/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/it.po b/addons/web_default_home/po/it.po index a9f3a86854b..98bb491b0d8 100644 --- a/addons/web_default_home/po/it.po +++ b/addons/web_default_home/po/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/nl_BE.po b/addons/web_default_home/po/nl_BE.po index 1f046075120..d6ba01c8cac 100644 --- a/addons/web_default_home/po/nl_BE.po +++ b/addons/web_default_home/po/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/pl.po b/addons/web_default_home/po/pl.po index 3eec2b0ab49..1c71e3eeb76 100644 --- a/addons/web_default_home/po/pl.po +++ b/addons/web_default_home/po/pl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 06:04+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/sk.po b/addons/web_default_home/po/sk.po index bf766fb65b0..8faf58f469a 100644 --- a/addons/web_default_home/po/sk.po +++ b/addons/web_default_home/po/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-02 05:05+0000\n" -"X-Generator: Launchpad (build 14214)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_default_home/po/sl.po b/addons/web_default_home/po/sl.po index 2f9d918cb49..88fa4acfd4f 100644 --- a/addons/web_default_home/po/sl.po +++ b/addons/web_default_home/po/sl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_default_home/static/src/xml/web_default_home.xml:0 msgid "Welcome to your new OpenERP instance." diff --git a/addons/web_diagram/po/ar.po b/addons/web_diagram/po/ar.po index af8c6ab7213..19685c1d457 100644 --- a/addons/web_diagram/po/ar.po +++ b/addons/web_diagram/po/ar.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-04 05:32+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/da.po b/addons/web_diagram/po/da.po index 76d870fbc78..4cff320091f 100644 --- a/addons/web_diagram/po/da.po +++ b/addons/web_diagram/po/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-09 05:09+0000\n" -"X-Generator: Launchpad (build 14263)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/de.po b/addons/web_diagram/po/de.po index 1a511d763ba..9b7a9c30e89 100644 --- a/addons/web_diagram/po/de.po +++ b/addons/web_diagram/po/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/es.po b/addons/web_diagram/po/es.po index 465cc16f401..b1d392c9bbd 100644 --- a/addons/web_diagram/po/es.po +++ b/addons/web_diagram/po/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/es_EC.po b/addons/web_diagram/po/es_EC.po index 3faa86e9bc5..aaf879b3bfe 100644 --- a/addons/web_diagram/po/es_EC.po +++ b/addons/web_diagram/po/es_EC.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/et.po b/addons/web_diagram/po/et.po index 5f8e394d816..62aefffe1c4 100644 --- a/addons/web_diagram/po/et.po +++ b/addons/web_diagram/po/et.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/gl.po b/addons/web_diagram/po/gl.po index 27f4dc017fa..954f8fab6f6 100644 --- a/addons/web_diagram/po/gl.po +++ b/addons/web_diagram/po/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/it.po b/addons/web_diagram/po/it.po index c3ced470ca6..443a7e29412 100644 --- a/addons/web_diagram/po/it.po +++ b/addons/web_diagram/po/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/nl_BE.po b/addons/web_diagram/po/nl_BE.po index 4d2999c099d..756c1ae71b4 100644 --- a/addons/web_diagram/po/nl_BE.po +++ b/addons/web_diagram/po/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/pl.po b/addons/web_diagram/po/pl.po index f36f3853850..7e9236c6c1b 100644 --- a/addons/web_diagram/po/pl.po +++ b/addons/web_diagram/po/pl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 06:04+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_diagram/po/sl.po b/addons/web_diagram/po/sl.po index 6766b54fb3c..7f552a5576f 100644 --- a/addons/web_diagram/po/sl.po +++ b/addons/web_diagram/po/sl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_diagram/static/src/xml/base_diagram.xml:0 msgid "New Node" diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 581c5548111..a3755541548 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -39,13 +39,12 @@ openerp.web_kanban.KanbanView = openerp.web.View.extend({ this.$element.find('button.oe_kanban_button_new').click(this.do_add_record); this.$groups = this.$element.find('.oe_kanban_groups tr'); var context = new openerp.web.CompoundContext(this.dataset.get_context()); - this.rpc('/web/view/load', { + return this.rpc('/web/view/load', { 'model': this.dataset.model, 'view_id': this.view_id, 'view_type': 'kanban', context: context }, this.on_loaded); - this.do_reload(); }, on_loaded: function(data) { this.fields_view = data; diff --git a/addons/web_mobile/po/ar.po b/addons/web_mobile/po/ar.po index 28e21aa44bf..32e67798699 100644 --- a/addons/web_mobile/po/ar.po +++ b/addons/web_mobile/po/ar.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-04 05:32+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/da.po b/addons/web_mobile/po/da.po index d61a3cba5b8..8b97c0eff8a 100644 --- a/addons/web_mobile/po/da.po +++ b/addons/web_mobile/po/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/de.po b/addons/web_mobile/po/de.po index ab74249a7ba..34da909bd6f 100644 --- a/addons/web_mobile/po/de.po +++ b/addons/web_mobile/po/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/es.po b/addons/web_mobile/po/es.po index 0995630c08e..9a136382dba 100644 --- a/addons/web_mobile/po/es.po +++ b/addons/web_mobile/po/es.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/es_EC.po b/addons/web_mobile/po/es_EC.po index 73dbcaea7e7..bd3a45c0b27 100644 --- a/addons/web_mobile/po/es_EC.po +++ b/addons/web_mobile/po/es_EC.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/et.po b/addons/web_mobile/po/et.po index c3e3994a9d9..9f5c7181ceb 100644 --- a/addons/web_mobile/po/et.po +++ b/addons/web_mobile/po/et.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/fr.po b/addons/web_mobile/po/fr.po index aead113ca02..5117204d67f 100644 --- a/addons/web_mobile/po/fr.po +++ b/addons/web_mobile/po/fr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/gl.po b/addons/web_mobile/po/gl.po index 482a3e05f58..85ac5c0689f 100644 --- a/addons/web_mobile/po/gl.po +++ b/addons/web_mobile/po/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/it.po b/addons/web_mobile/po/it.po index fdfce4385f5..39708e6b730 100644 --- a/addons/web_mobile/po/it.po +++ b/addons/web_mobile/po/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/nl_BE.po b/addons/web_mobile/po/nl_BE.po index 0a1171f1fe9..f9143746672 100644 --- a/addons/web_mobile/po/nl_BE.po +++ b/addons/web_mobile/po/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/pl.po b/addons/web_mobile/po/pl.po index d5e04f22e00..5dd753061eb 100644 --- a/addons/web_mobile/po/pl.po +++ b/addons/web_mobile/po/pl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 06:04+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/sk.po b/addons/web_mobile/po/sk.po index d550414317a..9442d63dbde 100644 --- a/addons/web_mobile/po/sk.po +++ b/addons/web_mobile/po/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_mobile/po/sl.po b/addons/web_mobile/po/sl.po index 8141108f9a9..ad93c949c07 100644 --- a/addons/web_mobile/po/sl.po +++ b/addons/web_mobile/po/sl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-01 05:10+0000\n" -"X-Generator: Launchpad (build 14197)\n" +"X-Launchpad-Export-Date: 2011-11-21 05:50+0000\n" +"X-Generator: Launchpad (build 14299)\n" #: addons/web_mobile/static/src/xml/web_mobile.xml:0 msgid "OpenERP" diff --git a/addons/web_process/__init__.py b/addons/web_process/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/web_process/__openerp__.py b/addons/web_process/__openerp__.py new file mode 100644 index 00000000000..1ef47573d55 --- /dev/null +++ b/addons/web_process/__openerp__.py @@ -0,0 +1,15 @@ +{ + "name" : "Process", + "version" : "2.0", + "depends" : ["web"], + "js": [ + "static/src/js/process.js" + ], + "css": [ + "static/src/css/process.css" + ], + 'qweb': [ + "static/src/xml/web_process.css" + ], + 'active': True +} diff --git a/addons/web_process/static/src/css/process.css b/addons/web_process/static/src/css/process.css new file mode 100644 index 00000000000..364c3788b11 --- /dev/null +++ b/addons/web_process/static/src/css/process.css @@ -0,0 +1,62 @@ + +a.cta-a { + float: left; + padding: 5px 10px; + border: 1px solid #ccc; + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + background: #eeeded url(/web_process/static/src/img/cta-a.gif) repeat-x; + box-shadow: 0 1px 0 #fff; + -moz-box-shadow: 0 1px 0 #fff; + -webkit-box-shadow: 0 1px 0 #fff; + color: #8c8c8c; + font-size: 0.9em; + text-transform: uppercase; + font-weight: bold; + text-shadow: #fff 0 1px 0; + margin: 2px; +} + +a.cta-a span { + float: left; + padding: 7px 0 5px 5px; + background-position: 0 50%; + background-repeat: no-repeat; + cursor: pointer; +} + +a.cta-a strong { + display: block; + color: #393939; +} + +.process_h1 { + background:url("/web_process/static/src/img/sep-a.gif") repeat-x scroll 0 90% transparent; + font-size:2em; + font-weight:normal; + padding:0 0 5px 5px; + line-height: 1.2; +} + +.process-links { + padding: 5px 10px; + text-align: center; + display: table; + margin: auto; +} + +.process-links a.cta-a { + display: table-cell; +} + +.process-help-text { + float: left; + padding:5px 10px; + min-height:56px; + font-size: 120%; +} + +td.process_fields,button.toggle_fields span:last-child { + display: none; +} \ No newline at end of file diff --git a/addons/web_process/static/src/img/ToolOval.jpg b/addons/web_process/static/src/img/ToolOval.jpg new file mode 100644 index 00000000000..c30f15a07d2 Binary files /dev/null and b/addons/web_process/static/src/img/ToolOval.jpg differ diff --git a/addons/web_process/static/src/img/ToolShowGrid.jpg b/addons/web_process/static/src/img/ToolShowGrid.jpg new file mode 100644 index 00000000000..8285acc8aac Binary files /dev/null and b/addons/web_process/static/src/img/ToolShowGrid.jpg differ diff --git a/addons/web_process/static/src/img/ToolShowGrid.png b/addons/web_process/static/src/img/ToolShowGrid.png new file mode 100644 index 00000000000..ea530671b97 Binary files /dev/null and b/addons/web_process/static/src/img/ToolShowGrid.png differ diff --git a/addons/web_process/static/src/img/button-a-a.png b/addons/web_process/static/src/img/button-a-a.png new file mode 100644 index 00000000000..bd046bbbef7 Binary files /dev/null and b/addons/web_process/static/src/img/button-a-a.png differ diff --git a/addons/web_process/static/src/img/cta-a.gif b/addons/web_process/static/src/img/cta-a.gif new file mode 100644 index 00000000000..daa561e29f5 Binary files /dev/null and b/addons/web_process/static/src/img/cta-a.gif differ diff --git a/addons/web_process/static/src/img/grid_10.jpg b/addons/web_process/static/src/img/grid_10.jpg new file mode 100644 index 00000000000..5254207b964 Binary files /dev/null and b/addons/web_process/static/src/img/grid_10.jpg differ diff --git a/addons/web_process/static/src/img/iconset-a-help.gif b/addons/web_process/static/src/img/iconset-a-help.gif new file mode 100644 index 00000000000..5400acec57b Binary files /dev/null and b/addons/web_process/static/src/img/iconset-a-help.gif differ diff --git a/addons/web_process/static/src/img/node-current.png b/addons/web_process/static/src/img/node-current.png new file mode 100644 index 00000000000..51f86b04c78 Binary files /dev/null and b/addons/web_process/static/src/img/node-current.png differ diff --git a/addons/web_process/static/src/img/node-gray.png b/addons/web_process/static/src/img/node-gray.png new file mode 100644 index 00000000000..972013540cf Binary files /dev/null and b/addons/web_process/static/src/img/node-gray.png differ diff --git a/addons/web_process/static/src/img/node-subflow-gray.png b/addons/web_process/static/src/img/node-subflow-gray.png new file mode 100644 index 00000000000..ffafe1bd681 Binary files /dev/null and b/addons/web_process/static/src/img/node-subflow-gray.png differ diff --git a/addons/web_process/static/src/img/node-subflow.png b/addons/web_process/static/src/img/node-subflow.png new file mode 100644 index 00000000000..fd2a480204d Binary files /dev/null and b/addons/web_process/static/src/img/node-subflow.png differ diff --git a/addons/web_process/static/src/img/node.png b/addons/web_process/static/src/img/node.png new file mode 100644 index 00000000000..853ac85cd56 Binary files /dev/null and b/addons/web_process/static/src/img/node.png differ diff --git a/addons/web_process/static/src/img/port.gif b/addons/web_process/static/src/img/port.gif new file mode 100644 index 00000000000..1a3f97815e7 Binary files /dev/null and b/addons/web_process/static/src/img/port.gif differ diff --git a/addons/web_process/static/src/img/sep-a.gif b/addons/web_process/static/src/img/sep-a.gif new file mode 100644 index 00000000000..5a064f21e89 Binary files /dev/null and b/addons/web_process/static/src/img/sep-a.gif differ diff --git a/addons/web_process/static/src/img/window_bg.png b/addons/web_process/static/src/img/window_bg.png new file mode 100644 index 00000000000..864aed8a40b Binary files /dev/null and b/addons/web_process/static/src/img/window_bg.png differ diff --git a/addons/web_process/static/src/img/window_toolbar.png b/addons/web_process/static/src/img/window_toolbar.png new file mode 100644 index 00000000000..77c30b79d82 Binary files /dev/null and b/addons/web_process/static/src/img/window_toolbar.png differ diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js new file mode 100644 index 00000000000..f7497773645 --- /dev/null +++ b/addons/web_process/static/src/js/process.js @@ -0,0 +1,309 @@ +openerp.web_process = function (openerp) { + var QWeb = openerp.web.qweb; + openerp.web.ViewManager.include({ + start: function() { + this._super(); + var self = this; + this.process_check(); + this.process_help = this.action ? this.action.help : 'Help: Not Defined'; + this.model = this.dataset.model; + if(this.action) this.process_model = this.action.res_model; + else this.process_model = this.model; + }, + process_check: function() { + var self = this, + grandparent = this.widget_parent && this.widget_parent.widget_parent, + view = this.views[this.views_src[0].view_type], + $process_view = this.$element.find('.oe-process-view'); + if (!(grandparent instanceof openerp.web.WebClient) || + !(view.view_type === this.views_src[0].view_type + && view.view_id === this.views_src[0].view_id)) { + $process_view.hide(); + return; + } + $process_view.click(function() { + self.initialize_process_view(); + }); + }, + initialize_process_view: function() { + var self = this; + $.when(this.fields_get(), this.help(), this.get_process_object()).pipe(function(fields, help, process) { + self.process_fields = fields; + self.process_help = help; + if(process && process.length) { + if(process.length > 1) { + self.process_selection = process; + } else { + self.process_id = process[0][0], + self.process_title = process[0][1]; + } + } + return $.Deferred().resolve(); + }).pipe(function() { + var def = $.Deferred(); + if(self.process_id) { + self.graph_get().done(function(res) { + self.process_notes = res.notes; + self.process_subflows = _.filter(res.nodes, function(x) { + return x.subflow != false; + }); + self.process_related = res.related; + def.resolve(res); + }); + } else def.resolve(); + return def.promise(); + }).done(function(res) { + $.when(self.render_process_view()).done(function() { + if(res) self.draw_process_graph(res); + }); + }); + }, + graph_get: function() { + var self = this; + var def = $.Deferred(); + this.process_id = parseInt(this.process_id, 10); + + this.process_dataset + .call("graph_get",[this.process_id, this.model || this.dataset.model, false, [80,80,150,100]]) + .done(function(res) { + self.process_dataset + .call("search_by_model",[self.model || self.dataset.model,self.session.context]) + .done( + function(r) { + res['related'] = r; + def.resolve(res); + }); + }); + return def.promise(); + }, + fields_get : function() { + var self = this, + def = $.Deferred(), + dataset = new openerp.web.DataSetStatic(this, this.model || this.dataset.model, this.session.context); + dataset + .call('fields_get',[]) + .done(function(fields) { + def.resolve(fields); + }).fail(def.reject); + return def.promise(); + }, + help : function() { + var self = this, + def = $.Deferred(); + if(!this.subflow_model) { + def.resolve(this.action ? (this.action.help!=false ? this.action.help : 'Help: Not Defined') : 'Help: Not Defined'); + } else { + var dataset = new openerp.web.DataSetSearch(this, "ir.actions.act_window", this.session.context, []); + dataset + .read_slice(['help'], + { + domain: [ + ['res_model', '=', this.subflow_model], + ['name', 'ilike', this.subflow_name] + ] + } + ).done(function(res) { + def.resolve(res.help || 'Help: Not Defined'); + }); + } + return def.promise(); + }, + get_process_object : function() { + var self = this, + def = $.Deferred(); + if(this.process_id) + return def.resolve().promise(); + + this.process_dataset = new openerp.web.DataSetStatic(this, "process.process", this.session.context); + this.process_dataset + .call("search_by_model", [self.process_model,self.session.context]) + .done(function(res) { + if (!res.length) { + self.process_model = false; + self.get_process_object().done(def.resolve); + } + else { + def.resolve(res); + } + }) + .fail(def.reject); + return def.promise(); + }, + render_process_view : function() { + this.$element.html(QWeb.render("ProcessView", this)); + var self = this; + this.$element.find('#edit_process').click(function() { + self.edit_process_view(); + }); + var $parent = this.widget_parent.$element; + $parent.find('#change_process').click(function() { + self.process_selection = false, + self.process_id = $parent.find('#select_process').val(), + self.process_title = $.trim($parent.find('#select_process option:selected').text()); + self.initialize_process_view(); + }); + + this.$element.find(".toggle_fields").click(function() { + $(this).children().toggle(); + self.$element.find('.process_fields').toggle(); + }); + + this.$element.find(".process_subflow").click(function() { + self.process_id = this.id; + self.initialize_process_view(); + }); + }, + draw_process_graph : function(res) { + var self = this, + process_graph = new Graph(); + var process_renderer = function(r, n) { + var process_node, + process_node_text, + process_node_desc, + process_set; + + var node_button, + node_menu, + img_src; + + var bg = "node", + clip_rect = "".concat(n.node.x,",",n.node.y,",150,100"); + + //Image part + bg = n.node.kind == "subflow" ? "node-subflow" : "node"; + bg = n.node.gray ? bg + "-gray" : bg; + img_src = '/web_process/static/src/img/'+ bg + '.png'; + + r['image'](img_src, n.node.x, n.node.y,150, 100) + .attr({"clip-rect": clip_rect}) + .mousedown(function() { + return false; + }); + //Node + process_node = r['rect'](n.node.x, n.node.y, 150, 100).attr({stroke: "none"}); + // Node text + process_node_text = r.text(n.node.x, n.node.y, (n.node.name)) + .attr({"fill": "#fff", "font-weight": "bold", "cursor": "pointer"}); + process_node_text.translate((process_node.getBBox().width/ 2) + 5, 10) + if(n.node.subflow) { + process_node_text.click(function() { + self.process_id = n.node.subflow[0]; + self.subflow_model = n.node.model; + self.subflow_name = n.node.name; + self.initialize_process_view(); + }); + } + //Node Description + new_notes = n.node.notes; + if(n.node.notes.length > 25) { + var new_notes= temp_str = ''; + var from = to = 0; + while (1) { + from = 25; + temp_str = n.node.notes.substr(to ,25); + if (temp_str.lastIndexOf(" ") < 25 && temp_str.length >= 25) { + from = temp_str.lastIndexOf(" "); + } + new_notes += "\n" + n.node.notes.substr(to , from); + if(new_notes.length > n.node.notes.length) break; + to += from; + } + } + process_node_desc = r.text(n.node.x+85, n.node.y+50, (new_notes)); + r['image']('/web/static/src/img/icons/gtk-info.png', n.node.x+20, n.node.y+70, 16, 16) + .attr({"cursor": "pointer", "title": "Help"}) + .click(function() { + window.open(n.node.url || "http://doc.openerp.com/v6.0/index.php?model=" + n.node.model); + }); + + if(n.node.menu) { + r['image']('/web/static/src/img/icons/gtk-jump-to.png', n.node.x+115, n.node.y+70, 16, 16) + .attr({"cursor": "pointer", "title": n.node.menu.name}) + .click(function() { + self.jump_to_view(n.node.res_model, n.node.menu.id); + }); + } + + process_set = r.set().push(process_node); + process_set.mousedown(function() { + return false; + }); + return process_set; + }; + + _.each(res['nodes'],function(node, node_id) { + node['res_model'] = self.model, + node['res_id'] = false, + node['id'] = node_id; + process_graph.addNode(node['name'], {node: node,render: process_renderer}); + }); + + _.each(res['transitions'], function(transitions) { + var src = res['nodes'][transitions['source']]; + var dst = res['nodes'][transitions['target']]; + // make active + transitions['active'] = src.active && !dst.gray; + process_graph.addEdge(src['name'], dst['name'], {directed : true}); + }); + + var layouter = new Graph.Layout.Ordered(process_graph); + var render_process_graph = new Graph.Renderer.Raphael('process_canvas', process_graph, $('#process_canvas').width(), $('#process_canvas').height()); + }, + jump_to_view: function(model, id) { + var self = this; + var dataset = new openerp.web.DataSetStatic(this, 'ir.values', this.session.context); + dataset.call('get', + ['action', 'tree_but_open',[['ir.ui.menu', id]], dataset.context], + function(res) { + self.$element.empty(); + var action = res[0][res[0].length - 1]; + self.rpc("/web/action/load", { + action_id: action.id, + context: dataset.context + }, function(result) { + var action_manager = new openerp.web.ActionManager(self); + action_manager.appendTo(self.widget_parent.$element); + action_manager.do_action(result.result); + }); + }); + }, + edit_process_view: function() { + var self = this; + var action_manager = new openerp.web.ActionManager(this); + 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; + + form_view.do_save(function() { + self.initialize_process_view(); + }); + $(this).dialog('destroy'); + } + } + }).start().open(); + + action_manager.appendTo(dialog.$element); + action_manager.do_action({ + res_model : 'process.process', + res_id: self.process_id, + views : [[false, 'form']], + type : 'ir.actions.act_window', + auto_search : false, + flags : { + search_view: false, + sidebar : false, + views_switcher : false, + action_buttons : false, + pager: false + } + }); + }, + }); +}; +// vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/web_process/static/src/xml/web_process.xml b/addons/web_process/static/src/xml/web_process.xml new file mode 100644 index 00000000000..63e207a4f96 --- /dev/null +++ b/addons/web_process/static/src/xml/web_process.xml @@ -0,0 +1,143 @@ + \ No newline at end of file