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

                  What's new in each version of Interchange
                (since the merger of Minivend 4 and Tallyman)

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


Interchange 4.6.5

* Fix two admin security holes, in do_view and page_save. Thanks to
  Merlyn J. Pease <peasemj@bellatlantic.net> for reporting in bug #167.

* Several minor database field definition improvements.

* Clean up cruft in sample pricing table.

* Prevent admin/genconfig.html error.log entry about not being able to
  display status file with NoAbsolute set.

* Backport from 4.7 the error report if page couldn't be saved by
  admin/page_save.

* Fix a couple of bugs with AlwaysSecure not working in an order link.

* Fix rounding problem with Shipping.

* Fix problem with FullURL.

* Add stub for test_column in Table/InMemory.pm.
  Problem found by vasile_abo@wexim.com.


Interchange 4.6.4

* Added mod_interchange to the standard Interchange distribution.
  It is the direct descendant of mod_minivend, created by Francis
  J. Lacoste <francis.lacoste@iNsu.com> at iNsu Innovations Inc.
  in 1999. With Francis's blessing, we're taking over maintenance of
  the module. Thanks, Francis!

* Changed test.pl to use Errno.pm to derive socket test error messages.
  Thanks to Patxi Larrayoz Elcano <larrayoz@retemail.es> for finding this.
 
* Fix problem with MV_DEFAULT_SEARCH_FILE. Found by Joshua Scott
  <josh@bluebonnet.net>.

* Fixed bug with encrypted-password users not being logged in after
  new account creation. Reported by tamas.kohegyi@unforgettable.com.

* Add CGIWRAP workaround. Remove bogus PATH_INFO that is prepended to
  SCRIPT_NAME.

* Add unusable password hash for group ':backup' in access.asc. It was
  possible to access the admin interface with this username and no password.

* Disallow login attempts with group names, usernames with invalid
  characters, and blank usernames or passwords.

* Fix index statement problem for order_returns in PostgreSQL, found by
  <lmorley@flexihost.com>.


Interchange 4.6.3

* Fixed a bad bug that kept product options from working right. A bugfix
  in 4.6.2 uncovered a worse bug due to swapped parameters in a subroutine
  call in Data.pm. Thanks to Marc Infield <marc@geronimo.com> for pointing
  this out quickly.


Interchange 4.6.2

* [loop list=`$Scratch->{ary}`] now accepts a prebuilt array reference to
  loop over. Must be in the form returned by $db->query(), i.e. the list
  array (of arrays), an optional field hash ref giving the field name to
  index pointers, and an optional array ref giving the field names in
  order. Thanks to Kaare Rasmussen for the suggestion.

* Fixed bad bug in History, saving mv_credit_card_number in session. Oops.
 
* Fixed bug in secure/non-secure host comparison, thanks to Murray Gibbins,
  Stefan Hornburg, and Hans-Joachim Leidinger.
  
* Add MV_USERPROFILE to the list of recognized cookies, allowing a
  cookie-based admin login. Providing the password is saved in a cookie
  (perhaps with no expiration time?) then this will allow multiple-order
  entry by running the login process again.
   
* Fixed up the DisplayErrors auto-response to be localized. Not many people
  use this, but trying to localize all error messages.

* Fixed bug in ui_date_widget, generated month name for "Feb 30" which turned
  into March.

* Patch supplied by Hans-Joachim Leidinger <jojo@buchonline.net> prevents
  blank credit card info from being encrypted.

* Fixed bug #106, hang at install time if specified Interchange user ID
  doesn't exist.

* Fixed problem in Search.pm where coordinated search of op=rm would not
  match on words only.

* Fixed recent bug that prevented cached DBI connections.

* Fixed a couple of hard-coded mv_metadata references in admin pages
  preventing renaming of __UI_META_TABLE__.

* Fix problem with ProductFiles resolution in loops. The Vend::OnlyProducts
  setting was confused after the on-the-fly update.

* Convert '[' characters to &#91; in [value-extended] to prevent reparsing
  of Interchange tags from user data.

* Fixed problem with fly-list not accepting base parameter as per docs.
  Found by Victor Nolton.

* Added Stefan Hornburg's patch for table image background paths.
  Set pragma substitute_table_image to enable this.

* Improved makecat error message when problems occur reading config file.

* Made NoAbsolute default to Yes in interchange.cfg, which gives better
  default security for newly-built catalogs.

* Various minor HTML corrections. Thanks to Paul <porl@namee.com.au> and
  Mediabang.

* Fixed in-stock notification problem on flypage.html and stock-alert.html.

* RPM only: Fixed logrotate.d file to prevent cascading log rotation like
  error.log.1.gz.1.gz etc. Thanks to Murray Gibbins for diagnosis & fix.


Interchange 4.6.1

* Added MS Excel import/export capability.

* Added new SessionType "NFS", which forces fcntl_lock/fcntl_unlock in
  SessionFile.pm (bug #76).

* Report missing DBDs at startup time by working around DBI bug that causes
  $@ to be eaten (bug #75).

* Miscellaneous bugfixes, thanks to Jean-Philippe Bouchard:
  - Fixed Data.pm bug that caused flypage problems (bug #60).
  - Fixed spreadsheet edit auto export bug (bug #59).

* Link program fixes, thanks to minivend@delionsweb.net:
  - Fixed tlink.pl LINK_PORT problem (bug #61).
  - Fixed compile_link 'nosuid' option failure (bug #66).

* Construct Something changes:
  - Fixed stock alert price problem (bug #57).
  - Fixed 'title' vs. 'description' field issues. Thanks to Steve Gertz.

* Fixed [selected] and [checked] tags to be more uniform and to support
  case-sensitive and $CGI comparisons. Documented in Tagref.pm. Also,
  "multiple" and "default" args can no longer be positional -- no big loss.

* Fixed bug that kept [item-subtotal noformat=1] from being recognized.

* [item-exec routine] now picks up $Values, etc. before a [calc] is run.

* Order.pm: routes now use a "from" parameter which sets the email From: 
  header.

* Fixes to Util.pm:
  - Prevent sprintf() from screwing up numbers in certain locales.
  - [include] now can interpret [L] if locale=1 parameter is added.

* Server.pm -- we can now accept ISINDEX queries (for what it is worth).

* Scan.pm -- fix non-interpolated tags in search profiles.

* Database tables can now reside in different directories with the 
  DIR option to the Database config parameter.

* Fixed typo ('error' vs. 'errors') in Order.pm preventing no-items
  error from being seen at checkout (bug #82). Thanks to Bas Bezemer.

* Removed some duplicated image files, reducing package size by ~ 200 KB.

* Fixed scoping problem with override from user image upload.

* Allow internationalization of error messages in UserDB.

* interchange.PL: Fixed bad call to Vend::Imagemap::action_map, must be
  just the action_map since autouse is in force. Thanks to Jeff Carnahan.

* Fixed bugs in or-ed searches in DbSearch, fixed mv_search_relate bugs.

* Fixed problem with nu parameter getting out of sync in mv_sql_query.

* Added 3 usertags: benchmark, sleep, and table_organize (in eg/).

* Filled in some missing timestamp fields in construct demo store data,
  which was causing PostgreSQL 7 data imports to fail.


Interchange 4.6.0

* Minor final changes


Interchange 4.5.8 beta release

* Documentation overhaul -- PDFs now available
* Various bugfixes
* Oracle support improved
* 'Construct' catalog improvements
* Authorize.net support


Interchange 4.5.7 beta release


Interchange 4.5.6 changes -- complete overhaul of UI

* Everything renamed to "interchange". interchange.cfg, interchange.pid,
  etc. If you keep minivend.cfg as the configuration file, the PID file
  will be minivend.pid. There should be a good level of backward
  compatibility.

* "construct" is now the default demo -- a "foundation" demo will be
  added later.

	-- Improved graphics and layout over older demos.
	-- Split ship addresses for items
	-- Shipping notices integrated
	-- Recurring order facility (doesn't yet work).
	-- PO with credit limit
	-- Merchandising cross-sells by category or item.
	-- "Others who bought this"

  The HTML rendering is kind of slow on Netscape, any help with that
  would be appreciated.

* The user interface (UI) was reorganized to make it easier to understand
  and use.

  -- All functions should now be available via menu, quicklinks should
     not be necessary.
  -- Most database table lists are HTML lists with links instead of
     the button approach.
  -- Administration console with information helpful for debug.

UI:

* Orders 
  -- list-based
  -- shipping status notices
  -- automatic check of archive box when status=shipped
  -- list-based delete and archive operations
  -- lists are sortable on multiple fields
  -- status display for individual line items
  -- change size of list with Knar UI_SZ_LIST_ORDER

* Customers
  -- list-based
  -- list-based delete and deactivate operations
  -- lists are sortable on multiple fields
  -- status display for individual line items
  -- change size of list with Knar UI_SZ_LIST_CUSTOMER

* Item editor
  -- Select list of items to delete or edit in sequence
  -- Now have different "views" for merchandising, pricing, inventory, etc.
  -- checkbox-based deletes
  -- item fields to display set with UI_ITEM_FIELDS
  -- separator fields set with UI_ITEM_BREAK
  -- cross_category field added to merchandising table

* Content
  -- Templates easier to create
  -- Editor allows change of template

* Layout
  -- button builder does on-the-fly items
  -- fixed bugs in search builder

* Merchandising
  -- new menu, includes affiliate stuff

* Reporting
  -- Fixed cast problem with PostGres reports
  -- More consistent look/feel for reports

* Administration
  -- New information screen that should help with diagnosing trouble
  -- Table select/edit now consistent with other editors
  -- Selector rows can be sorted via column, forward and reverse
  -- Table display properties can be easily edited

Core:

* Database update forms (mv_todo=set) now can set fields in multiple
  tables when there is a common key.

* Changed SpecialPage defaults for "search", "order", and "checkout"
  to reflect longstanding defaults in demo catalogs.

* Fixed bug in fixed-field (PriceField) pricing, introduced sometime
  in Minivend 4.

* Added GUESS_NUMERIC parameter to databases, which operates by checking
  field types in SQL and by looking at the import data on DBM. You can
  see this in operation in the UPS tables "Ground", etc.

* Removed auto-index of key field if POSTCREATE statement exists.

* Added some more better auto-numbering support. Still not ready
  for the UI.

* Found bug in Vend::Table::DBI->inc_field that caused a quoted value
  when really was a number.

* CSV imports now are fully as functional as others, can do indexing, numeric
  guess, etc.

* Added "value" widget type for [accessories ...].

* Added [tmp var]scratch setting[/tmp] and [scratchd var] tags to
  purge Scratch when setting/accessing variables. This can improve
  session write speed if setting a large value which will only be
  used in the current page.

* Added "tabbed" filter, and some other Filters. Now you can add
  your own filters persistently with:

	Sub <<EOS
	sub somesub { 
		$Filter{foo_to_bar} = sub {
			my $value = shift;
			$value =~ s/foo/bar/g;
			return $value;
		};
	}
	EOS
	
	or just in the current page

	[perl]
		$Filter{foo_to_bar_tmp} = sub {
			my $value = shift;
			$value =~ s/foo/bar/g;
			return $value;
		};
		return;
    [/perl]

  Thanks to Stefan Hornburg for suggestion.

* Fixed SpecialPage handling of salestax.asc, thanks to Jeff Carnahan.

* Fixed _postcode() routine in Order.pm, thanks to Brett Harrison.

* Fixed longstanding problem with demo catalog whereby the UserDB
  defined the username field as "user" but it was actually named
  "username" in the database. Changed UserDB default to "username", because
  "user" is a reserved word in some SQL databases (i.e. Postgres).

* UserDB: Removed mv_credit_card_info from B_FIELDS so that it would not
  be saved in UserDB.

* Added [counter ...] tag, with some additional capabilities over
  the old [fcounter ...] tag. Kept fcounter around in UserTag for
  compatibility with older catalogs.

* Added image copying for shared image directories (the admin).


Interchange 4.5.5 beta release


Interchange 4.5.3 beta release


Interchange 4.5.0 changes -- the start of the Tallyman merge.

* Many, many, changes and improvments to the user interface.
  Minimate is broken out again and made separate; the UI should
  have all of its functionality. See the UI online help for changes.
* LDAP support. You can now keep data in LDAP servers, with 
  normal Minivend Database connectivity. Searchable, too!
  Put in catalog.cfg:

	Database  variable variable.txt LDAP:some.servername.com
	Database  variable BIND_DN      cn=fragermk, o=catalogs, c=minivend
	Database  variable BASE_DN      o=catalogs, c=minivend
	Database  variable BIND_PW      secret

  Programmed by Mike Frager with a bit of help from Mike Heins.

* VariableDatabase now takes effect at the time of the call in catalog.cfg.
  This means you can edit your Variable settings in a database, reconfigure,
  and then use the values farther down in the configuration file.

* Order.pm: fixed multiple problems in precedence for order profiles.
  Thanks to Ton Verhagen. Also added "isbn" profile check written
  by Ton Verhagen.
* Interpolate.pm: Fixed bug in error message generation -- thanks to Dan
  Busarow.
* Config.pm: Fixed default declaration of "HOT" for memory databases,
  now should work properly as default database.
* Other changes much too numerous to mention. This will be the last
  version of this changes document; there are too many.
