This seems not working for me. Any leads if possible.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
This seems not working for me. Any leads if possible.
Hi,
add a a logger to make sure that elements you search are found and they are what you search for:
console.log("clickover: ", clickover, "_opened: ", _opened);
My assumption is that it is not so: e.g. 'clickover' would ever hardly have the searched class, since event relates to a 'document', not your dropdown.
Finally, the issue you are trying to solve is quite controversial, you should be really cautious of extending outside Odoo standard js. Have a look here: https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element.
UPDATE
try this code:
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
console.log("thisButton", thisButton);
thisButton.removeClass("collapse");
});
});
in the last string put the class which is responsible for beeing expanded
Thank you.
I used this logger and i get this error :
collapse_menu.js:13 Uncaught ReferenceError: clickover is not defined
Comment 2:
I did this - Thanks.
Console:
payment_form.js:459 DOM doesn't contain '.o_payment_form'
tour_manager.js:170 Tour Manager is ready. running_tour=null
collapse_menu.js:9 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:20 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:32 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
Do i need to do something else as well? Because the menu dropdown is not closing when i click outside. And the _opened: is always false.
you should add it after defining the var (before 'if'). clickover is definitely inside your method - 'var clickover ='
payment_form.js:459 DOM doesn't contain '.o_payment_form'
tour_manager.js:170 Tour Manager is ready. running_tour=null
collapse_menu.js:9 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:20 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
collapse_menu.js:32 clickover: jQuery.fn.init [div.w-toggle-menu, context: div.w-toggle-menu]0: div.w-toggle-menucontext: div.w-toggle-menulength: 1__proto__: Object(0) _opened: false
Do i need to do something else as well? Because the menu dropdown is not closing when i click outside. And the _opened: is always false.
This is my .js file:
odoo.define('theme_wibas.collapseMenu', function (require) {
'use strict';
$(document).ready(function () {
$(document).click(function (event) {
var clickover = $(event.target);
var _opened = $(".navbar-top-collapse").hasClass("navbar-collapse navbar-top-collapse collapse in");
console.log("clickover: ", clickover, "_opened: ", _opened);
if (_opened === true && !clickover.hasClass("navbar-toggle collapsed")) {
$("button.navbar-toggle collapsed").click();
}
});
});
It means that selector $(".navbar-top-collapse") ie either not found or doesn't have a searched class. Besides, I guess what you do in 'if' is not correct, since the second part would be always true. It is better to use removeClass which will check for class by itself. I updated my initial answer - try to use it.
odoo.define('theme_wibas.collapseMenu', function (require) {
'use strict';
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.o_dropdown_toggler_btn');
console.log("thisButton", thisButton);
thisButton.removeClass(".navbar-toggle");
});
});
Doesn't work... :(
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
$(document).ready(function () {
$(document).click(function (event) {
event.stopPropagation();
var thisButton = $(document).find('.navbar-collapse navbar-top-collapse collapse in');
console.log("thisButton", thisButton);
thisButton.removeClass(".navbar-toggle");
// thisButton.removeClass(".navbar-toggle collapsed");
});
});
Nope. Its still the same...
and what is logged by console.log("thisButton", thisButton)?
thisButton jQuery.fn.init [prevObject: jQuery.fn.init(1), context: document, selector: ".navbar-collapse navbar-top-collapse collapse in"]context: documentlength: 0prevObject: jQuery.fn.init [document, context: document]selector: ".navbar-collapse navbar-top-collapse collapse in"__proto__: Object(0)
So, length of found items is zero. It means that no elements with the class navbar-collapse navbar-top-collapse collapse in are on the document. Double check that you have an element with such a class
Ok will post all details:
1. When i click on the menu :
<button id="mainmenubutton" type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
<div class="w-toggle-menu">Menü</div>
<div class="w-toggle-close">×</div>
<div class="w-toggle-hamburger">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</div>
</button>
2. the the dropdown list code:
<div class="navbar-collapse navbar-top-collapse collapse in" aria-expanded="true" style="">
<ul class="nav navbar-nav navbar-left" id="top_menu">
<li>
<a href="/unternehmen">
<span data-oe-model="website.menu" data-oe-id="19" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">(f) Unternehmen</span>
</a>
</li>
<li>
<a href="/digitalisierung">
<span data-oe-model="website.menu" data-oe-id="15" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Digitalisierung</span>
</a>
</li>
<li>
<a href="/agile-organisation">
<span data-oe-model="website.menu" data-oe-id="7" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Agile Organisation</span>
</a>
</li>
<li>
<a href="/scaled-agile">
<span data-oe-model="website.menu" data-oe-id="24" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Scaled Agile</span>
</a>
</li>
<li>
<a href="/agile-methoden">
<span data-oe-model="website.menu" data-oe-id="22" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Agile Methoden</span>
</a>
</li>
<li>
<a href="/beratung">
<span data-oe-model="website.menu" data-oe-id="11" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Beratung</span>
</a>
</li>
<li>
<a href="/schulungen">
<span data-oe-model="website.menu" data-oe-id="9" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Schulungen</span>
</a>
</li>
<li>
<a href="/veranstaltungen">
<span data-oe-model="website.menu" data-oe-id="4" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Veranstaltungen</span>
</a>
</li>
<li>
<a href="/publikationen">
<span data-oe-model="website.menu" data-oe-id="5" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Publikationen</span>
</a>
</li>
<li>
<a href="/topicpage">
<span data-oe-model="website.menu" data-oe-id="38" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Topicpage</span>
</a>
</li>
<li>
<a href="/scaled-agile-1">
<span data-oe-model="website.menu" data-oe-id="37" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Scaled-Agile</span>
</a>
</li>
<li>
<a href="/lotse">
<span data-oe-model="website.menu" data-oe-id="39" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">Ihr Lotse</span>
</a>
</li>
<li>
<a href="/gulshan">
<span data-oe-model="website.menu" data-oe-id="40" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">gulshan</span>
</a>
</li>
<li>
<a href="/test">
<span data-oe-model="website.menu" data-oe-id="41" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">test</span>
</a>
</li>
<li>
<a href="/test-1">
<span data-oe-model="website.menu" data-oe-id="42" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">test</span>
</a>
</li>
<li>
<a href="/gulshan-1">
<span data-oe-model="website.menu" data-oe-id="44" data-oe-field="name" data-oe-type="char" data-oe-expression="submenu.name">gulshan</span>
</a>
</li>
<li class="divider"></li>
<li data-oe-model="ir.ui.view" data-oe-id="1327" data-oe-field="arch" data-oe-xpath="/data/xpath[4]/div[1]/div[2]/div[1]/ul[1]/li[2]">
<form class="navbar-form navbar-left" role="search">
<div class="inner-addon right-addon">
<i class="fa fa-search"></i>
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default hidden">Submit</button>
</form>
</li>
<li class="lang-select">
<a class="js_change_lang" href="/en_US/?debug=assets" data-lang="en_US">
switch to english
</a>
</li>
</ul>
</div>
Any help? I tried out every possible thing.
Hey Guys - The solution is this. This worked fine.
$(document).click(function (event) {
var clickover = $(event.target);
var $navbar = $(".navbar-top-collapse");
var _opened = $navbar.hasClass("in");
if (_opened === true && !clickover.hasClass("navbar-toggle collapsed")) {
$navbar.collapse('hide');
}
});
Hi,
add a a logger to make sure that elements you search are found and they are what you search for:
console.log("clickover: ", clickover, "_opened: ", _opened);
My assumption is that it is not so: e.g. 'clickover' would ever hardly have the searched class, since event relates to a 'document', not your dropdown.
Finally, the issue you are trying to solve is quite controversial, you should be really cautious of extending outside Odoo standard js. Have a look here: https://stackoverflow.com/questions/152975/how-do-i-detect-a-click-outside-an-element.
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
Odoo 11 Hide EDIT & DELETE
Solved
|
|
1
Mar 21
|
2520 | |
|
3
Mar 19
|
2328 | ||
|
1
May 20
|
5384 | ||
|
1
Jan 19
|
4805 | ||
|
0
Nov 18
|
4711 |