[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Devel] wls development and future



yesterday on irc i brought up the question about the further
development of the webin-ldap-skolelinux module. My question was:

what is the best and most promising way for further development?
What codebase should we use to continue?
What is out long term goal?

The situation as i see it is this: 

both codesbases are ugly, wls2 more so then wls1: one monolithic
pile of spagetti code, hardly any functions, hard to read, lots of
global variables. A maintanance nightmare.

wls2 has the better user interface. It follows better the human
way of thought and its way of thinking in concepts. (e.g.: one
main menu point for "add users", under which one can add both
single, mulitple and batches of users (from file), while "add
user" and "fileimport" are two seperate points in wls1.) The user
interface follows along and changes during different steps of
work (e.g: under "edit users" one gets presented first with a
search mask, then with a search mask and the search results from
the search, and one can operate on both...). unfortunatly it is
hard to really tell how this is supposed to work, since it is
really broken and i am guessing part of this from the code, which
has no comments.

wls1 works as it should. (i write this offline, and have no
access to the bug tracking system). I think Pere-Arne fixed it up
pretty well.

From a long-term perspective the userinterface in wls2 should be
used, and the code needs a rewrite anyway. But the simple "use
the code from wls1 and the user interface from wls2" does not
work. THe fact that both applications work differently and are
stuctured after their UI make it impossible to do so.

Petter (and any sane person, at that) wishes for layered and
structured code, which seperates HTML, application and backend to
make the code maintainable and extensible. This wish collides
unfortunatly with the long term goal:

Long term goal: 
Have an excellent Admin interface, get the webmin ldap user
module merged upstream, so we dont have to care about it any
longer. 

THe whole of webmin is perl-coding wise in a sorry state: no code
reuse, no modularity, hardly any indention, global variables,
awkward, antient use of perl syntax (perl1, as someone
suggested), functions dont return their results, they just print
them to stdout. This is the case in the whole sourcetree. If
we tried to submitt code useing CGI::Application and
HTML::Template, this will most likely not be accepted. Our code
would not fit in.

I propose to do the following:
Since wls1 works, we could ship that if we wanted to.
if we manage to get wls2 into shape (after restructuring it with
CGI::Application and HTML::Template) in time, we ship that. 
Once we have a nicely structured user interface we might notice
that this is one of the main "added values" of skolelinux and
decide to build on this. (i know that other thin-client
management and service providers think so, their web based admin
interface is one of their main focuses.) it would be easy to do
so with the CGI::Applicaton/HTML::Template framwork. Little
efford would be needed to seperate it from webmin.