From a07d6e7364ede500577b1302c3db16d49aa53a00 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Wed, 4 Apr 2012 12:56:22 +0530 Subject: [PATCH 01/34] [IMP] added new attribute for tree view bzr revid: tpa@tinyerp.com-20120404072622-08evqadcnksplkwb --- openerp/addons/base/rng/view.rng | 1 + 1 file changed, 1 insertion(+) diff --git a/openerp/addons/base/rng/view.rng b/openerp/addons/base/rng/view.rng index 5dce238db5d..c058795e0f0 100644 --- a/openerp/addons/base/rng/view.rng +++ b/openerp/addons/base/rng/view.rng @@ -222,6 +222,7 @@ + From a5f5358cf2f0240852d2fd90d5b9beaafe0e6304 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Wed, 4 Apr 2012 13:00:16 +0530 Subject: [PATCH 02/34] [IMP] improved code for make the list record bold depends on state bzr revid: tpa@tinyerp.com-20120404073016-ro6wuybho7npp9k4 --- addons/web/static/src/js/view_editor.js | 5 +++-- addons/web/static/src/js/view_list.js | 11 +++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index 2c0dc3d70b4..e0953ae5ef6 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -873,7 +873,8 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({ 'widget' : {'name':'widget', 'string': 'widget', 'type': 'selection'}, 'colors' : {'name':'colors', 'string': 'Colors', 'type': 'char'}, 'editable' : {'name':'editable', 'string': 'Editable', 'type': 'selection', 'selection': [["",""],["top","Top"],["bottom", "Bottom"]]}, - 'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'} + 'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'}, + 'fontbold' : {'name':'fontbold', 'string': 'fontbold', 'type': 'char'}, }; var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []); this.edit_node_dialog.$element.append('
'); @@ -1149,7 +1150,7 @@ var _PROPERTIES = { 'board': ['style'], 'column' : [], 'action' : ['name', 'string', 'colspan', 'groups'], - 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows'], + 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fontbold'], 'graph' : ['string', 'type'], 'calendar' : ['string', 'date_start', 'date_stop', 'date_delay', 'day_length', 'color', 'mode'] }; diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index e8fff450c6e..cab916bbc32 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -56,6 +56,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# this.view_id = view_id; this.previous_colspan = null; this.colors = null; + this.fontbold = null; this.columns = []; @@ -154,16 +155,21 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# current_date: new Date().toString('yyyy-MM-dd') // TODO: time, datetime, relativedelta }); + var style= ''; + if(record.attributes.state == this.fontbold) { + style = 'font-weight: bold;'; + } for(var i=0, len=this.colors.length; i Date: Wed, 4 Apr 2012 14:46:13 +0530 Subject: [PATCH 03/34] [IMP] improved code for more than one states bzr revid: tpa@tinyerp.com-20120404091613-fp7el2lal3qb190r --- addons/web/static/src/js/view_list.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index cab916bbc32..122d4ee76d5 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -156,9 +156,12 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# // TODO: time, datetime, relativedelta }); var style= ''; - if(record.attributes.state == this.fontbold) { - style = 'font-weight: bold;'; + for(var i=0, len=this.fontbold.length; i Date: Wed, 4 Apr 2012 17:32:11 +0530 Subject: [PATCH 04/34] [IMP] improved code for font-bold feature bzr revid: tpa@tinyerp.com-20120404120211-0b1l1zvjx5550hqa --- addons/web/static/src/js/view_editor.js | 4 +-- addons/web/static/src/js/view_list.js | 36 ++++++++++++++++--------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index e0953ae5ef6..ae531c8c925 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -874,7 +874,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({ 'colors' : {'name':'colors', 'string': 'Colors', 'type': 'char'}, 'editable' : {'name':'editable', 'string': 'Editable', 'type': 'selection', 'selection': [["",""],["top","Top"],["bottom", "Bottom"]]}, 'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'}, - 'fontbold' : {'name':'fontbold', 'string': 'fontbold', 'type': 'char'}, + 'fonts' : {'name':'fonts', 'string': 'fonts', 'type': 'char'}, }; var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []); this.edit_node_dialog.$element.append('
'); @@ -1150,7 +1150,7 @@ var _PROPERTIES = { 'board': ['style'], 'column' : [], 'action' : ['name', 'string', 'colspan', 'groups'], - 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fontbold'], + 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fonts'], 'graph' : ['string', 'type'], 'calendar' : ['string', 'date_start', 'date_stop', 'date_delay', 'day_length', 'color', 'mode'] }; diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 122d4ee76d5..b2a23ac5451 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -56,7 +56,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# this.view_id = view_id; this.previous_colspan = null; this.colors = null; - this.fontbold = null; + this.fonts = null; this.columns = []; @@ -149,19 +149,26 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @returns {String} CSS color declaration */ color_for: function (record) { - if (!this.colors) { return ''; } - var context = _.extend({}, record.attributes, { + var style= ''; + + var context = _.extend({}, record.attributes, { uid: this.session.uid, current_date: new Date().toString('yyyy-MM-dd') // TODO: time, datetime, relativedelta }); - var style= ''; - for(var i=0, len=this.fontbold.length; i Date: Wed, 4 Apr 2012 18:59:30 +0530 Subject: [PATCH 05/34] [IMP] improved code. bzr revid: tpa@tinyerp.com-20120404132930-gqlw6a4f5y9ng0pd --- addons/web/static/src/js/view_list.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index b2a23ac5451..29569a43a62 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -163,7 +163,9 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# font = pair[0], expression = pair[1]; if (py.evaluate(expression, context).toJSON()) { - style = 'font-weight: bold;'; + if (font == 'bold'){style = 'font-weight: bold;';} + if (font == 'italic'){style = 'font-style: italic;';} + if (font == 'underline'){style = 'text-decoration: underline;';} } } } From 86fe9e48b82642ce0abc9e1c5b609032d4908255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 13 Apr 2012 12:03:27 +0200 Subject: [PATCH 06/34] [IMP] mail.thread: improvement taken from trunk-form-v2-fme. mail.group: added demo data. thread widget: updated css and html structure. mail security: now for every users, not only employees. This will need to be reviewed in details. bzr revid: tde@openerp.com-20120413100327-2uimy9c1crnfzm6u --- addons/mail/__openerp__.py | 1 + addons/mail/mail_data.xml | 2 +- addons/mail/mail_group_data.xml | 13 ++++ addons/mail/mail_group_view.xml | 2 +- addons/mail/mail_message_view.xml | 2 +- addons/mail/mail_thread_view.xml | 2 +- addons/mail/security/ir.model.access.csv | 9 +-- addons/mail/static/src/css/mail.css | 73 ++++++++++++++------ addons/mail/static/src/img/groupdefault.png | Bin 19910 -> 3092 bytes addons/mail/static/src/js/mail.js | 20 +++--- addons/mail/static/src/xml/mail.xml | 29 ++++++-- 11 files changed, 107 insertions(+), 46 deletions(-) create mode 100644 addons/mail/mail_group_data.xml diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index 88e932299e1..81719794f69 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -66,6 +66,7 @@ The main features are: 'security/mail_security.xml', 'security/ir.model.access.csv', 'mail_data.xml', + 'mail_group_data.xml', 'res_users_view.xml', ], 'installable': True, diff --git a/addons/mail/mail_data.xml b/addons/mail/mail_data.xml index 964552b951a..c8e8b1a488e 100644 --- a/addons/mail/mail_data.xml +++ b/addons/mail/mail_data.xml @@ -1,7 +1,7 @@ - + Email Queue Manager 1 diff --git a/addons/mail/mail_group_data.xml b/addons/mail/mail_group_data.xml new file mode 100644 index 00000000000..bbaa7748f16 --- /dev/null +++ b/addons/mail/mail_group_data.xml @@ -0,0 +1,13 @@ + + + + + + All Company + + + Sales + + + + diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index 949dd1cc9b8..ea0dede377d 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -112,6 +112,6 @@ - + diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index 7389f8e5488..ecd106e05e5 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -234,7 +234,7 @@ - All Feeds + Wall mail.all_feeds diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml index faa6d24ae2c..af0c6cedda1 100644 --- a/addons/mail/mail_thread_view.xml +++ b/addons/mail/mail_thread_view.xml @@ -14,7 +14,7 @@ - All Feeds + Wall diff --git a/addons/mail/security/ir.model.access.csv b/addons/mail/security/ir.model.access.csv index c305de830c0..3cfd4e88f3d 100644 --- a/addons/mail/security/ir.model.access.csv +++ b/addons/mail/security/ir.model.access.csv @@ -1,7 +1,8 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_mail_message,mail.message,model_mail_message,base.group_user,1,1,1,1 +access_mail_message,mail.message,model_mail_message,,1,0,1,0 +access_mail_message_all,mail.message.all,model_mail_message,base.group_user,1,1,1,1 access_mail_thread,mail.thread,model_mail_thread,base.group_user,1,1,1,0 -access_mail_subscription,mail.subscription,model_mail_subscription,base.group_user,1,1,1,1 -access_mail_notification,mail.notification,model_mail_notification,base.group_user,1,1,1,1 +access_mail_subscription,mail.subscription,model_mail_subscription,,1,1,1,1 +access_mail_notification,mail.notification,model_mail_notification,,1,1,1,1 access_mail_group,mail.group,model_mail_group,base.group_user,1,1,1,1 -access_mail_message_report,mail.message.report,model_mail_message_report,base.group_user,1,0,0,0 +access_mail_message_report,mail.message.report,model_mail_message_report,,1,0,0,0 diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index d920455537f..260b4a230cd 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -4,17 +4,23 @@ div.oe_mail_wall { overflow: auto; - padding: 5px; + padding: 0; + background: white; } -div.oe_mail_wall_search { - width: 55%; +/*div.oe_mail_wall_search {*/ + /*width: 550px;*/ +/*}*/ + +.oe_mail_wall_button_comment { + float: right; } /* 2 columns view */ div.oe_mail_wall_left { float: left; - width: 65%; + width: 560px; + margin: 8px; } div.oe_mail_wall_right { @@ -22,6 +28,10 @@ div.oe_mail_wall_right { width: 34%; } +.oe_mail_wall_threads { + margin-top: 8px; +} + .oe_mail_wall_thread div.oe_mail_thread_act .oe_mail_action_textarea, div.oe_mail_thread_subthread .oe_mail_action_textarea { height: 20px; padding: 2px; @@ -47,16 +57,15 @@ div.oe_mail_wall_more { .oe_mail_recthread { overflow: auto; - padding: 5px 5px 5px 5px; } /* Left-side CSS */ .oe_mail_recthread_actions { - margin-bottom: 10px; + margin-bottom: 8px; } .oe_mail_recthread_followers { - margin-bottom: 10px; + margin-bottom: 8px; } .oe_mail_followers_action, .oe_mail_followers_display { @@ -70,21 +79,16 @@ div.oe_mail_wall_more { .oe_mail_recthread_right { float: right; - width: 25%; - margin-right: 5%; + width: 240px; } .oe_mail_button_follow, .oe_mail_button_unfollow { - width: 120px; + /*width: 120px;*/ } .oe_mail_button_followers { - display: inline; - width: 120px; -} - -.oe_mail_followers h4 { - margin: 0 0 8px; + display: inline-block; + width: 240px; } /* ------------------------------ */ @@ -99,7 +103,7 @@ div.oe_mail_thread_act { div.oe_mail_thread_display { white-space: normal; - margin-bottom: 5px; + /*margin-bottom: 5px;*/ } div.oe_mail_thread_subthread { @@ -116,8 +120,7 @@ li.oe_mail_thread_msg { padding: 1px; } -.notification, .email { - background: #E0E0E0; +.notification, .comment { padding: 4px; -moz-border-radius: 4px; -webkit-border-radius: 4px; @@ -126,8 +129,16 @@ li.oe_mail_thread_msg { border-radius: 4px; } -.comment { - padding: 4px; +.oe_mail_thread_msg > .comment { + background: #eee; +} + +.oe_mail_thread_subthread .comment { + background: white; +} + +.notification { + background: #eee; } .notification:after, .email:after, .comment:after { @@ -215,6 +226,14 @@ input.oe_mail, textarea.oe_mail { border-radius: 3px; } +.oe_mail_wall .oe_mail_wall_act textarea { + width: 550px; +} + +textarea.oe_mail { + height: 60px; +} + input.oe_mail:focus, textarea.oe_mail:focus { outline: 0; border-color: rgba(82, 168, 236, 0.8); @@ -246,6 +265,10 @@ p.oe_mail_msg { font-weight: bold; } +.oe_mail_msg_reply, .oe_mail_msg_delete { + margin-right: 4px; +} + a.oe_mail_oe_intlink { color: #8786b7; } @@ -257,3 +280,11 @@ a.oe_mail_oe_intlink { .oe_mail_oe_space { margin-left: 15px; } + + + + +.oe_mail_recthread_actions button { + width: 120px; +} + diff --git a/addons/mail/static/src/img/groupdefault.png b/addons/mail/static/src/img/groupdefault.png index fd8268372668a04b43448d520ae7cf670d4cd0c7..cf160022470e0f0d1c8928b9364bf99349bbee45 100644 GIT binary patch literal 3092 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 literal 19910 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 I7s$*12lZE7KmY&$ diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index fbe817c2c81..dc6bd74c345 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -58,10 +58,8 @@ openerp.mail = function(session) { } /* Add ThreadDisplay widget to registry */ - session.web.form.widgets.add( - 'Thread', 'openerp.mail.Thread'); - session.web.page.readonly.add( - 'Thread', 'openerp.mail.Thread'); + session.web.form.widgets.add( 'Thread', 'openerp.mail.Thread'); + session.web.page.readonly.add( 'Thread', 'openerp.mail.Thread'); /** * ThreadDisplay widget: this widget handles the display of a thread of @@ -464,10 +462,8 @@ openerp.mail = function(session) { /* Add ThreadView widget to registry */ - session.web.form.widgets.add( - 'ThreadView', 'openerp.mail.RecordThread'); - session.web.page.readonly.add( - 'ThreadView', 'openerp.mail.RecordThread'); + session.web.form.widgets.add( 'ThreadView', 'openerp.mail.RecordThread'); + session.web.page.readonly.add( 'ThreadView', 'openerp.mail.RecordThread'); /* ThreadView widget: thread of comments */ mail.RecordThread = session.web.form.Field.extend({ @@ -489,9 +485,11 @@ openerp.mail = function(session) { // bind buttons this.$element.find('button.oe_mail_button_followers').click(function () { self.do_toggle_followers(); }).hide(); this.$element.find('button.oe_mail_button_follow').click(function () { self.do_follow(); }) - .mouseover(function () { $(this).html('Follow'); }).mouseleave(function () { $(this).html('Not following'); }); + .mouseover(function () { $(this).html('Follow').addClass('following'); }) + .mouseleave(function () { $(this).html('Not following').removeClass('following'); }); this.$element.find('button.oe_mail_button_unfollow').click(function () { self.do_unfollow(); }) - .mouseover(function () { $(this).html('Unfollow'); }).mouseleave(function () { $(this).html('Following'); }); + .mouseover(function () { $(this).html('Unfollow').removeClass('following').addClass('unfollow'); }) + .mouseleave(function () { $(this).html('Following').removeClass('unfollow').addClass('following'); }); this.reinit(); }, @@ -642,7 +640,7 @@ openerp.mail = function(session) { load_search_view: function (view_id, defaults, hidden) { var self = this; this.searchview = new session.web.SearchView(this, this.ds_msg, view_id || false, defaults || {}, hidden || false); - var search_view_loaded = this.searchview.appendTo(this.$element.find('div.oe_mail_wall_search')); + var search_view_loaded = this.searchview.appendTo(this.$element.find('.oe_view_manager_row')); return $.when(search_view_loaded).then(function () { self.searchview.on_search.add(self.do_searchview_search); }); diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml index 0f49902b6b3..d97f0738629 100644 --- a/addons/mail/static/src/xml/mail.xml +++ b/addons/mail/static/src/xml/mail.xml @@ -2,13 +2,17 @@