diff --git a/addons/web/static/src/scss/base_settings.scss b/addons/web/static/src/scss/base_settings.scss index a7ff1d848a7..f2b25e2e6f8 100644 --- a/addons/web/static/src/scss/base_settings.scss +++ b/addons/web/static/src/scss/base_settings.scss @@ -18,10 +18,6 @@ .o_base_settings { height: 100%; - @include media-breakpoint-down(sm) { - flex-flow: column nowrap; - } - .o_control_panel { flex: 0 0 auto; @@ -77,10 +73,6 @@ overflow: auto; - @include media-breakpoint-down(sm) { - flex-flow: column nowrap; - } - .settings_tab { display: flex; flex: 0 0 auto; @@ -89,14 +81,6 @@ overflow: auto; padding-top: $o-horizontal-padding*0.5; - @include media-breakpoint-down(sm) { - flex: 0 0 $o-base-settings-mobile-tabs-height; - display: inline-flex; - position: relative; - overflow: hidden; - padding: 0; - } - .selected { background-color: gray('900'); box-shadow: inset 3px 0 0 $o-brand-primary; @@ -121,55 +105,6 @@ min-width: 23px; margin-right: 10px; } - - // Mobile Tabs - @include media-breakpoint-down(sm) { - display: block; - @include o-position-absolute($left:100%); - @include size(auto, $o-base-settings-mobile-tabs-height); - padding: $o-base-settings-mobile-tabs-height*0.25 $o-base-settings-mobile-tabs-height*0.4; - text-align: center; - font-size: 14px; - font-weight: 500; - line-height: inherit; - transition: 0.2s all ease 0s; - transform: translate3d(0,0,0); - - .app_name { - display: block; - white-space: nowrap; - } - - &:after { - content: ''; - background: $o-brand-primary; - opacity: 0; - @include o-position-absolute(auto, 0, 0, 0); - @include size(100%, 3px); - transition: 0.2s all ease 0s; - } - - &.previous, &.before { - left: 0% - $o-base-settings-mobile-tabs-overflow-gap; - } - - &.current { - left: 50%; - color: white; - - // Reset default style for 'selected' tabs - box-shadow: none; - background: none; - - &:after { - opacity: 1; - } - } - - &.next, &.after { - left: 100% + $o-base-settings-mobile-tabs-overflow-gap; - } - } } } diff --git a/odoo/addons/base/static/src/js/res_config_settings.js b/odoo/addons/base/static/src/js/res_config_settings.js index 802fdaced6f..67e2979c308 100644 --- a/odoo/addons/base/static/src/js/res_config_settings.js +++ b/odoo/addons/base/static/src/js/res_config_settings.js @@ -3,7 +3,6 @@ odoo.define('base.settings', function (require) { var BasicModel = require('web.BasicModel'); var core = require('web.core'); -var config = require('web.config'); var FormView = require('web.FormView'); var FormController = require('web.FormController'); var FormRenderer = require('web.FormRenderer'); @@ -24,16 +23,6 @@ var BaseSettingRenderer = FormRenderer.extend({ this.activeTab = false; }, - start: function () { - var prom = this._super.apply(this, arguments); - if (config.device.isMobile) { - core.bus.on("DOM_updated", this, function () { - this._moveToTab(this.currentIndex || this._currentAppIndex()); - }); - } - return prom; - }, - /** * @override * overridden to show a message, informing user that there are changes @@ -102,49 +91,6 @@ var BaseSettingRenderer = FormRenderer.extend({ this.searchText = ""; } }, - /** - * In mobile view behaviour is like swipe content left / right and apps tab will be shown on the top. - * This method will set the required properties (styling and css). - * - * @private - * @param {int} currentTab - */ - _activateSettingMobileTab: function (currentTab) { - var self = this; - var moveTo = currentTab; - var next = moveTo + 1; - var previous = moveTo - 1; - - this.$(".settings .app_settings_block").removeClass("previous next current before after"); - this.$(".settings_tab .tab").removeClass("previous next current before after"); - _.each(this.modules, function (module, index) { - var tab = self.$(".tab[data-key='" + module.key + "']"); - var view = module.settingView; - - if (index === previous) { - tab.addClass("previous"); - tab.css("margin-left", "0px"); - view.addClass("previous"); - } else if (index === next) { - tab.addClass("next"); - tab.css("margin-left", "-" + tab.outerWidth() + "px"); - view.addClass("next"); - } else if (index < moveTo) { - tab.addClass("before"); - tab.css("margin-left", "-" + tab.outerWidth() + "px"); - view.addClass("before"); - } else if (index === moveTo) { - var marginLeft = tab.outerWidth() / 2; - tab.css("margin-left", "-" + marginLeft + "px"); - tab.addClass("current"); - view.addClass("current"); - } else if (index > moveTo) { - tab.addClass("after"); - tab.css("margin-left", "0"); - view.addClass("after"); - } - }); - }, /** * find current app index in modules * @@ -156,22 +102,6 @@ var BaseSettingRenderer = FormRenderer.extend({ }); return index; }, - /** - * Enables swipe navigation between settings pages - * - * @private - */ - _enableSwipe: function () { - var self = this; - this.$('.settings').swipe({ - swipeLeft: function () { - self._moveToTab(self.currentIndex + 1); - }, - swipeRight: function () { - self._moveToTab(self.currentIndex - 1); - } - }); - }, /** * * @private @@ -214,12 +144,7 @@ var BaseSettingRenderer = FormRenderer.extend({ view.removeClass("o_hidden"); this.activeView = view; this.activeTab = tab; - - if (config.device.isMobile) { - this._activateSettingMobileTab(this.currentIndex); - } else { - tab.addClass("selected"); - } + tab.addClass("selected"); } }, @@ -239,10 +164,6 @@ var BaseSettingRenderer = FormRenderer.extend({ _onKeyUpSearch: function (event) { this.searchText = this.searchInput.val(); this.activeTab.removeClass('selected'); - if (config.device.isMobile) { - this.$('.settings_tab').addClass('o_hidden'); - this.$('.settings').addClass('d-block'); - } this._searchSetting(); }, /** @@ -261,10 +182,6 @@ var BaseSettingRenderer = FormRenderer.extend({ }); this.activeTab.removeClass('o_hidden').addClass('selected'); this.activeView.removeClass('o_hidden'); - if (config.device.isMobile) { - this.$('.settings_tab').removeClass('o_hidden'); - this.$('.settings').removeClass('d-block'); - } }, _render: function () { @@ -273,10 +190,6 @@ var BaseSettingRenderer = FormRenderer.extend({ self._initModules(); self._renderLeftPanel(); self._initSearch(); - - if (config.device.isMobile) { - self._enableSwipe(); - } }); }, @@ -418,18 +331,6 @@ var BaseSettingView = FormView.extend({ Renderer: BaseSettingRenderer, Controller: BaseSettingController, }), - - /** - * Overrides to lazy-load touchSwipe library in mobile. - * - * @override - */ - init: function () { - if (config.device.isMobile) { - this.jsLibs.push('/web/static/lib/jquery.touchSwipe/jquery.touchSwipe.js'); - } - this._super.apply(this, arguments); - }, }); view_registry.add('base_settings', BaseSettingView); diff --git a/odoo/addons/base/static/tests/base_settings_mobile_tests.js b/odoo/addons/base/static/tests/base_settings_mobile_tests.js deleted file mode 100644 index 5ccb6704c34..00000000000 --- a/odoo/addons/base/static/tests/base_settings_mobile_tests.js +++ /dev/null @@ -1,99 +0,0 @@ -odoo.define('base.settings_mobile_tests', function (require) { -"use strict"; - -var BaseSetting = require('base.settings'); - -var testUtils = require('web.test_utils'); -var view_registry = require('web.view_registry'); - -var BaseSettingsView = view_registry.get('base_settings'); -var createView = testUtils.createView; - -// prevent the renderer from doing RPCs to fetch app icons -BaseSetting.Renderer.include({ - _getAppIconUrl: function () { - return ''; - }, -}); - -QUnit.module('mobile_base_settings_tests', { - beforeEach: function () { - this.data = { - project: { - fields: { - foo: {string: 'Foo', type: 'boolean'}, - bar: {string: 'Bar', type: 'boolean'}, - }, - }, - }; - } -}, function () { - - QUnit.module('BaseSettings Mobile'); - - QUnit.test('swipe settings in mobile', async function (assert) { - assert.expect(2); - - // mimic touchSwipe library's swipe method - var oldSwipe = $.fn.swipe; - var swipeLeft, swipeRight; - $.fn.swipe = function (params) { - swipeLeft = params.swipeLeft; - swipeRight = params.swipeRight; - }; - - var form = await createView({ - View: BaseSettingsView, - model: 'project', - data: this.data, - arch: '
', - }); - - swipeLeft(); - assert.strictEqual(form.$('.settings .current').data('key'), 'project', 'current setting should be project'); - - swipeRight(); - assert.strictEqual(form.$('.settings .current').data('key'), 'crm', 'current setting should be crm'); - - $.fn.swipe = oldSwipe; - form.destroy(); - }); -}); - -});