TODO list and ROADMAP

NOTE: [1.0] denotes features to be implemented for 1.0

INTERESTING BUGS

* update schemabrowse tree on serverlist update (browsetree already done)
* Change schemabrowse tree to ctree, this would allow for the update thing
  (see above) to work as well.

* search mode:
	- multiple selections, abstract selection list function for delete,
	  export to LDIF etc

* Memory leaks - though it has been getting better. I do no longer belief them
  to be (purely) gtk related.
* search mode: (peter)
  Take displaytypes into account when building the search result list. It does
  not make sense to show a jpegPhoto as a string...
* Honor RFC2253 and the possible hex-encoding there even for OpenLDAP 2.0.x
  More generally: Deal with special characters in DNs.
* [1.0] Better error reporting of LDAP error situations. Currently we handle
  LDAP_SUCCESS and LDAP_SERVER_DOWN but ignore the rest. Pointed out
  indirectly by Bernhard Reiter <bernhard@intevation.de>.
* [1.0] Think about the moving stuff in browse mode: 
  Either
    - Should move deletion out of the moving business and delay
      it until _after_ we have ended the moving
    - OR should we delete and retry in order to circumvent any
      sizelimits???

UNINTERESTING BUGS

* load_context errors should pop up after mainwin

MINOR

* use scrolled area in error_flush: ldifadd.c may generate 1000s of errors

ENHANCEMENTS

* [1.0] Follow referrals
  - somehow indicate a referral in the browse tree and allow to 
    follow it, maybe through the context menu?

* templates: allow defaults? 

* ability to limit visible attributes for objectclasses (do not show
  empty attributes one never uses anyway) (suggested by Chris Jackson
  <cjackson@ghsinc.com>) - partly done: missing: make configurable in 
  what one is not interested at all

* Allow to "apply" a template to an already existing object + add
  default values from template as well (suggested by Chris Jackson
  <cjackson@ghsinc.com>)
* import from LDIF

* dt_oc: allow for automatic addition of intermediate objectClasses. Add 
  a default "top" template, with only the single "top" objectClass. These
  two changes allow for efficient addition of objects of a single "class".
  Suggested by Emil Assarsson <emil.assarsson@bolina.hsb.se>

* nested main loop invocations during possibly long running LDAP operations
  (any search), allow to interrupt running operations in certain situations.
  See mail by Emil Assarsson <emil.assarsson@bolina.hsb.se> dated
  Wed, 09 Oct 2002 19:40:37 +0200.

* Better keyboard support (at least for main menu) (peter) - will probably 
  have to wait for gtk2

* [1.0] never do ldap_add when moving trees. Use triangulation like with the
  towers of hanoi

* [1.0] More displaytypes
  + PKCS7 and PKCS12 browsers

* [1.0] Rewrite drag-and-drop:
  - _only_ use ldap_modrdn when moving trees within one server. This
    allows to take care of hidden attributes implicitly

* Rewrite the schema browser to also use the GtkCTree widget.

* [1.0] Improve LDAP error reporting

BLUE SKY

* schema designer (when OpenLDAP supports writable schema)
* generate change and undo log in LDIF
* [post 1.0] work towards gtk2

--------------------------------------------------------------------------

FIXED BUGS / IMPLEMENTED ENHANCEMENTS

* search mode:
	- change in server config should initialize searchbase combo, too
          (seems to be done for quite a while!)
	- RMB on entry in search mode shouldn't deselect the entry
          (cannot reproduce)

* update browse ctree on serverlist update
* make refresh_mode_serverlist(): combo in search mode, delete/add/change in
  browse mode. tablist can be used for this now... (done for browse and search
   mode already, similar to the above issue)

* take schema from entry

* Take care of possible buffer overflow situations. Pointed out by
  Bernhard Reiter <bernhard@intevation.de>. As always, there may be
  issues remaining.

* [1.0] Support for the extensibleObject object class

* first startup: deleting default localhost server segfaults (FIXED??)

* [1.0] More displaytypes
  + Most notably a calendar to enter dates and times

* [1.0] encode passwords in .gq - this doesn't add any real security, but at
  least the password cannot be easily remembered if one happens to
  glance at it. (This is similar to why HTTP basic authentication
  encodes the password).

* [1.0] LDAP URI support in addition to server/port [check patches by
  "rpd, Magosnyi" <mag@bunuel.tii.matav.hu> and 
  Albrecht Dre <adress@idsystems-ag.de>]

* put up rootDSE info in browse mode's server detail (cn=monitor?)

  -> well, we now have some interesting information there, but
     probably not what Bert had in mind.
  UPDATE (2002-09-25): Now we actually take information directly 
  from the root DSE

* [1.0] Fix dt_password.c: handling of the construction of encoded passwords
  (get rid of any strcpy, strcat and only using GByteArray methods)

* [1.0] Allow to change displaytypes on-the-fly

* mainwin: ^c makes a browse tab!
* get rid of hardcoded dep on libssl, only link when needed
* get rid of hardcoded dep on libcrypto - now DISPLAYTYPE_PASSWORD is turned
  off if we do not have crypto support available.
* probe for V2 or V3 on connect, store in struct ldapserver. Use ber_free
  only if V3 supported.
* occasional core-dumps in brose mode - might be related to browsehash_free, 
  hard to reproduce (hopefully fixed)
* I18N (peter)
* Make the search tab context menu (right aka button 3 click) work the same
  way as it does in the other tabs
* When using the dt_oc combo box menu and _not_ selecting a new
  objectClass the objectClass gets deleted from the attribute. This
  may lead to data loss (attributes may be deleted) if the changes get
  applied afterwards. ADDITIONAL NOTE: to make clear what I mean:
  selecting the drop down menu for the dt_oc combobox and then
  dragging the mouse selects the first element of the drop down list,
  which is the empty element. Releasing the mouse effectively removes
  the objectclass (peter)

  FIXED by putting the current value in the first place in the combo
  list. This also makes it easier to remember the old value of the
  combobox.

* Do not show the password in the preferences window if it has been
  entered interactively before (peter)

* changing the RDN suddenly dumps core!!! Seems to be related to 
  refresh_subtree! (peter)

* browse mode: refresh of subtree after RDN mod selects first entry
  in subtree -> find and select the entry with the new RDN instead
  NOTE: This seems to have gotten worse. When testing this, the behaviour
  was totally erratic (peter) - Fixed in new browse mode implementation

* check for the codeset ISO-8859-1 vs ISO8859-1 to be used for iconv
  in configure.in
