summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/control_panel/time_range_menu.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/control_panel/time_range_menu.js')
-rw-r--r--addons/web/static/src/js/control_panel/time_range_menu.js109
1 files changed, 0 insertions, 109 deletions
diff --git a/addons/web/static/src/js/control_panel/time_range_menu.js b/addons/web/static/src/js/control_panel/time_range_menu.js
deleted file mode 100644
index b18b376d40b..00000000000
--- a/addons/web/static/src/js/control_panel/time_range_menu.js
+++ /dev/null
@@ -1,109 +0,0 @@
-odoo.define('web.TimeRangeMenu', function (require) {
- "use strict";
-
- const { COMPARISON_TIME_RANGE_OPTIONS, DEFAULT_PERIOD, TIME_RANGE_OPTIONS } = require('web.searchUtils');
- const DropdownMenu = require('web.DropdownMenu');
- const { useModel } = require('web.model');
-
- // Used to provide unique ids to its template elements.
- let timeRangeMenuId = 0;
-
- /**
- * 'Time ranges' menu
- *
- * Component used to create a time range from a field, a given range and optionally
- * another field to make a comparison.
- *
- * The component template overrides the dropdownmenu to keep the basic behaviours
- * (opening/closing, layout). The template itself iis a set of labels/inputs
- * used to select the field and range. There is also a checkbox used to determine
- * whether to render the comparison range field selection (input).
- * @extends DropdownMenu
- */
- class TimeRangeMenu extends DropdownMenu {
- constructor() {
- super(...arguments);
- this.model = useModel('controlPanelModel');
-
- this.domId = timeRangeMenuId++;
- this.fields = Object.values(this.props.fields)
- .filter(field => this._validateField(field));
- this.periodOptions = TIME_RANGE_OPTIONS;
- this.comparisonTimeRangeOptions = COMPARISON_TIME_RANGE_OPTIONS;
- this.periodGroups = Object.values(this.periodOptions).reduce((acc, o) => {
- if (!acc.includes(o.groupNumber)) {
- acc.push(o.groupNumber);
- }
- return acc;
- }, []);
- const activeTimeRange = this.model.getFiltersOfType('timeRange').find(
- timeRange => timeRange.isActive
- );
- Object.assign(this.state, {
- fieldName: this.fields[0] && this.fields[0].name,
- rangeId: DEFAULT_PERIOD,
- }, activeTimeRange);
- }
-
- //---------------------------------------------------------------------
- // Getters
- //---------------------------------------------------------------------
-
- /**
- * @override
- */
- get title() {
- return this.env._t("Time Ranges");
- }
-
- //---------------------------------------------------------------------
- // Private
- //---------------------------------------------------------------------
-
- /**
- * @private
- * @param {Object} field
- * @returns {boolean}
- */
- _validateField(field) {
- return field.sortable &&
- ['date', 'datetime'].includes(field.type);
- }
-
- //---------------------------------------------------------------------
- // Handlers
- //---------------------------------------------------------------------
-
- /**
- * @private
- */
- _onApply() {
- this.model.dispatch('activateTimeRange',
- this.state.fieldName,
- this.state.rangeId,
- this.state.comparisonRangeId
- );
- }
-
- /**
- * @private
- */
- _onCheckboxClick() {
- if (!this.state.comparisonRangeId) {
- this.state.comparisonRangeId = 'previous_period'; // default
- } else {
- delete this.state.comparisonRangeId;
- }
- }
- }
-
- TimeRangeMenu.defaultProps = Object.assign({}, DropdownMenu.defaultProps, {
- icon: 'fa fa-calendar',
- });
- TimeRangeMenu.props = Object.assign({}, DropdownMenu.props, {
- fields: Object,
- });
- TimeRangeMenu.template = 'web.TimeRangeMenu';
-
- return TimeRangeMenu;
-});