Dropdown menu does not trigger in oneui 3.0.2 (in Firefox) - firefox

I use an dropDownButton from the extlib, which does not work when I changed to OneUI 3.0.2 (from 2.1, in which it works fine).
Happens in firefox (31.8), not in (a very old) IE. Firebug shows the following error in its console, when I click on on of the dropdown entries:
TypeError: _9.getAttribute is not a function ,
and it point to ...{return _6[_9.getAttribute("widgetId")];}... in the lib -extlib.dijit.OneUIv302Dialog&-extlib.dijit.OneUIv302Menu&#Eya.js
Is it a (known) bug?
my code:
<xe:dropDownButton
id="dropDownButton1">
<xe:this.treeNodes>
<xe:basicContainerNode
label="IAM">
<xe:this.children>
<xe:basicLeafNode
submitValue="approve1" label="approve selected">
</xe:basicLeafNode>
<xe:basicLeafNode
submitValue="reject0" label="reject selected">
</xe:basicLeafNode>
</xe:this.children>
</xe:basicContainerNode>
</xe:this.treeNodes>
<xp:eventHandler
event="onItemClick" submit="true"
refreshMode="complete">
<xe:this.action><![CDATA[#{javascript:submitIAMAction()}]]></xe:this.action>
</xp:eventHandler>
</xe:dropDownButton>

I have tested the Extension Library DropDownButton in conjunction with OneUI V3.0.2 without any troubles.
UPDATE "Output on server console":
I am working with the following environment:
Firefox 42
Domino Server 9.0.1FP4
Extension Library Version 9.0.1.v00_14_20150831-1301
It could be a problem with your Domino Server and/or Extension Library Version?
Try to do some updates on your environment.

It sounds like the same issue we had. In our case, I think the drop down entries could still work if you clicked on the actual text in the drop down option, clicking in the 'white space' would not work.
We found a solution thanks to Serdar Basegmez in the Defect list in ExtLib project on OpenNTF
http://extlib.openntf.org/main.nsf/project.xsp?r=project/XPages%20Extension%20Library/defects/0FFE08B1FC57FE6A86257D91004C156D
Give this a try:
put the following in a javascript library.
if(dojo.isMozilla) dojo.addOnLoad(function() {
dijit.registry.backupByNode=dijit.registry.byNode;
dijit.registry.byNode=function(node) {
if(node.getAttribute) {
return dijit.registry.backupByNode(node);
} else {
return dijit.registry.backupByNode(node.parentNode);
}
}
});
and then add your theme: (add add as a resource to a single page)
<resources>
<script src="/fixDropDownButton.js" clientSide="true"
type="text/javascript"></script>
</resources>

Related

Modernizr.videoautoplay object shows true, Modernizr.videoautoplay returning undefined

I'm using a custom Modernizr build, v3.3.0. I've created a simple JSFiddle example to illustrate: https://jsfiddle.net/cqkg7x45/6/.
console.log(Modernizr);
will show the Modernizr object, and when I inspect it in the JS console I can see "videoautoplay" is a property with a value of "true".
But, when I do
console.log(Modernizr.videoautoplay)
it returns "undefined".
I was originally seeing this issue in a WordPress theme I'm developing, but was also able to recreate in JSFiddle and a separate stand-alone HTML page. Also, Modernizr is putting the "videoautoplay" class on my HTML tag, even when I know the device does not support that feature (iPhone 5).
Update: This issue appears to be happening in Chrome (v47.0.2526.106), but not Firefox (v43.0.2).
I'm going to answer my own question in case anyone else runs into this problem. I found the solution on this SO post: How do I detect if the HTML5 autoplay attribute is supported?.
Since this is an "async" test you can't access the property using the syntax
Modernizr.videoautoplay
You have to use the .on() function, as shown in the above SO post:
Modernizr.on('videoautoplay', function(result){
if(result) {
alert('video autoplay is supported');
} else {
alert('video autplay is NOT supported');
}
});

js in html is not executing in Phoenix framework sample app

I'm playing around with the phoenix framework. I copied the chat example entirely but I'm not getting any results.
In fact when I write console.log("testing") in my app.js I notice that my console does not log anything...
I am getting the error referenced in this link:
phoenix framework - invalid argument at new Socket - windows
However that error seems to be related to Brunch not working in windows. When I brunch build, I can confirm that app.js has the console.log("testing") that I included.
Nevertheless, I don't see that console log when I visit my localhost:4000.
Why is JS not executing?
Turns out the guide is missing a key line that made it not work.
The guide has the following:
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="<%= static_path(#conn, "/js/app.js") %>"></script>
</body>
But that is missing the below line which you can put above the body tag.
<script>require("web/static/js/app")</script>
Even as Chowza already solved this question I would like to propose another, possible cleaner solution, using the autoRequire feature of Brunch.io.
The problem occurs because Brunch.io does not autoRequire the app.js under Windows correctly. Chowza worked around this issue by requiring the file manually in the html. You can omit the manual require if you alter the /brunch-config.js as follows: Change from
modules: {
autoRequire: {
"js/app.js": ["web/static/js/app"]
}
}
To
modules: {
autoRequire: {
"js/app.js": ["web/static/js/app"],
"js\\app.js": ["web/static/js/app"]
}
}
This way the app.js is autoRequired, even if you work on a Windows based system.
I would like to mention, that this solution is based on the link Chowza himself posted, so all credit goes to him for pointing to the link.

Why does JCE delete text in an article that looks like an html tag?

I am using a plugin named CodeHighlighter to insert a code snippet inside articles in my Joomla 2.5 website using JCE.
To insert the code snippet, I do the following in JCE:
I swap to the HTML code view and, for example, I insert something like this:
<pre class="brush:java">
package com.tutorialspoint;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextStartedEvent;
public class CStartEventHandler
implements ApplicationListener<ContextStartedEvent>{
public void onApplicationEvent(ContextStartedEvent event) {
System.out.println("ContextStartedEvent Received");
}
}
</pre>
This works well except for this part of code: <ContextStartedEvent> which is eliminated by JCE. I have also tried using a no WYSIWIG editor and there is no problem.
So the problem seems to be that JCE sees <ContextStartedEvent> as a tag and not as a legal part of my Java code snippet, and so deletes it...
Do you have some idea about how prevent JCE from deleting this part of code?
You can try the following:
1. Go to Global Configuration
2. Click "Text Filters" Tab.
3. Change "Super Users" filter type to "no filtering"
This will solve problems such as these.
Youtube videos wont work in Joomla (code gets deleted)
JCE TinyMCE code cleanup deletes my styles code and scripts.
Inline document styles (css) gets removed by JCE or TinyMCE in Joomla
Code cleanup problems in JCE / TinMCE
Flash scripts being removed by JCE code cleanup

ERROR: Unable to locate element

I have to test a dynamic app using the ZK framework and Selenium does not identify the id's from the different elements, so can't enter text in the textboxes or select an element in a list (elements from a database)
Whatever I use (xpath or css selector) nothing works, always the same error
Does anyone know how can I fix my problems?
I'm using Selenium IDE 1.9.0
Netbeans IDE 7.1.1
And Firefox 16.0.2
Thanks
The Html code is:
button id="zc_subdossierzulButton_8" class="butt z-button-os" style="border-style: solid;border-width: 1px;border-color: #ED0000;" type="button">Rechercher
And the Java code i tried is:
driver.findElement(By.cssSelector("zc_subdossierzulButton_8.butt"));
don't work
this:
driver.findElement(By.cssSelector("butt z-button-os"));
don't work
and this:
String cssSelector = "[class='butt z-button-os']";
driver.findElement(By.cssSelector(cssSelector)).clear();
driver.findElement(By.cssSelector(cssSelector)).sendKeys("c");
Please go through the following documentation and try using different options like
driver.findElement(By.id("coolestWidgetEvah"));
OR
driver.findElements(By.className("cheese"));
OR
driver.findElement(By.tagName("iframe"));
OR
driver.findElement(By.name("cheese"));
OR
driver.findElement(By.linkText("cheese"));
OR
driver.findElement(By.partialLinkText("cheese"));
OR
driver.findElements(By.xpath("//input"));
http://seleniumhq.org/docs/03_webdriver.html#locating-ui-elements-webelements

History issue combining WP7.5, phonegap and jqm

I have a phonegap app that uses jqm that works fine in android and ios.
Porting to WP7 i have an issue with the history, specifically history.back() (but also .go(-1) etc). This refers to going back in history where the previous 'page' was in the same physical html file, just a different data-role=page div.
using a jwm site in a regular browser is fine (with separate 'pages' in the same html file). Also, using history.back() when we go from one html file to another in the app is fine. It's the specific combination of WP7.5, jqm and PG.
Has anyone come across a solution for this? it's driving me crazy, and has been as issue since PG 1.4.1 and jwm 1.0.
EDIT 1: It's possible that the phonegap process of initialising the webview on WP7.5 somehow overrides the jqm history overrides, after they've loaded.
EDIT 2: definitely something to do with jqm not being able to modify the history. each time there is a 'page' change, history.length is still 0.
EDIT 3: When i inspect the 'history' object, i found there is no function for replaceState or pushState - i know jqm uses this for history nav, maybe that's the problem.
ok - this isn't perfect, but here's a solution (read: hack) that works for me. It only works for page hash changes, not actual url changes (but you could add a regex check for that). Put this somewhere in the code that runs on ondeviceready:
if (device.platform == 'WinCE') {
window.history.back = function () {
var p = $.mobile.urlHistory.getPrev();
if (p) {
$.mobile.changePage("#" + p.pageUrl, { reverse: true });
$.mobile.urlHistory.stack.splice(-2, 2);
$.mobile.urlHistory.activeIndex -= 2;
}
}
}

Resources