diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 5c5a25880cb..48fec608195 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -435,7 +435,7 @@
\n" +" Klik om de zichtbare kolommen van een dagboek te " +"specificeren.\n" +"
\n" +" Dagboekweergaves bepalen de manier waarop boekingen \n" +" ingevoerd kunnen worden. Selecteer de velden welke zichtbaar " +"\n" +" moeten zijn en bepaald de volgorde daarvan.\n" +"
\n" +" In de dagboekinstellingen kan bepaald worden welke gegevens\n" +" zichtbaar zijn bij boekingen in het betreffende dagboek.\n" +"
\n" +" " #. module: account #: help:account.payment.term,active:0 @@ -205,6 +218,8 @@ msgid "" "which is set after generating opening entries from 'Generate Opening " "Entries'." msgstr "" +"U dient het 'Jaarafsluiting dagboek' te definiëren voor het fiscale jaar, " +"nadat u een openingsbalans heeft gemaakt" #. module: account #: field:account.fiscal.position.account,account_src_id:0 @@ -223,6 +238,15 @@ msgid "" " \n" " " msgstr "" +"\n" +" klik hier om een fiscale periode toe te voegen.\n" +"
\n" +" Een fiscale periode is vaak een maand of een kwartaal. " +"Normaal\n" +" zal dit gelijk zijn met de periode van uw Belasting " +"aangifte.\n" +"
\n" +" " #. module: account #: model:ir.actions.act_window,name:account.action_view_created_invoice_dashboard @@ -243,7 +267,7 @@ msgstr "Dagboek: %s" #. module: account #: help:account.config.settings,code_digits:0 msgid "No. of digits to use for account code" -msgstr "" +msgstr "Aantal cijfers voor de rekening code" #. module: account #: help:account.analytic.journal,type:0 @@ -263,6 +287,9 @@ msgid "" "lines for invoices. Leave empty if you don't want to use an analytic account " "on the invoice tax lines by default." msgstr "" +"Geef de kostenplaats welke standaard gebruikt moet worden bij BTW factuur " +"regels. Als u dit veld niet invuld, wordt er standaard geen kostenplaats " +"gebruikt." #. module: account #: model:ir.actions.act_window,name:account.action_account_tax_template_form @@ -298,7 +325,7 @@ msgstr "Belgische overzichten" #. module: account #: model:account.account.type,name:account.account_type_income_view1 msgid "Income View" -msgstr "" +msgstr "View opbrengsten" #. module: account #: help:account.account,user_type:0 @@ -314,7 +341,7 @@ msgstr "" #. module: account #: field:account.config.settings,sale_refund_sequence_next:0 msgid "Next credit note number" -msgstr "" +msgstr "Volgend nummer creditnota" #. module: account #: help:account.config.settings,module_account_voucher:0 @@ -323,6 +350,10 @@ msgid "" "sales, purchase, expense, contra, etc.\n" " This installs the module account_voucher." msgstr "" +"Deze module bevat alle voorzieningen voor registratie van " +"(bank)afschriften.\n" +" " +"hiermee installeert u de module 'account_voucher'" #. module: account #: model:ir.actions.act_window,name:account.action_account_use_model_create_entry @@ -361,6 +392,18 @@ msgid "" " \n" " " msgstr "" +"\n" +" Klik hier om een creditnota te maken. \n" +"
\n" +" Een creditnota is een factuur, waarbij u een bestaande " +"factuur volledig of gedeeltelijk \n" +" crediteert.\n" +"
\n" +" In plaats van handmatig kunt u hiermee een creditnota maken " +"\n" +" direct vanaf de originele factuur.\n" +"
\n" +" " #. module: account #: field:account.journal.column,field:0 @@ -426,12 +469,12 @@ msgstr "Juni" #: code:addons/account/wizard/account_automatic_reconcile.py:148 #, python-format msgid "You must select accounts to reconcile." -msgstr "" +msgstr "Selecteer de grootboekrekeningen die afgeletterd moeten worden." #. module: account #: help:account.config.settings,group_analytic_accounting:0 msgid "Allows you to use the analytic accounting." -msgstr "" +msgstr "stelt u in staat kostenplaatsen te gebruiken" #. module: account #: model:ir.actions.act_window,help:account.action_account_moves_bank @@ -531,6 +574,18 @@ msgid "" "should choose 'Round per line' because you certainly want the sum of your " "tax-included line subtotals to be equal to the total amount with taxes." msgstr "" +"Als u 'afronden per regel' selecteert: voor elke BTW rekening , wordt het " +"BTW bedrag eerst berekend en afgerond voor elke factuur regel en vervolgens " +"worden deze afgeronde bedragen opgeteld, wat leidt tot het totale bedrag " +"voor deze belasting. \r\n" +"\r\n" +"Als u 'afronden globaal' selecteert: voor elke BTW rekening wordt het BTW " +"bedrag berekend voor elke factuur regel. vervolgens zullen deze bedragen " +"worden opgeteld en uiteindelijk wordt dit totale BTW bedrag afgerond. \r\n" +"\r\n" +"Als u verkoopt met BTW inbegrepen, moet u kiezen voor 'afronden per regel', " +"omdat U zeker wil zijn dat de subtotalen van \r\n" +"uw (BTW inbegrepen) regels gelijk zijn aan het totale bedrag met BTW." #. module: account #: model:ir.model,name:account.model_wizard_multi_charts_accounts @@ -600,7 +655,7 @@ msgstr "Bovenliggend doel" #. module: account #: help:account.invoice.line,sequence:0 msgid "Gives the sequence of this line when displaying the invoice." -msgstr "" +msgstr "Geeft de volgorde van de factuur regel bij het tonen van de factuur" #. module: account #: field:account.bank.statement,account_id:0 @@ -679,7 +734,7 @@ msgstr "Niets af te letteren" #. module: account #: field:account.config.settings,decimal_precision:0 msgid "Decimal precision on journal entries" -msgstr "" +msgstr "Aantal decimalen van journaalposten" #. module: account #: selection:account.config.settings,period:0 @@ -713,7 +768,7 @@ msgstr "Rapport waarde" msgid "" "Specified journal does not have any account move entries in draft state for " "this period." -msgstr "" +msgstr "Geselecteerd dagboek heeft geen 'concept'boekingen" #. module: account #: view:account.fiscal.position:0 @@ -768,12 +823,16 @@ msgid "" " \n" " " msgstr "" +"\n" +" Geen journaalposten gevonden.\n" +"
\n" +" " #. module: account #: code:addons/account/account.py:1606 #, python-format msgid "Cannot create move with currency different from .." -msgstr "" +msgstr "U kunt geen boeking doen met een andere valuta dan ..." #. module: account #: model:email.template,report_name:account.email_template_edi_invoice diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po index 55d61f5c611..c95e3919012 100644 --- a/addons/account/i18n/zh_CN.po +++ b/addons/account/i18n/zh_CN.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-11-24 02:52+0000\n" -"PO-Revision-Date: 2012-11-01 08:44+0000\n" +"PO-Revision-Date: 2012-11-28 07:22+0000\n" "Last-Translator: ccdos\n" +" 单击 创建一个新的支票。\n" +"
\n" +" 支票支付表单允许跟踪用支票支付给供应商的过程。\n" +" 当年选择了一个供应商,Openerp 将自动提供 支付\n" +" 方法和支付金额,用于核销待支付的供应商发票和\n" +" 单据。\n" +"
\n" +" " #. module: account_check_writing #: field:account.voucher,allow_check:0 @@ -131,7 +140,7 @@ msgstr "用预先打印的支票" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom msgid "Print Check (Bottom)" -msgstr "" +msgstr "打印支票(底部)" #. module: account_check_writing #: sql_constraint:res.company:0 @@ -148,14 +157,14 @@ msgstr "到期日期" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle msgid "Print Check (Middle)" -msgstr "" +msgstr "打印支票(中间)" #. module: account_check_writing #: constraint:account.journal:0 msgid "" "Configuration error!\n" "The currency chosen should be shared by the default accounts too." -msgstr "" +msgstr "配置错误!" #. module: account_check_writing #: model:ir.model,name:account_check_writing.model_res_company @@ -171,7 +180,7 @@ msgstr "截止余额" #. module: account_check_writing #: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top msgid "Print Check (Top)" -msgstr "" +msgstr "打印支票(顶部)" #. module: account_check_writing #: report:account.print.check.bottom:0 diff --git a/addons/account_sequence/i18n/zh_CN.po b/addons/account_sequence/i18n/zh_CN.po index 30711dedc44..e27fb65f3a5 100644 --- a/addons/account_sequence/i18n/zh_CN.po +++ b/addons/account_sequence/i18n/zh_CN.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAMEA password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password following this link.
\n" +"\n" +"Note: If you did not ask for a password reset, you can safely ignore this " +"email.
" +msgstr "" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "Non è possibile avere due utenti con lo stesso login!" + +#. module: auth_reset_password +#: model:ir.model,name:auth_reset_password.model_res_users +msgid "Users" +msgstr "Utenti" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "OAuth UID must be unique per provider" +msgstr "il UID OAuth deve essere unico per provider" + +#. module: auth_reset_password +#: view:res.users:0 +msgid "Reset Password" +msgstr "Reimposta Password" + +#. module: auth_reset_password +#: model:email.template,subject:auth_reset_password.reset_password_email +msgid "Password reset" +msgstr "Ripristino password" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "Error: Invalid ean code" +msgstr "Errore: codice EAN non valido" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "L'azienda scelta non è fra le aziende abilitate per questo utente" + +#. module: auth_reset_password +#. openerp-web +#: code:addons/auth_reset_password/static/src/xml/reset_password.xml:7 +#, python-format +msgid "Reset password" +msgstr "Reimposta password" diff --git a/addons/auth_reset_password/i18n/zh_CN.po b/addons/auth_reset_password/i18n/zh_CN.po new file mode 100644 index 00000000000..ee06973b4c6 --- /dev/null +++ b/addons/auth_reset_password/i18n/zh_CN.po @@ -0,0 +1,78 @@ +# Chinese (Simplified) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHORA password reset was requested for the OpenERP account linked to this " +"email.
\n" +"\n" +"You may change your password following this link.
\n" +"\n" +"Note: If you did not ask for a password reset, you can safely ignore this " +"email.
" +msgstr "" +"\n" +"一个关联到这个Email地址的Openerp帐号请求复位密码。\n" +"你可以修改你的密码通过下面这个链接 。\n" +"提醒:如果你没请求复位密码,请忽略这封邮件。" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "两个用户不能使用相同的用户名!" + +#. module: auth_reset_password +#: model:ir.model,name:auth_reset_password.model_res_users +msgid "Users" +msgstr "用户" + +#. module: auth_reset_password +#: sql_constraint:res.users:0 +msgid "OAuth UID must be unique per provider" +msgstr "OAuth UID必须是每个提供者唯一的" + +#. module: auth_reset_password +#: view:res.users:0 +msgid "Reset Password" +msgstr "重置密码" + +#. module: auth_reset_password +#: model:email.template,subject:auth_reset_password.reset_password_email +msgid "Password reset" +msgstr "重置密码" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "Error: Invalid ean code" +msgstr "错误:无效的(EAN)条码" + +#. module: auth_reset_password +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "选择的公司不属于此用户允许访问的公司。" + +#. module: auth_reset_password +#. openerp-web +#: code:addons/auth_reset_password/static/src/xml/reset_password.xml:7 +#, python-format +msgid "Reset password" +msgstr "重设密码" diff --git a/addons/auth_signup/i18n/zh_CN.po b/addons/auth_signup/i18n/zh_CN.po new file mode 100644 index 00000000000..20b4ca05e9c --- /dev/null +++ b/addons/auth_signup/i18n/zh_CN.po @@ -0,0 +1,170 @@ +# Chinese (Simplified) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR\n" +" Click to add a contact in your address book.\n" +"
\n" +" OpenERP helps you easily track all activities related to\n" +" a customer; discussions, history of business opportunities,\n" +" documents, etc.\n" +"
\n" +" " +msgstr "" +"\n" +" Premere per creare un contatto in rubrica.\n" +"
\n" +" OpenERP ti aiuta a tenere traccia delle attività legate\n" +" a clienti, discussioni, storia delle opportunità,\n" +" document, etc.\n" +"\n" +"
\n" +" " + +#. module: contacts +#: model:ir.actions.act_window,name:contacts.action_contacts +#: model:ir.ui.menu,name:contacts.menu_contacts +msgid "Contacts" +msgstr "Contatti" diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 88b2edcd665..c552b1835f2 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -4,7 +4,7 @@\n" +" 单击定义一个评估计划 \n" +"
\n" +" 你能定义评估计划(例如:6个月后首次面谈,然后每年一次).\n" +" 然后每个员工能关联到一个评估计划,这样Openerp 能自动\n" +" 生成一个面谈要求给管理人员和下属.\n" +"
\n" +" " #. module: hr_evaluation #: view:hr_evaluation.plan.phase:0 @@ -405,7 +413,7 @@ msgstr "行动计划" #. module: hr_evaluation #: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config msgid "Periodic Appraisal" -msgstr "定义复核" +msgstr "定期评估" #. module: hr_evaluation #: field:hr_evaluation.plan,month_next:0 @@ -438,7 +446,7 @@ msgstr "所有答案" #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Answer Survey" -msgstr "" +msgstr "填写问卷" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -549,7 +557,7 @@ msgstr " (employee_name)s: 业务伙伴名称" #: field:hr.evaluation.interview,message_is_follower:0 #: field:hr_evaluation.evaluation,message_is_follower:0 msgid "Is a Follower" -msgstr "" +msgstr "是一个关注者" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -580,7 +588,7 @@ msgstr "增加筛选条件" #: field:hr_evaluation.evaluation,message_comment_ids:0 #: help:hr_evaluation.evaluation,message_comment_ids:0 msgid "Comments and emails" -msgstr "" +msgstr "评论和电子邮件" #. module: hr_evaluation #: help:hr_evaluation.plan.phase,send_anonymous_employee:0 @@ -733,7 +741,7 @@ msgstr "取消" #. module: hr_evaluation #: constraint:hr.employee:0 msgid "Error! You cannot create recursive hierarchy of Employee(s)." -msgstr "" +msgstr "错误!,你不能创建循环的员工层次" #. module: hr_evaluation #: view:hr.evaluation.report:0 @@ -836,7 +844,7 @@ msgstr "阶段" #. module: hr_evaluation #: selection:hr_evaluation.plan.phase,action:0 msgid "Bottom-Up Appraisal Requests" -msgstr "自下而上的考评申请" +msgstr "自下而上的评估申请" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -847,7 +855,7 @@ msgstr "2月" #: view:hr.evaluation.interview:0 #: view:hr_evaluation.evaluation:0 msgid "Interview Appraisal" -msgstr "面谈评估" +msgstr "面谈测评" #. module: hr_evaluation #: field:survey.request,is_evaluation:0 @@ -871,7 +879,7 @@ msgstr "面谈员工" msgid "" "You cannot change state, because some appraisal(s) are in waiting answer or " "draft state." -msgstr "" +msgstr "你不能改变状态,因为有些评估正在等待结果。" #. module: hr_evaluation #: selection:hr.evaluation.report,month:0 @@ -887,7 +895,7 @@ msgstr "评估计划阶段" #: help:hr.evaluation.interview,message_ids:0 #: help:hr_evaluation.evaluation,message_ids:0 msgid "Messages and communication history" -msgstr "" +msgstr "消息和通信历史" #. module: hr_evaluation #: view:hr.evaluation.interview:0 diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 1914d30ec05..aba6dd36538 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -3,7 +3,7 @@
No private message.
@@ -64,7 +65,8 @@
No todo.
@@ -84,7 +86,8 @@
}
No message found and no message sent yet.
diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css
index 94a5c2d1f41..638d016921b 100644
--- a/addons/mail/static/src/css/mail.css
+++ b/addons/mail/static/src/css/mail.css
@@ -48,7 +48,7 @@
.openerp .oe_mail .oe_msg{
position: relative;
- background: #F4F5FA;
+ background: #EDEDF6;
border-radius: 2px;
margin-bottom: 2px;
min-height: 42px;
@@ -70,7 +70,7 @@
margin-left: 40px;
}
.openerp .oe_mail .oe_msg .oe_msg_footer{
- padding-left: 4px;
+ margin-left: 4px;
padding-top: 3px;
overflow: hidden;
margin-bottom: 4px;
@@ -94,6 +94,10 @@
.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body p {
margin-bottom: 0px;
}
+.openerp .oe_mail .oe_msg .oe_msg_content .oe_msg_body * {
+ text-overflow:ellipsis;
+ word-wrap: break-word;
+}
/* a) Indented Messages */
@@ -380,6 +384,10 @@
line-height: 12px;
vertical-align: middle;
}
+.openerp .oe_mail .oe_msg_footer button.oe_post{
+ position: relative;
+ z-index: 2;
+}
.openerp .oe_mail .oe_msg_footer button.oe_attach{
width: 24px;
overflow: hidden;
@@ -387,8 +395,9 @@
}
.openerp .oe_mail .oe_msg_footer button.oe_attach .oe_e{
position: relative;
- top: -1px;
- left: -9px;
+ top: -4px;
+ margin-left: -9px;
+ vertical-align: middle;
filter:none;
}
.openerp .oe_mail .oe_hidden_input_file, .openerp .oe_mail .oe_hidden_input_file form{
@@ -402,8 +411,9 @@
}
.openerp .oe_mail .oe_msg_footer button.oe_full .oe_e{
position: relative;
- top: -1px;
- left: -9px;
+ top: -4px;
+ margin-left: -9px;
+ vertical-align: middle;
filter:none;
}
.openerp .oe_mail button.oe_attach, .openerp .oe_mail button.oe_full{
@@ -418,13 +428,17 @@
color: #7C7BAD;
margin-left: -3px;
}
+.openerp .oe_mail .oe_msg_footer .oe_attachment_file{
+ cursor: pointer;
+}
.openerp .oe_mail .oe_msg_footer .oe_attachment_file .oe_form_binary_file{
display: inline-block;
- margin-left: -47px;
- height: 28px;
- width: 52px;
- margin-top: -6px;
+ margin-left: -122px;
+ height: 22px;
+ width: 128px;
+ margin-top: -4px;
filter:none;
+ cursor: pointer;
}
.openerp .oe_mail .oe_mail_list_recipients{
font-size: 12px;
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index 44bb4e9ae09..a5beaac229f 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -204,7 +204,7 @@ openerp.mail = function (session) {
this.subject = datasets.subject || false,
this.name = datasets.name || false,
this.record_name = datasets.record_name || false,
- this.body = datasets.body || false,
+ this.body = datasets.body || '',
this.vote_nb = datasets.vote_nb || 0,
this.has_voted = datasets.has_voted || false,
this.is_favorite = datasets.is_favorite || false,
@@ -508,7 +508,6 @@ openerp.mail = function (session) {
res_model: 'mail.compose.message',
view_mode: 'form',
view_type: 'form',
- action_from: 'mail.ThreadComposeMessage',
views: [[false, 'form']],
target: 'new',
context: context,
@@ -574,12 +573,7 @@ openerp.mail = function (session) {
var message = thread.create_message_object( data[0] );
// insert the message on dom
thread.insert_message( message, root ? undefined : self.$el, root );
- if (thread.parent_message) {
- self.$el.remove();
- self.parent_thread.compose_message = null;
- } else {
- self.on_cancel();
- }
+ self.on_cancel();
});
//session.web.unblockUI();
});
@@ -591,11 +585,11 @@ openerp.mail = function (session) {
*/
on_compose_expandable: function (event) {
- if (!this.stay_open && (!this.show_composer || !this.$('textarea:not(.oe_compact)').val().match(/\S+/))) {
+ if ((!this.stay_open || (event && event.type == 'click')) && (!this.show_composer || !this.$('textarea:not(.oe_compact)').val().match(/\S+/))) {
this.show_composer = !this.show_composer || this.stay_open;
this.reinit();
}
- if (!this.stay_open && this.show_composer) {
+ if (!this.stay_open && this.show_composer && (!event || event.type != 'blur')) {
this.$('textarea:not(.oe_compact):first').focus();
}
return true;
@@ -725,7 +719,7 @@ openerp.mail = function (session) {
on_message_reply:function (event) {
event.stopPropagation();
this.create_thread();
- this.thread.on_compose_message();
+ this.thread.on_compose_message(event);
return false;
},
@@ -833,9 +827,10 @@ openerp.mail = function (session) {
return false;
},
- /*The selected thread and all childs (messages/thread) became read
- * @param {object} mouse envent
- */
+ /* Set the selected thread and all childs as read or unread, based on
+ * read parameter.
+ * @param {boolean} read_value
+ */
on_message_read_unread: function (read_value) {
var self = this;
var messages = [this].concat(this.get_childs());
@@ -958,7 +953,7 @@ openerp.mail = function (session) {
this.options = options.options;
this.options.root_thread = (options.options.root_thread != undefined ? options.options.root_thread : this);
- this.options.show_compose_message = this.options.show_compose_message && (this.options.display_indented_thread >= this.thread_level || !this.thread_level);
+ this.options.show_compose_message = this.options.show_compose_message && !this.thread_level;
// record options and data
this.parent_message= parent.thread!= undefined ? parent : false ;
@@ -995,7 +990,7 @@ openerp.mail = function (session) {
// add message composition form view
if (!this.compose_message) {
this.compose_message = new mail.ThreadComposeMessage(this, this, {
- 'context': this.context,
+ 'context': this.options.compose_as_todo && !this.thread_level ? _.extend(this.context, { 'default_favorite_user_ids': [this.session.uid] }) : this.context,
'options': this.options,
});
if (!this.thread_level || this.thread_level > this.options.display_indented_thread) {
@@ -1136,9 +1131,9 @@ openerp.mail = function (session) {
* Call the on_compose_expandable method to allow the user to write his message.
* (Is call when a user click on "Reply" button)
*/
- on_compose_message: function () {
+ on_compose_message: function (event) {
this.instantiate_compose_message();
- this.compose_message.on_compose_expandable();
+ this.compose_message.on_compose_expandable(event);
return false;
},
@@ -1241,6 +1236,7 @@ openerp.mail = function (session) {
} else {
message.appendTo(self.$el);
}
+ message.$el.hide().fadeIn(500);
return message
},
@@ -1262,6 +1258,9 @@ openerp.mail = function (session) {
// insert the message on dom
thread.insert_message( message, typeof dom_insert_after == 'object' ? dom_insert_after : false);
});
+ if (!records.length && this.options.root_thread == this) {
+ this.no_message();
+ }
},
/**
@@ -1291,8 +1290,10 @@ openerp.mail = function (session) {
var messages = _.sortBy( this.messages, function (val) { return val.id; });
var it = _.indexOf( messages, message );
- var msg_up = messages[it-1];
- var msg_down = messages[it+1];
+ var msg_up = message.$el.prev('.oe_msg');
+ var msg_down = message.$el.next('.oe_msg');
+ var msg_up = msg_up.hasClass('oe_msg_expandable') ? _.find( this.messages, function (val) { return val.$el[0] == msg_up[0]; }) : false;
+ var msg_down = msg_down.hasClass('oe_msg_expandable') ? _.find( this.messages, function (val) { return val.$el[0] == msg_down[0]; }) : false;
var message_dom = [ ["id", "=", message.id] ];
@@ -1397,6 +1398,8 @@ openerp.mail = function (session) {
*... @param {Array} [message_ids] List of ids to fetch by the root thread.
* When you use this option, the domain is not used for the fetch root.
* @param {String} [no_message] Message to display when there are no message
+ * @param {Boolean} [show_link_partner] Display partner (authors, followers...) on link or not
+ * @param {Boolean} [compose_as_todo] The root composer mark automatically the message as todo
*/
init: function (parent, action) {
this._super(parent, action);
@@ -1414,8 +1417,10 @@ openerp.mail = function (session) {
'show_compose_message' : false,
'show_compact_message' : false,
'compose_placeholder': false,
+ 'show_link_partner': true,
'view_inbox': false,
'message_ids': undefined,
+ 'compose_as_todo' : false,
}, this.action.params);
this.action.params.help = this.action.help || false;
@@ -1441,7 +1446,6 @@ openerp.mail = function (session) {
});
this.thread.appendTo( this.$el );
- this.thread.no_message();
if (this.action.params.show_compose_message) {
this.thread.instantiate_compose_message();
@@ -1632,7 +1636,7 @@ openerp.mail = function (session) {
*/
do_searchview_search: function (domains, contexts, groupbys) {
var self = this;
- this.rpc('/web/session/eval_domain_and_context', {
+ session.web.pyeval.eval_domains_and_contexts({
domains: domains || [],
contexts: contexts || [],
group_by_seq: groupbys || []
diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml
index bb787c9a21b..cca908a5d98 100644
--- a/addons/mail/static/src/xml/mail.xml
+++ b/addons/mail/static/src/xml/mail.xml
@@ -34,14 +34,14 @@