Cannot manage user permissions in IE 8 atfer installing uComponents
I am having issues managing user permissions via the Users->User Permissions page after I install uComponents - but only in the Internet Explorer 8 browser.
These are all fresh Umbraco installs into new SQL databases. In all cases I can manage user permissions on the base Umbraco installs, but the User Permission screen throws javascript errors when creating the "content" treeview in the right hand panel once uComponents is installed.
Is Internet Explorer 8 not a supported browser or is this some sort of bug?
Thanks for reporting this. uComponents doesn't do anything with the Users section ... and doesn't contain any IE specific code, so not sure what the issue might be.
Are you able to copy-n-paste any of the JavaScript errors here? They may give us some direction.
Now here c is the <INPUT> html element for the content treeview (code is trying to put this into the DOM before the HTML element "#body_JTree") and k is an object. So the code appears to be setting the tabindex to an object.... boom.
Thanks Iain. It does look like there's an issue with the Keyboard Shortcuts module there ... not sure why it's not working with IE8 (especially in the Users section).
If you aren't using the Keyboard Shortcuts feature, then you can disable it in the Web.config's <appSettings> section:
The original Umbraco installation which demonstrated the issue is coming from a third party vendor so I will query whether we can disable it in this way.
In all honesty, I'm not sure when this would be fixed - given the age of that specific codebase against a legacy web-browser ... but happy to take patches, pull-requests, etc.
Lee, not sure if you are the person to answer this query but if not perhaps you can point me to someone who can....
Downloaded the 5.4.1 and 5.2.0 codebases and both seem to work the same in this area. My problem is coming from this piece of code in the resource file uComponents.UI\Resources\Scripts\jQuery.tree.keyboard.js
var el = $("<input type='text' style='position:absolute;left:" + FAR_LEFT + "px'>"); var tabIndex = tree.settings.plugins.keyboard; if (tabIndex) { el.attr("tabindex", tabIndex); }
You can see that this fires off jQuery code to set the "tabindex" attribute of the INPUT element to the contents of keyboard. However, keyboard is an object as defined in file tree-extensions.js:
What would be the purpose of the el.attr("tabindex", tabIndex) call? I thought tabindex attribute, even under HTML5, is only ever an INTEGER and here we're assigning an object?
I haven't had time yet to debug under IE9/Firefox/Chrome and see why they handle this object assignment differently (no JS error - could be they evaluate ([object]+"") in a different way from IE8 and hence no error) but I will get onto it.
I too am having issues with a Type Mismatch javascript error in IE, but in my case it stops IE7 rendering the content tree and the main edit panel which basically renders the Umbraco backend useless in IE7.
Initial debugging brought me to this thread so it looks like the same issue to me but I still see the error after adding the KeyboardShorts key to my web.config.
I'm using Umbraco v4.11.4 and uComponents 5.3.2, can you confirm the web.config key should work on that version?
@Simon - to disable the keyboard shortcuts completely, you will need to remove the HttpModule called 'uComponentsModule' from both the "system.web/httpModules" and "system.webServer/modules" sections.
I looked at that AppSettings key ("ucomponents:KeyboardShortcuts"), but it doesn't currently do anything - think it was a placeholder for a future option, (undocumented).
Thanks for that update Lee, the ucomponents:KeyboardShortcuts key not having any effect was something I was going to raise based on your previous response.
I'd even looked at the code and the only area I saw the key being used was in the uninstaller!
I just made the upgrade to uComponents 5.4.1 and now the admin content tree no longer works in IE 8, as well as IE10. (those are all I've bee able to test so far) I'm getting a simialr Type Mismatch error. Has anyone made progress with this? The majorty of my admins will be using IE so this is a huge deal.
The tabindex thing is an old typo that hasn't done any harm until now (maybe) and is related to keyboard navigation in trees.
Does the exception just show up in console or does it also prevent you from setting permissions?
Try removing <add name="uComponentsModule" type="uComponents.UI.uComponentsModule, uComponents.UI" /> under <httpModules> and <modules> in web.config and see if that solves the issue.
The purpose of the tabindex attribute is to put the trees into correct tab order but the code doesn't do that. I have added "var tabIndex = tree.settings.plugins.keyboard.tabIndex;" to the script so it's corrected for future versions
I have just tested uComponents 5.4.1 with Umbraco 6.0.3 in IE. (Tested IE8 mode in IE10) and I don't have any issues with permissions. Chrome showed the exception you mention in the console once but it didn't prevent me from setting permissions.
Cannot manage user permissions in IE 8 atfer installing uComponents
I am having issues managing user permissions via the Users->User Permissions page after I install uComponents - but only in the Internet Explorer 8 browser.
Combinations tried:
Umbraco 4.9.1 + uComponents 5.2.0
Umbraco 4.9.1 + uComponents 5.4.1
Umbraco 4.10.1 +uComponents 5.2.0
Umbraco 4.10.1 +uComponents 5.4.1
Umbraco 4.11.5 + uComponents 5.2.0
Umbraco 4.11.5 + uComponents 5.4.1
These are all fresh Umbraco installs into new SQL databases. In all cases I can manage user permissions on the base Umbraco installs, but the User Permission screen throws javascript errors when creating the "content" treeview in the right hand panel once uComponents is installed.
Is Internet Explorer 8 not a supported browser or is this some sort of bug?
Hi Iain,
Thanks for reporting this. uComponents doesn't do anything with the Users section ... and doesn't contain any IE specific code, so not sure what the issue might be.
Are you able to copy-n-paste any of the JavaScript errors here? They may give us some direction.
Thanks, Lee.
The error comes from JQuery.js file and this function:
set:function(a,b,d){vare=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}
initial javascript debugging has locals of d="tabindex", and b is some sort of Object so <<e.nodeValue=b+"">> fails with a type mismatch.
Going up the call stack four levels I see this code:
k=b.settings.plugins.keyboard;k&&c.attr("tabindex",k)
Now here c is the <INPUT> html element for the content treeview (code is trying to put this into the DOM before the HTML element "#body_JTree") and k is an object. So the code appears to be setting the tabindex to an object.... boom.
Any help appreciated.
Thanks Iain. It does look like there's an issue with the Keyboard Shortcuts module there ... not sure why it's not working with IE8 (especially in the Users section).
If you aren't using the Keyboard Shortcuts feature, then you can disable it in the Web.config's <appSettings> section:
Cheers, Lee.
Thanks for the quick response Lee.
The original Umbraco installation which demonstrated the issue is coming from a third party vendor so I will query whether we can disable it in this way.
Should I put a codeplex bug report in place?
Sure, please raise a bug on our CodePlex, thanks.
In all honesty, I'm not sure when this would be fixed - given the age of that specific codebase against a legacy web-browser ... but happy to take patches, pull-requests, etc.
Thanks, Lee.
Lee, not sure if you are the person to answer this query but if not perhaps you can point me to someone who can....
Downloaded the 5.4.1 and 5.2.0 codebases and both seem to work the same in this area. My problem is coming from this piece of code in the resource file uComponents.UI\Resources\Scripts\jQuery.tree.keyboard.js
var el = $("<input type='text' style='position:absolute;left:" + FAR_LEFT + "px'>");
var tabIndex = tree.settings.plugins.keyboard; if (tabIndex) {
el.attr("tabindex", tabIndex);
}
You can see that this fires off jQuery code to set the "tabindex" attribute of the INPUT element to the contents of keyboard. However, keyboard is an object as defined in file tree-extensions.js:
r.plugins.keyboard = {
//tabIndex: 1,
onnavigation: function () { <SNIP> },
customHandlers: { <SNIP> }
};
What would be the purpose of the el.attr("tabindex", tabIndex) call? I thought tabindex attribute, even under HTML5, is only ever an INTEGER and here we're assigning an object?
I haven't had time yet to debug under IE9/Firefox/Chrome and see why they handle this object assignment differently (no JS error - could be they evaluate ([object]+"") in a different way from IE8 and hence no error) but I will get onto it.
Hi Lee,
I too am having issues with a Type Mismatch javascript error in IE, but in my case it stops IE7 rendering the content tree and the main edit panel which basically renders the Umbraco backend useless in IE7.
Initial debugging brought me to this thread so it looks like the same issue to me but I still see the error after adding the KeyboardShorts key to my web.config.
I'm using Umbraco v4.11.4 and uComponents 5.3.2, can you confirm the web.config key should work on that version?
Many thanks
Simon
@Simon - to disable the keyboard shortcuts completely, you will need to remove the HttpModule called 'uComponentsModule' from both the "system.web/httpModules" and "system.webServer/modules" sections.
I looked at that AppSettings key ("ucomponents:KeyboardShortcuts"), but it doesn't currently do anything - think it was a placeholder for a future option, (undocumented).
Cheers, Lee.
Thanks for that update Lee, the ucomponents:KeyboardShortcuts key not having any effect was something I was going to raise based on your previous response.
I'd even looked at the code and the only area I saw the key being used was in the uninstaller!
I just made the upgrade to uComponents 5.4.1 and now the admin content tree no longer works in IE 8, as well as IE10. (those are all I've bee able to test so far) I'm getting a simialr Type Mismatch error. Has anyone made progress with this? The majorty of my admins will be using IE so this is a huge deal.
Thanks.
I have just got round to testing the fix as outlined in Lee's post to me. I can confirm it has fixed all my issues with IE rendering.
Thanks Lee
The tabindex thing is an old typo that hasn't done any harm until now (maybe) and is related to keyboard navigation in trees.
Does the exception just show up in console or does it also prevent you from setting permissions?
Try removing <add name="uComponentsModule" type="uComponents.UI.uComponentsModule, uComponents.UI" /> under <httpModules> and <modules> in web.config and see if that solves the issue.
The purpose of the tabindex attribute is to put the trees into correct tab order but the code doesn't do that. I have added "var tabIndex = tree.settings.plugins.keyboard.tabIndex;" to the script so it's corrected for future versions
I have just tested uComponents 5.4.1 with Umbraco 6.0.3 in IE. (Tested IE8 mode in IE10) and I don't have any issues with permissions. Chrome showed the exception you mention in the console once but it didn't prevent me from setting permissions.
Thanks Niels Kühnel
I commented out the two instances that you mentioned and can now access everything again in IE.
Thanks.
is working on a reply...