- david will release soon (next week) the simplest
version of his role
management interface then release regurlarly new version.
[...]
Could you sync with with so that you review his code and integrate in
the new release of SmallWiki and we get the kilana SmallWiki always
running the latest version ?
Cool, I did had a brief look at the source-code and the functionality
of the latest version. Some things you might want to consider:
- The generated output has to be valid XHTML, that means you have to
remove all the layout information (e.g. attributeAt: 'bgcolor' put:
'#D5D5FF' or #bold:) from your rendering-code. This is like going to
the roots using only <div>, <span> and <a>, well I do not take it too
serious: you might see some <h1>, <p> and in rare cases some <table>
tags in my code.
- You still don't use the callback mechanism properly. Why are you
creating submit-buttons and then deciding what to do by comparing the
button strings? It is possible to directly assign blocks or
message-sends to buttons! I should probably consider writing some
additional SmallLint rules ...
- Please do not use JavaScript, the things you are doing might be done
easily with simple http. The application shows quite a strange
behaviour if you have disabled JavaScript, as I usually do on my
machines.
- You have references to non-standard (non-existing) css-styles.
- There is 1 message sent not implemented.
- You have 7 references to undeclared variables.
- You should get rid of all those #isKindOf: message sends.
- Instead of using the #, operator you might want to use "String new
streamContents: [ :stream | stream nextPutAll: ... ]", a great thing
that I 'ported' from Squeak to build up strings.
- What the hell are you doing on the class side of Utilities? I don't
understand ... Wouldn't be "SmallWiki at: aString asSymbol ifAbsent: [
nil ]" or "self environment at: aString asSymbol ifAbsent: [ nil ]" do
exactly the same thing?
- There are some code duplications, e.g. AdminRoles>>renderContent and
AdminUsers>>renderContent
- In the same messages as stated in the above example you should use
"aString isEmpty ifTrue: [ ..." instead of "aString = '' ifTrue: [
..."
- David should check with you how/if this is possible
to have sessions
information to improve the folder/paste editions
It is quite simple doing like Zope and using cookies. You might want to
have a look at the python source-code, it is quite instructive ...
Hope that helps,
Lukas
--
Lukas Renggli
http://renggli.freezope.org