summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/control_panel/comparison_menu.js
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web/static/src/js/control_panel/comparison_menu.js
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/web/static/src/js/control_panel/comparison_menu.js')
-rw-r--r--addons/web/static/src/js/control_panel/comparison_menu.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/addons/web/static/src/js/control_panel/comparison_menu.js b/addons/web/static/src/js/control_panel/comparison_menu.js
new file mode 100644
index 00000000..dee1c982
--- /dev/null
+++ b/addons/web/static/src/js/control_panel/comparison_menu.js
@@ -0,0 +1,63 @@
+odoo.define("web.ComparisonMenu", function (require) {
+ "use strict";
+
+ const DropdownMenu = require("web.DropdownMenu");
+ const { FACET_ICONS } = require("web.searchUtils");
+ const { useModel } = require("web/static/src/js/model.js");
+
+ /**
+ * "Comparison" menu
+ *
+ * Displays a set of comparison options related to the currently selected
+ * date filters.
+ * @extends DropdownMenu
+ */
+ class ComparisonMenu extends DropdownMenu {
+ constructor() {
+ super(...arguments);
+ this.model = useModel('searchModel');
+ }
+
+ //---------------------------------------------------------------------
+ // Getters
+ //---------------------------------------------------------------------
+
+ /**
+ * @override
+ */
+ get icon() {
+ return FACET_ICONS.comparison;
+ }
+
+ /**
+ * @override
+ */
+ get items() {
+ return this.model.get('filters', f => f.type === 'comparison');
+ }
+
+ /**
+ * @override
+ */
+ get title() {
+ return this.env._t("Comparison");
+ }
+
+ //---------------------------------------------------------------------
+ // Handlers
+ //---------------------------------------------------------------------
+
+ /**
+ * @private
+ * @param {OwlEvent} ev
+ */
+ _onItemSelected(ev) {
+ ev.stopPropagation();
+ const { item } = ev.detail;
+ this.model.dispatch("toggleComparison", item.id);
+ }
+
+ }
+
+ return ComparisonMenu;
+});