Creating interactive user-controlled ordering mechanisms on admin web interfaces?

K

Ken Fine

(originally posted to one of macromedia's groups; no help, so hopefully
someone here can help me out. I'm using VBScript ASP.)

When designing administrative interfaces to websites, we often need to
provide users with a mechanism to change the order of items that are listed
on the page.For example, the _New York Times_ website
(http://www.nytimes.com) lists a bunch of top news articles, and normally
these are ordered by purely mechanical criteria (e.g. datetime published.)
However, we sometimes want to allow our users a way to influence the list
order themselves, say, to allow a particularly newsworthy item to persist at
the top of the list.

I have not come up with a graceful and elegant way to offer an interactive
ordering capability on administration forms, as you see in many desktop
apps. You can design various hacks -- say, allowing the user to designate
items "high priority" to trump mechanized ordering solutions, or allow the
user to assign an order integer or letter to each items. However, all of
these methods have a hacky, sucky quality to them.

What I would like is a means of allowing users an easy-to-use and
interactive way to adjust the order of listed records. Ideally I would like
some way that the user could select an item and/or make a single item go up
and down in the list on the admin page, and have that list order reflected
on the final page. Perhaps you print an imagemap "up" and "down" arrow
adjacent each listing, and pressing the "up" or down" button moves it up or
down. Or perhaps you have some client-side javascript widget that allows
selection and then movement via a single set of up/down controls.

There's three components to this: how you handle the ordering on the
database side, how you handle the UI issues on the web application, and how
you update the database information appropriately based on the user's input.

The hardest part of this problem is figuring out what needs to happen on the
database side: you have a collection of "ordering" values, with one each
presumably associated with each database record, and presumably you need ALL
the items updated for the collection of items you're administering.
Otherwise, you end up with messed-up situations where there are two
identically ordered items and the application doesn't know the right thing
to do.

Or maybe you somehow store the list order of items for a "publication" in a
single field on tblPubs, split the itemIDs out into an array, and update as
necessary. Somehow this approach feels like it may invite the wrath of the
database purity zealots, and it may not work well for open-ended
publications (e.g. an online newspaper that is continually updated.)

There may be a widget in ASP that's a cousin to concept like "queues" or
"stacks" that could help us.

Answering a small piece of my own question: this article has some tidbits
that may help:
http://www.4guysfromrolla.com/webtech/102799-1.shtml

Some smart person out there has solved this, and maybe you even have a link
to an article or tutorial. Can anyone suggest a solution and/or a starting
point?

Thanks,
KF
 
K

Ken Fine

sorry about the echo there, folks. :)


Ken Fine said:
(originally posted to one of macromedia's groups; no help, so hopefully
someone here can help me out. I'm using VBScript ASP.)

When designing administrative interfaces to websites, we often need to
provide users with a mechanism to change the order of items that are listed
on the page.For example, the _New York Times_ website
(http://www.nytimes.com) lists a bunch of top news articles, and normally
these are ordered by purely mechanical criteria (e.g. datetime published.)
However, we sometimes want to allow our users a way to influence the list
order themselves, say, to allow a particularly newsworthy item to persist at
the top of the list.

I have not come up with a graceful and elegant way to offer an interactive
ordering capability on administration forms, as you see in many desktop
apps. You can design various hacks -- say, allowing the user to designate
items "high priority" to trump mechanized ordering solutions, or allow the
user to assign an order integer or letter to each items. However, all of
these methods have a hacky, sucky quality to them.

What I would like is a means of allowing users an easy-to-use and
interactive way to adjust the order of listed records. Ideally I would like
some way that the user could select an item and/or make a single item go up
and down in the list on the admin page, and have that list order reflected
on the final page. Perhaps you print an imagemap "up" and "down" arrow
adjacent each listing, and pressing the "up" or down" button moves it up or
down. Or perhaps you have some client-side javascript widget that allows
selection and then movement via a single set of up/down controls.

There's three components to this: how you handle the ordering on the
database side, how you handle the UI issues on the web application, and how
you update the database information appropriately based on the user's input.

The hardest part of this problem is figuring out what needs to happen on the
database side: you have a collection of "ordering" values, with one each
presumably associated with each database record, and presumably you need ALL
the items updated for the collection of items you're administering.
Otherwise, you end up with messed-up situations where there are two
identically ordered items and the application doesn't know the right thing
to do.

Or maybe you somehow store the list order of items for a "publication" in a
single field on tblPubs, split the itemIDs out into an array, and update as
necessary. Somehow this approach feels like it may invite the wrath of the
database purity zealots, and it may not work well for open-ended
publications (e.g. an online newspaper that is continually updated.)

There may be a widget in ASP that's a cousin to concept like "queues" or
"stacks" that could help us.

Answering a small piece of my own question: this article has some tidbits
that may help:
http://www.4guysfromrolla.com/webtech/102799-1.shtml

Some smart person out there has solved this, and maybe you even have a link
to an article or tutorial. Can anyone suggest a solution and/or a starting
point?

Thanks,
KF
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top