The up/down buttons on the child lists are still functional, even when they are apparently "disabled" - this is a usability problem. It will also affect the weighting which could cause some confusion when adding new nodes.
| Comment | File | Size | Author |
|---|---|---|---|
| #5 | outline_error.png | 18.24 KB | niklp |
Comments
Comment #1
ronan commentedFixed, sort of...
The weight issue you mention should not be a problem. Node weights are normalized after modification so there should be no ill effect of clicking these links. Let me know if you find otherwise.
As for the usability issue: I have put some code into the javascript to prevent these links from doing anything (I also fixed the a bug in the javascript which was, I think, preventing it from working at all). The no-javascript fall back version still has the issue, but I'm not sure that it's a big enough problem to warrant changing the code around to the degree that would be needed.
I'm gonna call this one fixed, but if any non-javascript using users strongly disagree with me, I'll open it again with a low priority.
Comment #2
niklp commented"Node weights are normalized after modification" - that's good, I didn't think you'd have thought of that :) I assume this means that all weight are recalculated... or something? Does this have a performance hit?
As regards the usability - I'm afraid I disagree; this really ought to be changed in the php, rather than the JS I think. If it does not degrade gracefully, it's a bit of a no-no in my book. I'm looking forward to the day when I can admin my site on my mobile, which this would break straight off, so I'm putting my foot down - if that's ok?! :) I can't see that it would be that hard? I mean if it degrades to php only, then you're rebuilding the table code anyway, right? So fairly easy, no? Maybe I'm wrong, but either way I think that "little things" like this soon add up, and should be nipped in the bud whenever possible...
Thanks for your work though! :)
Comment #3
niklp commentedComment #4
niklp commentedSorry, forgot to change status.
Comment #5
niklp commentedI'm going to add some more to this: as of the 1.2 HEAD, the JS fails even more. In the site outline, the arrows are incorrectly notated, and this actually changes from time to time, rather randomly.
See attached screengrab.
Comment #6
ronan commentedIn theory this is not the most efficient way to handle this, in practice I've used it with nodes with a couple of thousand children, and the performance hit is acceptable (and the ajax pretty much hides the delay from the user.)
I'm afraid you lost me here a little, how would a link that does nothing break the usability on a mobile phone? I agree that the UI is not 100% perfect here, but if you click a link to move the top item in a list up and nothing happens how big is the issue? I mean if you're on the homepage of a site (like drupal.org say) and you click the homepage link nothing happens. You stay on the home page. You can argue that it's not perfect UI, as you have a useless link sitting there doing nothing, but I've pretty much never seen any body consider it worth doing anything about.
A little background on this (so you don't think I'm just being pointlessly stubborn and argumentative): It used to work just as you describe. The first 'up' link and the last 'down' link where not only partly transparent, they weren't even links. It worked great and the code was simple. Then by request of somebody who uses the system a lot, I added the ajax. That saved that person a huge amount of time (try moving an item from the bottom to the top of a list with javascript turned off... you'll see) but it complicated things a little. If the first 'up' button is not a link then when you move the top item down, the 'up' button will not work unless I use javascript to restructure the markup to put the link back (and remove it again if you move the item back up). Not impossible, but not worth the effort at the time.
Then things became even more complicated. I built a site with many thousands of nodes with the largest section pushing 2k children. Needless to say these could not all be listed on the same page, so I had to build pagination. Now the rules become even more complex, the last item on a page may not be the last child and the first item on a page may not be the fist child. In these cases the first up link and last down link need to be non-ajax links (to move an item onto the next or previous page). Again, not impossible, but just another layer of complexity.
I'm not saying this cannot be done, it's just not trivial, and having a link that does nothing is not in my book the worst ui issue in the world, especially given the fact that a) it's only an issue for the ~6% of people using the web without js b) the link is clearly marked (in most browsers) as inactive and c) there is no possible logical meaning of an up link at the top of a list. Most people will probably be able to resist the temptation to click it, and probably won't be too upset when it does nothing of interest.
I'll leave this here as low priority, but unless you can convince me that this is more important than all the other bugs and features I can work on, I woulnd't hold my breath on it.
Comment #7
ronan commentedOk, this is a bigger problem. I can't reproduce this though. What browser are you using?
Comment #8
niklp commentedYou make some further fair points in #6 :) How about just ignoring the button blanking altogether in PHP and having a stab in JS only? Easier, or the same issue? I'm tired and half awake and haven't fully considered the outcome of what I'm saying...! ;)
Re #7: WinXP/SP2/FF 2.0.0.9. Checked it on IE7 as well though, exactly the same result. Similar under garland and custom theme also. It's probably me, this site is absolutely borked now, I've fiddled with it til it's basically broken...!
Comment #9
ronan commentedIt should be doing what you describe. If you have js enabled, the first 'up' and last 'down' link should be partly transparent and should not be clickable. If you have js off they should be partly transparent and clickable (though that click will do nothing). Are you experiencing something different?
If you are, it might be due to the js error you're experiencing, I'll try and reproduce it in a test environment and get back to you with what I find.
Comment #10
dgorton commentedClosing as /very/ old issue w/ very old code. Please reopen if still relevant.