From ed43981dcb008067646b99ad81f4eafed9413635 Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Tue, 2 Sep 2025 14:46:28 +0300 Subject: [PATCH] hide_search_from_many2many --- .../static/src/js/list_search.js | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/odex25_base/fims_general_search_tree_view/static/src/js/list_search.js b/odex25_base/fims_general_search_tree_view/static/src/js/list_search.js index cc000ea40..19fa7c363 100644 --- a/odex25_base/fims_general_search_tree_view/static/src/js/list_search.js +++ b/odex25_base/fims_general_search_tree_view/static/src/js/list_search.js @@ -162,7 +162,6 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) { }).then(function() { return self.update({}, {reload: false}); }).then(function() { - // ✅ الإضافة البسيطة الوحيدة: إعادة Focus بعد الـ reload setTimeout(function() { if (self.renderer && self.renderer.$) { var $input = self.renderer.$('.oe_search_input'); @@ -170,7 +169,7 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) { $input.focus(); } } - }, 100); // تأخير بسيط للتأكد من اكتمال الـ rendering + }, 100); }).finally(function() { if (self.renderer) { self.renderer.$('.oe_search_loading').hide(); @@ -409,19 +408,42 @@ odoo.define('fims_general_search_tree_view.list_search', function (require) { return false; } - // الحل الدقيق الوحيد المؤكد: - // فحص الـ model state للـ ListRenderer - var controller = this.getParent(); - if (controller && controller.model && controller.handle) { - var state = controller.model.get(controller.handle); + // **الحل الجديد المبني على view_type:** + try { + var controller = this.getParent(); - // إذا كان parentID موجود، فهذا يعني أن الـ list embedded داخل relational field - if (state && state.parentID) { - return false; // لا نظهر البحث للـ embedded lists + // فحص 1: التحقق من action في الـ controller + if (controller && controller.action) { + var action = controller.action; + + // إذا كان view_type = 'list' فهو standalone + if (action.view_type === 'list') { + console.log('FIMS Search: Shown - view_type=list found'); + return true; + } + + // إذا كان view_mode يبدأ بـ 'list' + if (action.view_mode && action.view_mode.startsWith('list')) { + console.log('FIMS Search: Shown - view_mode starts with list'); + return true; + } } - } - return true; // نظهر البحث للـ standalone lists فقط + // فحص 2: التحقق من URL كـ backup + var url = window.location.hash; + if (url && url.includes('view_type=list')) { + console.log('FIMS Search: Shown - view_type=list found in URL'); + return true; + } + + // إذا لم نجد أي من المؤشرات أعلاه، فهو embedded + console.log('FIMS Search: Hidden - No list action detected'); + return false; + + } catch (error) { + console.warn('FIMS Search: Error detecting view type, defaulting to hidden', error); + return false; + } }, _addCustomSearchBox: function() {