[interchange-cvs] interchange - heins modified WHATSNEW

interchange-core@interchange.redhat.com interchange-core@interchange.redhat.com
Sun Jun 23 13:31:02 2002


User:      heins
Date:      2002-06-23 17:30:22 GMT
Modified:  .        WHATSNEW
Log:
	* Add major features and fixes from 2002-01-01 to date.

Revision  Changes    Path
2.15      +323 -0    interchange/WHATSNEW


rev 2.15, prev_rev 2.14
Index: WHATSNEW
===================================================================
RCS file: /anon_cvs/repository/interchange/WHATSNEW,v
retrieving revision 2.14
retrieving revision 2.15
diff -u -r2.14 -r2.15
--- WHATSNEW	17 Jun 2002 21:40:39 -0000	2.14
+++ WHATSNEW	23 Jun 2002 17:30:22 -0000	2.15
@@ -11,15 +11,224 @@
 Core
 ----
 
+* The great tag breakout!
+
+	- Almost all tags are now UserTag definitions. The exceptions
+	  are:
+
+		and bounce goto if label or unless
+
+	- New TagDir directive (default is VENDROOT/code) sets the
+	  directory (or directories) which are searched for code definitions
+	  set by UserTag and CodeDef.
+
+	- New TagGroup directive establishes groups of ITL tags which can
+	  be included.
+
+		TagGroup :crufty "banner default ecml html_table onfly sql"
+
+	  The default groups include :core, which contains all of the
+	  ITL tags defined in 4.8/early 4.9. The groups are defined
+	  in $Vend::Cfg::StdTags and can be undefined if desired
+	  with "TagGroup :group".
+
+	- New TagInclude directive allows inclusion of tags (or groups
+	  of tags). If a tag is defined as a core tag (with a .coretag
+	  or .tag or .ct extension) and is not included, it will not
+	  be compiled and placed in the tag map. This is for all catalogs,
+	  so if *any* catalog uses a tag it must be included.
+
+	  Examples:
+
+		# Include the base tags
+		TagInclude :core
+
+		# Not the commerce tags
+		TagInclude !:commerce
+
+		# But make sure item-list is included even though
+		# it is in :commerce
+		TagInclude item-list
+
+		## Double negatives are honored
+		TagGroup    :foo "bar !baz buz"
+		## With the group above, the below is equivalent
+		## to TagInclude !bar baz !buz
+		TagInclude !:foo
+
+	- New CodeDef directive allows the setting of filters,
+	  order checks, FormAction, ActionMap, ItemAction,
+	  and LocaleChange.
+
+			## filters
+			CodeDef  mixedcase Filter
+			CodeDef  mixedcase Routine <<EOR
+			sub {
+				my $val = shift;
+				## [filter mixedcase]mixed case[/filter]
+				## outputs "MiXeD CaSe"
+				$val =~ s/(.)(.)/\u$1\l$2/g;
+				return $val;
+			}
+			EOR
+
+			## order checks
+			CodeDef  mixedcase OrderCheck
+			CodeDef  foo  Routine <<EOR
+			sub {
+				my ($ref, $var, $val) = @_;
+				return (1,$var) if $val eq 'bar';
+				return (0,$var, "foo must be bar");
+			}
+			EOR
+
+	   All work in catalog.cfg; LocaleChange and ItemAction are not
+	   global. FormAction, ActionMap, and ItemAction directives
+	   are equivalent to their CodeDef equivalents.
+
+* New Vend::Form module implements display tag and widget creation.
+  Passes all known tests, and runs accessories/widgets (apparently)
+  flawlessly in foundation, barry, simple, and the UI.
+
+* Clear the following intermittent error:
+
+	CGI mapping error: multipart/form-data sent incorrectly
+
+  Some browsers, like Opera, use non-word characters like '+' in
+  form-data MIME boundaries, causing the regex matches to fail.
+
 * New function Vend::Util::logOnce which ignores repeated identical
   log messages (works only in the scope of the current Interchange
   page)
 
 * Remove last remnants of mv_raw_searchspec.
 
+* Remove HTML-embedded tag syntax
+
+* Remove Vend::ECML, move to extensions/ directory.
+
+Build
+-----
+
+* Keep test from giving warning about not being able to stat
+  "code" directory.
+
+* Big changes to RPM specfile:
+
+	- Allow non-root RPM builds (requires some changes to makecat as
+	  well, which will probably only be in 4.9 and later).
+	- Don't add interch user on build machine.
+	- Allow easy en/disabling of daemon autostart with defined
+	  parameter and default to off to prevent any surprises.
+	- Start using Red Hat standard /sbin/service instead of directly
+	  running /etc/rc.d/init.d/interchange.
+	- Remove unneeded .empty files used in CVS to avoid pruning
+	  important but empty directories.
+	- Make admin UI images owned by root.
+	- Don't include /usr/share/man/man[18] system directories in
+	  RPMs.
+	- Start using RPM dependencies for Perl CPAN modules. Users who
+	  install directly from CPAN will have to use --nodeps.
+	- Make main interchange package architecture-dependent, because
+	  it includes precompiled vlink and tlink CGIs, and we shouldn't
+	  require a C compiler on the install machine if users run
+	  makecat later.
+	- Stop checking for /home/httpd, but use a define for webdir
+	  that can easily be changed if needed.
+
 UI
 --
+* Major changes to the content editing scheme.
+
+	- Requires a CSS/Javascript 1.3 compliant browser. Tested on
+	  Mozilla 0.9.8, MSIE 5.51, Opera 6.0tp2. All work pretty well;
+	  Mozilla is a bit slow, Opera doesn't have CSS widths down.
+
+	- Page editor has a quasi-visual layout that should be much more
+	  intuitive. Support for a "PAGE_PICTURE" file in the templates
+	  allows visual links to the editor page.
+
+	- Components, templates, and pages are now all editable.
+	  Template and component editors need to be brought up to speed
+	  with the page editor, but work fairly well.
+
+	- Added new lib/UI/ContentEditor.pm module which implements
+	  this stuff in conjunction with
+	  lib/UI/pages/include/*_editor. A bit of a JavaScript
+	  dependency nightmare on the generated attribute editors, but
+	  I make get this more canned as time goes on.
+
+	- Lets get this on record -- this content editiing WILL NOT
+	  UNDER ANY CIRCUMSTANCES EVER WORK ON NETSCAPE 4. Do not ask,
+	  though I know the people who monitor this stuff won't.
+
+* Added new "auto_wizard" which builds a wizard from a file
+  like in the example. I think this is pretty cool, if I do
+  say so myself. It will be the method to provide scripted
+  content addition.
+
+* More table-editor updates -- added notable option, and
+  all_opts option which allows building the options in
+  Perl and then doing:
+
+		[table-editor all-opts=`\%opts`]
+
+* Look for major updates on the table editor to make it
+  completely templateable.
+
+* Fix problem with $Tag->display() called with null table, affecting
+  "wizard" mode.
+
+* Add a "admin/test_code.html" page for testing short snippets
+  of ITL without having to create a test page.
+
+* Make the table populator JavaScript honor the db tables the
+  particular admin user is supposed to see.
+
+* [import-fields replace=1] -- added option to replace items in the database
+
+* Add su facility for catalog superuser to switch users to
+  another user id.
 
+  New UI_Tag su with following:
+
+	[su username=miltonbear]
+
+	1. Stringifies current session after checking that su user is valid
+	2. Writes a random string to "$Global::ConfDir/tmp/$Session->{id}"
+	3. Issues a cookie hashing the above two
+	4. Inits a new session, putting in the login info
+	5. Writes $Session->{su} with session string
+
+	[su exit=1]
+
+	1. Reads random string from "$Global::ConfDir/tmp/$Session->{id}"
+	2. Hashes that with session and verifies with cookie
+	3. Safe evals session string
+	4. Retrieves session username/admin info
+
+  MMsu profile is called on admin/customer.html to run the switch
+
+* Continuing work on meta_display and Vend::Form.
+
+	- Relocated date and option widgets
+	- Prepared for breaking out image widgets to code/Widget
+	- Fixed various bugs in widgets
+	- Code simplification in Primitive.pm
+	- Fix widget.coretag to not call UI::Primitive routine
+	- Redo option_format filtering
+
+* Remove [set-alias] tag, never used.
+
+	* Add capability to su.coretag to:
+
+		Switch  superuser->adminuser
+		Switch  adminuser->regularuser
+
+	  When you "log out", you are reverting to the previous user,
+	  and you can go no further back. So if you go from superuser->adminuser,
+	  then adminuser->regular user, there is no way back to superuser without
+	  logging in again.
 * Display server hostname on the information page (genconfig).
 
 * Unused usertags component, set-alias and set-click removed.
@@ -29,6 +238,120 @@
 
 * Support for Wells Fargo added
 
+Accounting
+----------
+* Vend::Accounting module added, along with example module for SQL_Ledger.
+  This is the basis for a start of a defined accounting system interface.
+
+  Some intended functions:
+	 NOTE: AS = Accounting Software, i.e. SQL-Ledger, IC = Interchange
+
+	1. Assign customer number
+	2. Change customer information based on input, limit to fields customer
+	   should have control over
+	3. Add sales transaction (IC)
+	4. Feed back sales transaction from AS side for account status
+	5. Enter payments (IC --> AS), with credit-cards used to pay invoices
+	6. Reconcile AS account status with IC, i.e. ship status
+	7. Cancel order (IC)
+	8. Ship portion or all of order (IC)
+	9. Mark order complete
+
+	Input on other functions needed is appreciated.
+
+PROPOSED:
+
+* Set of modules selectable by route handle:
+
+	Vend::Account::SQL_Ledger (exists)
+	Vend::Account::QuickBooks (proposed)
+	Vend::Account::Compiere (proposed)
+	Vend::Account::[fill-in-the-blank]
+
+* Use a usertag [account] (ala [charge]) to interface functions.
+
+* Use a profile primitive, "&account=label function" ala "&charge="
+  to do some accounting functions in profiles, notably getting an
+  order number or customer number
+
+* Allow either COMMIT or no-COMMIT operation, with tradeoffs
+
+* Define accounting system parameters via Route, and build
+  in accounting functions into Route so that they can be
+  a predicate for order success.
+
+* Define two transitional state tables for handshaking:
+
+    orderstatus -- status of orders, i.e.
+		    pending,transmitted,received,shipped,complete
+
+    accountstatus -- record of payments and orders for account statement
+
+Foundation demo
+---------------
+
+* use [if variable MV_DEMO_MODE] instead of the more cumbersome
+  [if type=explicit compare="__MV_DEMO_MODE__"] (which I think was my
+  doing in the first place :)
+
+* add global INTERCHANGE_URL and INTERCHANGE_EMAIL variables to be used
+  for the Interchange developer website & email contact points, instead
+  of hard-coded stuff
+
+* standardize on the short form "Interchange" for the application name.
+
+* update a few URLs, etc.
+
+* Remove history-scan tag from catalog.cfg; it is now in code/UserTag.
+
+* Remove no_html_parse pragma, for which code has already been deleted.
+
+* Moved payment routes to the top of the Route stack. Technically they
+  should not be below the default route, and though it works in the
+  standard foundation setup, it caused lots of failures when people
+  tried to customize their order routing.
+
+* (oracle) Add missing Database xxx UPPERCASE 1 settings. Thanks to
+  Jonathan Lee <jonalee740304@yahoo.com> for reporting.
+
+* Get rid of weird tax rate popup notice when updating account
+  info, which is especially strange when you've never had anything
+  in your cart ...
+
+* Change catalog.cfg to highlight etc/after.cfg.
+
+UserTag stuff
+----------------
+*  [fedex-query] -- Stop dying if there's a problem with FedExexpress
+   lookups, which kept even ground rate lookups from being done during
+   the first request when the Business::Fedex object is first created.
+   
+   Instead, just log the error but continue on with possible ground lookup.
+   
+   (This situation resulted in the oddity of the shipping rate displaying
+   as $0.00 on the checkout page, but still getting added into the total cost
+   and displaying in the shipping rate pulldown select box just fine.)
+
+* [formel] -- cause option added (from stable branch)
+
+* interchange.cfg: Remove now-redundant include of usertag/*.tag.
+
+* [db-columns] -- Add ability to get back an array instead of a joined string
+  to $Tag->list_databases,$Tag->list_keys,$Tag->db_columns,
+
+* [email] -- Add enhancement made by Jurgen Botz to use send_mail program
+  so that Net::SMTP can send the email tag. Thanks Jurgen!
+
+Support scripts
+---------------
+* Add standard 'reload' function as alias for restart.
+* Start daemon in UNIX mode only by default (for RPM only).
+* Build foundation-demo RPM with MV_DEMO_MODE set.
+* Quell /sbin/service stop errors
+* Re-add main filelist omitted by oversight
+* On uninstall, remove autogenerated /usr/lib/interchange/etc/varnames
+* Don't start daemon after install.
+* Let user see if we turn off old IC server before install/upgrade.
 
 ------------------------------------------------------------------------------