You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
3.1 KiB

  1. odoo.define("account_financial_report.account_financial_report_widget", function(
  2. require
  3. ) {
  4. "use strict";
  5. var Widget = require("web.Widget");
  6. var accountFinancialReportWidget = Widget.extend({
  7. events: {
  8. "click .o_account_financial_reports_web_action": "boundLink",
  9. "click .o_account_financial_reports_web_action_multi": "boundLinkmulti",
  10. "click .o_account_financial_reports_web_action_monetary":
  11. "boundLinkMonetary",
  12. "click .o_account_financial_reports_web_action_monetary_multi":
  13. "boundLinkMonetarymulti",
  14. },
  15. init: function() {
  16. this._super.apply(this, arguments);
  17. },
  18. start: function() {
  19. return this._super.apply(this, arguments);
  20. },
  21. boundLink: function(e) {
  22. var res_model = $(e.target).data("res-model");
  23. var res_id = $(e.target).data("active-id");
  24. return this.do_action({
  25. type: "ir.actions.act_window",
  26. res_model: res_model,
  27. res_id: res_id,
  28. views: [[false, "form"]],
  29. target: "current",
  30. });
  31. },
  32. boundLinkmulti: function(e) {
  33. var res_model = $(e.target).data("res-model");
  34. var domain = $(e.target).data("domain");
  35. if (!res_model) {
  36. res_model = $(e.target.parentElement).data("res-model");
  37. }
  38. if (!domain) {
  39. domain = $(e.target.parentElement).data("domain");
  40. }
  41. return this.do_action({
  42. type: "ir.actions.act_window",
  43. name: this._toTitleCase(res_model.split(".").join(" ")),
  44. res_model: res_model,
  45. domain: domain,
  46. views: [
  47. [false, "list"],
  48. [false, "form"],
  49. ],
  50. target: "current",
  51. });
  52. },
  53. boundLinkMonetary: function(e) {
  54. var res_model = $(e.target.parentElement).data("res-model");
  55. var res_id = $(e.target.parentElement).data("active-id");
  56. return this.do_action({
  57. type: "ir.actions.act_window",
  58. res_model: res_model,
  59. res_id: res_id,
  60. views: [[false, "form"]],
  61. target: "current",
  62. });
  63. },
  64. boundLinkMonetarymulti: function(e) {
  65. var res_model = $(e.target.parentElement).data("res-model");
  66. var domain = $(e.target.parentElement).data("domain");
  67. return this.do_action({
  68. type: "ir.actions.act_window",
  69. res_model: res_model,
  70. domain: domain,
  71. views: [
  72. [false, "list"],
  73. [false, "form"],
  74. ],
  75. target: "current",
  76. });
  77. },
  78. _toTitleCase: function(str) {
  79. return str.replace(/\w\S*/g, function(txt) {
  80. return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
  81. });
  82. },
  83. });
  84. return accountFinancialReportWidget;
  85. });