Forum OpenACS Development: Making OpenACS useful out of the box

Collapse
Posted by Lars Pind on
Hi All

Okay, here is the description of what I have been working towards ever since I joined this community in earnest about a year and a half ago. And I think we're finally at the point where we can simply do it ...

The plan is to make OpenACS a product, in *addition* to being a toolkit. To make OpenACS do something useful in a usable way out of the box.

This is what .LRN does for e-learning, but it's not very well integrated with the rest of OpenACS, and it has some UI and navigation problems which are hard to solve. That's why I'm attacking it in vanilla OpenACS and Subsite first, then we can integrate it into .LRN later.

The areas of functionality where I find OpenACS relevant are:

- Basic groupware: Discussions, calendar, etc. Basically .LRN.

- Blog/photo/personal site

- CMS

- Project management: Basically groupware with ticket-tracker, logger, feature tracker, and other applications to show up under the .WRK umbrella.

The first area I'm attacking is groupware, because that's where we're the closest to being there.

In fact, I think we can realistically get this done by the 5.0 release in late August. Hence I've dubbed it 'The Fall Plan'. Hm.

Okay, then. I wouldn't be me if I hadn't put up a few pages under Collaboraid's For Developers section.

http://www.collaboraid.biz/developer/fall-plan

What you might notice is that the list of items is actually fairly short, and that a number of them are marked 'done'. Yes. I've completed a number of these things. Not fully tested, and not ported to Oracle, and nothing has been committed yet.

I'm posting here to get feedback on my thoughts and approach, before I finish up and commit anything.

Take a look here. Sign up for an account, as registered users have admin on the /my-group/ subsite.

http://openacs-4-6.cph02.collaboraid.net/my-group/

(This is a dev server, so if you're reading this post a few weeks from now, go look in CVS instead of on our dev server.)

Take a look at the following items in particular:

- navigation

- member list (including making people admins)

- administration -> applications (delete doesn't work, edit is missing, reordering is missing, deactivating, so the tab doesn't show up is missing, but it's a lot simpler than the site-map)

- administration -> permissions: This is actually an include-template, which can be included on any pgae to let you set permissions for a certain object. The current 'add user' page isn't scalable, but we can fix that.

- administration -> parameters: This is a special movable-type-style for the form builder. So this page is actually using ad_form.

- administration -> advanced is the old index page, which I'd like to get rid of entirely, although it still has some advanced rels-stuff that we might as well keep the UI for, as it's the only one we have and it actually works.

- your account page is cleaned up quite a bit, and now uses the ad_form to edit your settings. Your account, login and logout links link to the relevant pages in the local subsite, thus keeping in line with your subsite master template.

- community-member page is cleaned up. I basically got rid of all the useless listing of objects.

- I also added a link to site-wide admin to the permanent links if you're a site-wide admin, so it's easier to access.

Lots of things still to be done, and I just dicovered tonight that it renders kinda crappy on IE, but I hope you get the notion of where I'm headed.

So what do you all think?

Does this take OpenACS in the right direction?

Should I go ahead and finish up, document, and commit these things?

/Lars

Collapse
Posted by Dave Bauer on
Lars,

I like this direction. Every project done with OpenACS I have seen has had to rewrite the admin pages to be usable by the clients. This is a good step.

I noticed you have TODO markers for description and photo etc for groups. I would like to suggest either using the existing CR cr_item_rels table or figuring out a better general way to do this.

Collapse
Posted by Chris Johnson on
Bravo!--Lars, by all means, please commit this and let's push ahead!

This is exactly where I'm going ... slowly in my personal growth with openacs.

I want to work torward some semblence of this (some additions to Lars's):

- Basic groupware: Discussions, calendar, etc. Basically .LRN.
- Blog/photo/personal site
    - .Family: an extension of personal site, a portal for things like family (photo) albums, history, etc.

- CMS: the publishing side (basically a publish workflow)
- CMS + wiki + slurp word docs + autoclassifiacation = Knowledge Management (KM) for large scale orgs
- Project management: Basically groupware with ticket-tracker, logger, feature tracker, and other applications to show up under the .WRK umbrella.
  - OpenACSForge would be so much better than The Other Forge that is isn't funny 😉

Further, and this is important, each "product" should be *only* a subsite. There should be no such thing as the main site--it should always be, "which product (subsite/metapackage) would you like to install/mount now" during the setup process. One such subsite could then be "portal" in which you stitch together as many products (which are each subsites by their very nature) as you like...

To me, a product is these things:
- a cohesive roll up of many modules
- a branding of openacs
- a subsite

This gives someone who installs OpenACS MegaBlogger Personal 2.0 the ability later to install OpenACS .Family on the same expensive hosted machine and have the data model make sense

Collapse
Posted by Mohan Pakkurti on
Lars,

This is great! Your work is definitely in the right direction.
It helps a lot to get our toolkit useful out of the box,
and the problem is not easy. So, I appreciate that you are taking this on :)

/Mohan

Collapse
Posted by Bjorn Thor Jonsson on
This plan, and work already done, is fantastic!

I couldn't view /my-group/admin/ on your dev server though I signed up.

Do you plan to define layout solely with CSS and use no tables for that purpose?  That would open up the possibility to supply several layouts for users to pick out of the OpenACS box (without using the skin package, is that obsolete?).  Maybe it would be possible to attract people with design and css skills to create sitewide OpenACS CSS skins, something like what is going on at http://csszengarden.com/ .  It's also a nice feature to offer each visitor to choose a layout, like at http://meyerweb.com/

Collapse
Posted by Lars Pind on
Hi Bjorn,

Sorry, I reinstalled the server and forgot to grant admin to registered users. Done now.

Yes, it's pretty much only div's and CSS, no tables. Except for the top. I still haven't found a way to layout things horizontally with div's the way you can with tables. I'm enclined to think it cannot be done.

/Lars

Collapse
Posted by Jonathan Ellis on
you can indeed layout things side-by-side with DIVs, but unfortunately it's more broken than not in IE 5 and 6.  You can use IE-specific workarounds to make it happen, but it's enough of a pain that IMO it's not worth it.
Collapse
Posted by Eric Wolfram on
I looked at that UI and here are some general thoughts:

* logger -- time tracker -- excellent application that I used extensively in 3.2.5 version of ACS. I like the new expenses part. I'm really happy to see it again -- thank you. One thing that I always thought would be cool, is a button that I could push which would tell me how much time goes by until I push it again. That way, when a client calls, I would push the button and when I hung up I could push it again and it would ask me the project and for a comment and then log how much time went by. (I'm not sure if that is even possible in HTML.) Also, I like the 3.2.5 calendar view very much -- it was excellent UI for logging time at the end of the day (and to see weekly totals) -- and the reporting features were very handy.

* tables
I still use tables and I would like to understand how to use div tags to do layout better. Any examples in the openACS CVS yet? Any pointers to good docs?

* tabs
Tabs are good in some instances, usually within an application. From my experience in building web sites, I find that global navigation is limiting. I might be missing something, but why use tabs here? Can a user limit the use of tabs here easily, or decide which tabs should appear? Sites that use the / page as the true index page with context sensitive navigation and no global navigation are the most flexible and scalible.

* customer database
I used that in 3.2.5 and I entered more then 150 customers plus ample correspondence. That application alone could motivate many small businesses to adopt openACS (which, presumably, would be good for all involved.) The ideal situation would be to integrate that application with webmail and provide import/export from palm, Act and Salesforce. Salesforce just upped their rate. That's their business model -- get people hooked and then up their rate. I bet if OpenACS had even a basic version, we could get small businesses to switch to OpenACS for that application alone. If I ever get up to speed on coding I'd like to help out, but I don't think I could get very far at this point. But I am willing to talk about it 😊

Okay, with that I'll say -- thank you and "Keep up the excellent work" -- these are just some thoughts and no big deal.

Collapse
Posted by Bjorn Thor Jonsson on
I still use tables and I would like to understand how to use div tags to do layout better. Any examples in the openACS CVS yet? Any pointers to good docs?

I've taken the belive that no design should be done in html, only semantic partitioning with divs, all layout work done in css, and we now live in times where this is a practical option. I haven't obtained the neccessary skill, but here are a few resources I'd like to study better, hope you find them useful:

Collapse
Posted by Jarkko Laine on
Björn,

Like Lars, I've not found a reliable way for horizontal formatting without using tables.

The markup below:

<div style="float: left; width: 50%">foo</div>
<div style="float:right; width: 50%;">bar</div>

does only work for so long when the browser window is wide enough for the whole page, but as soon as the user makes it smaller, the latter div drops down to the end of the page. I'm not a css expert, so if there's a way to avoid this, please enlighten me.

Collapse
Posted by Tom Jackson on

I'm going to apply the Tigris.org stylesheets to a few modules and see what happens. They seem to have some simple ways of getting a great effect from css.

Collapse
Posted by Bjorn Thor Jonsson on
Jarkko,

I'm definitely no css expert either, just a wannabe.  Since I saw those two websites:  http://blind.is/ and http://kosning2003.is/ I've been a beliver.  Try saving any page at those sites as html only, and then open it locally.  When I did that my reaction was:  Wow :)

Collapse
Posted by Jarkko Laine on
Bjorn,

They're both pretty impressive, I'll have to take a look at their stylesheets as soon as I get back home this night. However, they both still get a bit messed up (the latter more than the first one) if you narrow the browser window beyond certain level. Note that this was just a quick test using one browser (Safari), so they might work better or worse with other, more popular, browsers.

But the bottom line is that they avoid the symptom I mentioned in my previous post, so there certainly is hope out there :)

Collapse
Posted by Dave Bauer on
Jarkko

Try this:

<div>
<div style="float: left; width: 50%">foo</div>
<div style="float: left; width: 50%;">bar</div>
</div>

(I am not totally sure you need the outside div :)

Collapse
Posted by Tom Jackson on
There was a related thread on css and div with a link to An Interview with Mike Davidson of ESPN. Although Mike was all happy about his company embracing the new Standards, ESPN only converted their home page to remove "most" tables. He even laments the problems of horizontal spacing. Their solution is to use exactly sized divs, which probably takes an army the size of their Graphics Department to work out correctly. They still get the benefit of faster download speeds on their home page, but it doesn't save any on design resources, as far as I can tell.

The Tigris Style Project makes a nice compromise: using tables where they have a real use, but really minimizing graphic elements, replacing them with css effects. They have three example pages:

  1. HTML usage sampler (simple HTML only)
  2. Sampler with base (Tigris and print) stylesheets applied
  3. Sampler with Tigris and instance-specific extensions (inst.css)
Collapse
Posted by Jade Rubick on
Lars, thanks for taking the lead on this. This is definitely a step in the right direction, maybe even a flying leap!

I can't wait to see this in the toolkit!