# config

name: header
value:
  <html>
  <head>
  <base href="$baseurl/$current_page" />
  <title>$<project_name>: $<title></title>
  <link rel="alternate" type="application/rss+xml" title="RSS Feed"
        href="$baseurl/timeline.rss">
  <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
        media="screen">
  </head>
  <body>
  <table><tr><td>
  <script type="text/javascript"><!--
  google_ad_client = "pub-5900697597918482";
  /* banner */
  google_ad_slot = "9735919221";
  google_ad_width = 468;
  google_ad_height = 60;
  //-->
  </script>
  <script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </script>
  </td></tr></table>
  <div class="header">
    <div class="logo">
      <!-- <img src="logo.gif" alt="logo"><br></br> -->
      <nobr>$<project_name></nobr>
    </div>
    <div class="title">$<title></div>
    <div class="status"><nobr><th1>
       if {[info exists login]} {
         html "Logged in as <a href='$baseurl/my'>$login</a>"
       } else {
         puts "Not logged in"
       }
    </th1></nobr></div>
  </div>
  <div class="mainmenu"><th1>
  html "<a href='$baseurl$index_page'>Home</a>"
  if {[hascap h]} {
    html "<a href='$baseurl/dir'>Files</a>"
  }
  if {[hascap o]} {
    html "<a href='$baseurl/leaves'>Leaves</a>"
    html "<a href='$baseurl/timeline'>Timeline</a>"
    html "<a href='$baseurl/brlist'>Branches</a>"
    html "<a href='$baseurl/taglist'>Tags</a>"
  }
  if {[hascap r]} {
    html "<a href='$baseurl/reportlist'>Tickets</a>"
  }
  if {[hascap j]} {
    html "<a href='$baseurl/wiki'>Wiki</a>"
  }
  if {[hascap s]} {
    html "<a href='$baseurl/setup'>Admin</a>"
  } elseif {[hascap a]} {
    html "<a href='$baseurl/setup_ulist'>Users</a>"
  }
  if {[info exists login]} {
    html "<a href='$baseurl/login'>Logout</a>"
  } else {
    html "<a href='$baseurl/login'>Login</a>"
  }
  </th1></div>


name: footer
value:
  <div class="footer">
  Fossil version $manifest_version $manifest_date
  </div>
  <script type="text/javascript">
  var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
  document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
  </script>
  <script type="text/javascript">
  try {
  var pageTracker = _gat._getTracker("UA-11113174-1");
  pageTracker._trackPageview();
  } catch(err) {}</script>
  </body></html>


# reportfmt

title: All Tickets
cols:
  #ffffff Key:
  #f2dcdc Active
  #e8e8e8 Review
  #cfe8bd Fixed
  #bde5d6 Tested
  #cacae5 Deferred
  #c8c8c8 Closed

sqlcode:
  SELECT
    CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
         WHEN status='Review' THEN '#e8e8e8'
         WHEN status='Fixed' THEN '#cfe8bd'
         WHEN status='Tested' THEN '#bde5d6'
         WHEN status='Deferred' THEN '#cacae5'
         ELSE '#c8c8c8' END AS 'bgcolor',
    substr(tkt_uuid,1,10) AS '#',
    datetime(tkt_mtime) AS 'mtime',
    type,
    status,
    subsystem,
    title
  FROM ticket


# event

type: ci
user: root
comment:
  Removed binary libraries that were in my original snapshot for OSX, but 
  compltely useless for other platforms


type: ci
user: root
comment:
  Modifications to push https setup to the individual virtual hosts, as
  their certs are only valid for one domain name at at time


type: ci
user: seandeelywoods
comment:
  Added the new odie file manager plugin

  (Note it's a straight namespace code as opposed to an object.)


type: ci
user: root
comment:
  Modifications to increase the buffer size (and facilitate large file transfers) as well as to enable CGI


type: ci
user: root
comment:
  Added provisions for the htmlSave method to delete the site's
  "rss.html" file, triggering a regeneration if someone was clever enough
  to create it as a .tml file. ;-)

  Re-implemented search result on the wiki to properly pee out the 
  fields the scripter punches in for "showcolumns"


type: ci
user: hypnotoad
comment:
  Overhaul of the entire web-object system.

  All of the convoluted container object->nodeobject -> ??? 
  nonesense has been replaced with static namespaces.

  Wikis display properly.

  Still have to incorporate a page editor.


type: ci
user: hypnotoad
comment:
  Cleaned up, neatened up, and simplified the process of spawning and
  configuring virtual hosts.

  Added taourl stubs to handle generic parts of httpd configuration

  Tested all of my current sites with the new system


type: ci
user: hypnotoad
comment:
  Re-ordered operations to ensure the correct port is passed to httpd for initialization

  Moved weblogs back to /var/log/tclhttpd
  Added a fallback to /tmp if a path to /var/log/tclhttpd isn't possible


type: ci
user: hypnotoad
comment:
  Added public access vs private access files. Private access requires 
  a password, public access can be browsed and linked directly.


type: ci
user: hypnotoad
comment:
  Built in a tolerance for browsers maintaining several session cookies 
  at once. Needed for testing on a local machine as well as on production
  running on another.


type: ci
user: hypnotoad
comment:
  Moved the initialization of modules into the taourl::init script.

  If we load initialize on package load, we get the default config, not the
  site config


type: ci
user: hypnotoad
comment:
  Added functions for RSS feeds and podcasting

  Wiki nodes now read meta-information from the meta_info table

  Tclhttpd now emulates the raw style of queries given by wibble


type: ci
user: hypnotoad
comment:
  Created a centralized package index

  Moving webserver apps to their own directory, separate from the
  web server architecture


type: ci
user: hypnotoad
comment:
  Added a local configuration file for server specific settings

  Added a download image function

  Fixed the paths used by templates


type: ci
user: hypnotoad
comment:
  Added a preview to wiki items

  Added a "template" command that will sub in the entry for another page as block text


type: ci
user: hypnotoad
comment:
  Added a llama-html suite of widgets

  Fixed the wiki

  Fixed the smtp relay

  Removed the call to thread_init on webserver startup. (All initialization
  code should now be contained in httpd.rc)

  Fixed a goof in webserver startup

  Ported the webserver ui to tile

  Added a hook to allow the authentication module for the webshed to 
  accept either "password" or "plaintext" as the name for the field
  for the password.


type: ci
user: hypnotoad
comment:
  Introduced a new package loading mechanism

  Added the concept of ensemble methods

  Added a system for passing notificiations around to objects in a similar
  manner to bind in Tk


type: ci
user: hypnotoad
comment:
  Multiple fixes to codebale and autodoc. Both now use a 
  global uuid instead of an integer key.

  Ran autodoc tools on library

  Added a copy button to compliment save


type: ci
user: hypnotoad
comment:
  Fixes for loader to run in environments where TclOO is not available

  Re-ordered procs for tao-httpd to read in alphabetical order.

  Added C source code for vector3d


type: ci
user: hypnotoad
comment:
  Removed typedef of double to DBL

  Removed vector_add and vector_subtract, and replaced it with inline code
  that will add or subtrack across an entire matrix


type: ci
user: hypnotoad
comment:
  Renamed vexpr.c to TclVexpr.c

  Created TclVexpr.tcl to recreate TclVexpr.c if a new opcode is needed,
  as well as maintain the vexpr.n manual page

  Added Vector dot and cross products


type: ci
user: hypnotoad
comment:
  Modified the core of Odie to operate under Tcl8.5

  Added variable argument length to the yggdrasil's node_property
  method


type: ci
user: hypnotoad
comment:
  Added the recording of the filename to embedded sqlite objects.

  Added mutexes to the mother of all classes.

  Removed the organsExport method. Added a new method called "organ" to
  call up the object redirected by a graft. The functionality of 
  organsExport can be attained with [organ all]

  Graft no longer stores the object redirected as a local variable.

  Added option handling to moacs.

  Removed the dependence on the uuid package for the yggdrasil class.


type: ci
user: hypnotoad
comment:
  Updated the quick and dirty SMTP mailer to send out property formatted
  RFC 821 Mail FROM and Rcpt to lines


type: ci
user: hypnotoad
comment:
  Streamlined the login process. The server now only outputs a cookie 
  for the domain the user is accessing the page from.


type: ci
user: hypnotoad
comment:
  Added code to support direct URL logins

  Fixed sessionid interpretation code to handle Md5 hashes

  Fixed URL redirection


type: ci
user: hypnotoad
comment:
  Rewrote sqlitecon and console as tcloo objects.

  Ran the autodoc tool.

  Added an open-ended URL mapping system for the html browser.

  Renamed all odietk classes from odie. to odietk. (To help
  differentiate them)


type: ci
user: hypnotoad
comment:
  Added a general purpose C parse into the codebale project. Adapted from
  the routine to generate header files.

  Added the "noop" function which accepts any arguments and returns nothing.
  (Handy for dealing with "I want to send this command to an object. No I 
  don't care if the object doesn't exists!" cases.

  Added the concept of an "onion" object. Onion objects operate through
  subordinate objects "layers". 

  Made the logo for odie.megawidgets configurable.


type: ci
user: hypnotoad
comment:
  Added my new handy-dandy kitmaker "toadkit", an offshoot of TOBE

  Renamed library tools adapted from irm* to odie*

  Fixed a loader goof with odietk an glob implementations that do not 
  do dictionary sorts

  Added virtual url handlers for the html and browser widgets.

  Added handing for singleton object/classes

  Improved codebale


type: ci
user: hypnotoad
comment:
  Refactored the toadkit modules build process to make adding new modules
  less cumbersome. Added a module to build a dtplite executable needed 
  by the img package. Fixed the processing of command arguments by the 
  kit executable. Changed the name of the package manifest from 
  "pkgIndex.tcl" to "packages.tcl"


type: ci
user: hypnotoad
comment:
  Added lessons learned to the make files.

  Seperated out the process of building the packages from the process of
  make in the barekit.

  Added a missing source file for windows.

  ZIP installs under mingw now simply grab the mingw zip package.

  Added the compat/ headers from the tcl sources to the c headers
  for static builds.


type: ci
user: hypnotoad
comment:
  Add TK cflags and ldflags (when present) to static builds of the barekit

  Made alterations to the sample project makefile

  Created a specialize windows platform main.c file

  Moved the point where zinit is called and the VFS is mounted to before
  Tcl_Init() is called.

  Commented out the call to use the the built in tk console under windows.


type: ci
user: hypnotoad
comment:
  Rewrote the parser to use an SQLITE backend instead of arrays.

  Added the image files from the tclmacbak package.


type: ci
user: hypnotoad
comment:
  Ran the autodoc tool.

  Added a new scrollbar owidget.

  Added the ability to create tk-looking objects by calling the name of
  the class.


type: ci
user: hypnotoad
comment:
  Seperated out the odie:: class system from the odie:: package, and used
  it as a replacement for the tao:: class system. Renamed odietk to taotk.

  Yanked the concept of "immortals" from the tao system. (We now use dedicated
  commands and a rigged set of expected behaviors embedded in the mother of 
  all objects.)

  Also removed were the mesh, append, etc. ways of transforming the methods
  on pre-compile. I may add them back later, but the [next] handling provided
  by odietk is far superior in legibility of code and predictability of outcome.

  Signal processing has been enhanced. The process for renaming an object
  to a tk alias has been refined somewhat.


type: ci
user: hypnotoad
comment:
  Added a new dynamic GUI generation scheme slotted to replace/enhance
  llama on the Tk side. Added the makings for an embryonic user preference
  storage scheme.


type: ci
user: hypnotoad
comment:
  Ran the autodoc tool

  Fixed a bug in tk object destructor handling.

  Moved preference handling base code to the pages.tcl file. 

  Added an interactive GUI for manipulating the style sheet.

  Added primitives for putting together pages of dynamic widgets.

  Fixed a typo in the taotk loader

  Fixed several bugs in the vector dynamic widget system.

  Fixed a kink in the combobox based dynamic widgets.

  Improved the detection of options in the dynamic inference checks.

  Added methods for accessing the default value and global variable name
  for all dynamic widgets.


type: ci
user: hypnotoad
comment:
  Scrollframe is now handled as a native taotk construct.

  Modified the stylesheet handlers to accept substyles and row colors.


type: ci
user: hypnotoad
comment:
  Renamed the typetree's reference to it's widget to treewidget.

  html browsers now use the same destructor bindings as everyone else.


type: ci
user: hypnotoad
comment:
  Built a seperate namespace (taotk::meta) to house widget components. All
  objects in ::taotk are now assumed to be full fleshed out commands and/or
  widgets.

  In the browser example, replaces bindinds to [list [self] ..] with
  [namespace code {my ...}]. We are using the unknown function now to
  create the object as .html 

  The process of building an object has been changed. InitializePublic
  now only populates defaults. configure_list has been broken into two 
  phases. configure_list now modifies the internal values of the object.
  configurelist_triggers now activates behaviors based on changes to the
  internal state.

  mutex_* family of methods has been lumped into an ensemble.

  Seperated out the stack manipulation and state maintenance feature of the
  megawidget, and evolved them into a seperatate class "tao.controller". The
  controller is intended as an abstraction for non-tk apps that require the
  same locks and state maintenance.

  stackaction_* has been lumped into the actionstack ensemble.

  On morph objects now re-run InitializePublic to ensure new variables 
  defined by the new class are created.

  Where practical/possible continued the process of renaming METHOD_SUBMETH
  to use ensembles instead. Also making methods that do not (and are not)
  called externally private.

  Evolved the scrollframe concept futher.

  Added an extra phase in toatk widgets for creating the container toplevel
  or frame.

  post_command is now mapped to the command option when inferring properties

  Simplified the process of producing dynamic gui elements.

  Numerous bug fixes to the dynamic widgets.

  Added field mapping to the command properties of widgets. For instance
  set-command rather than forcing the command to accept field and value for
  arguments can be told to send "set-command %field% %value%" instead, where
  the value for the field and the value for the value are subsituted in
  at call time. (as is %object% and %self%).

  Added a macro to simplify accessing the style sheet.

  Ran the autodoc tool

  the build_widget method is no longer responsible for creating the topmost
  container object, nor does it deal with the topmost object's bindings. That
  is now handled by the constructor. The build_widget command must now assume
  the path given to it exists, and that all UI elements need to fit within
  that path.



  Added a new step to taotk objects


type: ci
user: hypnotoad
comment:
  Renamed the validate property for options to "validate-command"

  Options can now be accessed from the property command.


type: ci
user: hypnotoad
comment:
  Removed arguments from Build_Topframe

  Added a new notation for pointers. You can wrap a path through pointers
  in <> now. Example: my <parent master db> eval {...}

  Renamed the value_funct property of options to value-command, and added
  the same field mapping as other *-command properties.

  Moved the ::taotk::page::* namespace to ::taotk::meta

  Renamed the standalone console and sqlconsole class types to console
  and sqlconsole, move the "guts" to the ::taotk::meta namespace.


type: ci
user: hypnotoad
comment:
  Event notifications are now wrapped in a catch.

  Added message:notice method for applications.

  Added parameter substitution for values-command.

  Tweaked the widgetInput system for enumerated value comboboxes such
  that only the native value is every sent pack to the GlobalVarName.

  Fixed a bug in tk dialog boxes.

  Removed the unsplash signal. Splashes have an independent lock that 
  would keep the pipeline from runnign anyway.

  Removed the constructor from meta widgets, added an explicit constructor
  for taotk::widget an taotk::toplevel.


type: ci
user: hypnotoad
comment:
  Renamed the "property options" and "property option_dict" keywords to "property option dict"

  Renamed the "property signals" and "property signal_dict" keywords to "property signal dict"

  Renamed the "property publicvars"  keywords to "property variable dict"

  Replaced most mutex calls with lock calls.

  Removed the <STUB and STUB> forwards

  Moved locks and signals to the base class.

  Removing the last lock now automagically triggers the Signal_pipeline

  Renamed actionstack locks_* to lock

  Renamed actionstack signal to signal

  Created the SubObject ensemble to dole out names for dynamically generated 
  objects.

  Simplified the kickoff sequence for database objects.

  Optimized yggdrasil


type: ci
user: hypnotoad
comment:
  Changed the delimeter for ensemble methods from : to ::

  Changed the structure for property retrieval to make more sense, and to
  allow the user to retrieve orthoganal properties of multiple types.

  Re-implemented the workaround for uuid_generation in cases where 
  md5 is a local c command.


type: ci
user: hypnotoad
comment:
  Ran autodoc tool

  Customized lock remove and lock remove_all for megawidets.

  Fixed the dynamic text editor widget

  Added command handling for checkboxes

  Tweaked how journaling is handled on sqlite database objects

  Added pipeline_busy and pipeline_idle action hooks.


type: ci
user: hypnotoad
comment:
  Fixed the default for prompts to be "ok" instead of "cancel".

  Added a function to calculate option widths.

  Removed script.* handling from options.

  Fixed several bugs and typos in the tkdialog family of dynamic widgets.

  Fixed a typo in command property subsitution.

  Added the args field to the class method version of property.

  Re-implemented the layer method for onions.


type: ci
user: hypnotoad
comment:
  Ran autodoc

  Added a copy of the core list utilities that tao needed from ODIE
  to make the project independent and standalone.

  Added a catch around Signal_Pipeline to allow the software to recover
  from an error (instead of lock itself into oblivion.)

  Added object substitution for select command option mapping.


