[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.
------------------------------------------------------------------------------