update Changes.txt to date
[bse.git] / Changes.txt
CommitLineData
1dd35c52
TC
1Bug fixes:
2
3 - user.pl (BSE::UserReg) now consistently does new-style message
4 handling
5
6 - embedding no longer messes up the variable state for article
7 generation.
8
9 - actually tokenize the !~ template expression operator.
10
11 - audit log mailing now uses the most specific email address supplied
12
aaf6e71f
TC
13 - page.pl now returns a 404 if the requested page id/alias can't be found
14
15 - the tag owner (eg. articles) tag_ids() method was returning a tag
16 count rather than the tag ids
17
18 - fix date article custom fields
19
20 - fix product custom fields
21
22 - don't strip '-' and '_' from linkAlias in the importer
23
24 - ensure images have unique ids when re-orders
25
26 - correctly validate and report on bad tag values (c46eae4)
27
28 - use quoted-printable where needed for text parts, and always for
29 html parts of mail sent via BSE::ComposeMail (08a49f2d)
30
31 - fix subscriptions (newsletters) (6c8fac02)
32
33 - always fallback to [shop].from for From: email address
34
35 - fix word-wrapping for audit log emails
36
37 - fix encoding of email content
38
39 - select search excerpts that match the search text like the search
40 engine, rather than simple text matching (d325876a)
41
1dd35c52
TC
42Enhancements:
43
44 - the article mock objects used for pregen behave more like article
45 objects
46
47 - password strength validation and account lockouts for repeated
48 failed logons.
49
50 - plain text passwords are no longer supported
51
52 - articles/products can now be imported from CSV
53
54 - article/product imports can now be done as "update_only" so that
55 required fields aren't necessary
56
57 - installation now uses install.cfg, which is formatted like bse.cfg
58
59 - added a tool to hash unhashed site user and admin user passwords
60
61 - coupons for the shop
62
aaf6e71f
TC
63 - global files and image no longer require an identifier
64
65 - when transforming an article title for use in a URL, replace
66 non-alphanumeric characters with '-' instead of '_'.
67
68 - reorder.pl now allows a sort spec of 'shuffle'
69
70 - article/global images can now have tags (a3e0dbc)
71
72 - emails for siteusers are now whitespace validated and trimmed
73 (b5fe5b6c)
74
75 - allow add.pl to run as FastCGI (f5ea58be)
76
77 - SVG support for article/global images
78
1dd35c52
TC
79Templates:
80
81 - add top, dynamic, generator, url variables to generated article
82 templates
83
84 - replace variables on the makeIndex html output
85
86 - add a params variable that behaves like the tag
87
88 - expression tags like <:= foo :> now escape as html by default.
89
90 - added an escape() method to scalars.
91
aaf6e71f
TC
92 - added a shuffle() method to arrays
93
1dd35c52
TC
94 - add current to the loop variable used in .for ... in
95
96 - added convience methods image_by_name, image_by_index, file_by_name
97 to article objects
98
99 - added a set_subject() function to BSE::ComposeMail templates
100
101 - added .while and .wrap template directives
102
aaf6e71f
TC
103 - allow collection_with_tags() to work on all_visible_products()
104
105 - massive formatter re-work
106
107 - allow defaults to be specified for .define (53c28223)
108
109 - allow barewords for pair list keys (53c28223)
1dd35c52 110
aaf6e71f 111 - various preload.tmpl changes
1dd35c52 112
f22ab4f4 113BSE 0.24 - 11 Feb 2013
083f8c3b
TC
114========
115
116Bug fixes:
117
6302f177
TC
118 - clean up access control records for article when the article is
119 deleted
120 https://rt4.develop-help.com/Ticket/Display.html?id=1368
121
04c9c50c
TC
122 - lookup the scalecache path and uri consistently, and configure them
123 in the [paths] and [uri] sections. This may break your site if you
124 didn't use the old defaults.
125 https://rt4.develop-help.com/Ticket/Display.html?id=1363
126 https://rt4.develop-help.com/Ticket/Display.html?id=1364
127
eef5c5f1
TC
128 - remove the local date and money tag definitions from the
129 administrative embedded catalog tags. This will require updates to
130 your embedded catalog template (admin/catalog.tmpl in base BSE).
131
5d073543
TC
132 - the check_versions.pl code now handles file renames correctly
133
134 - test.cfg is now handled case sensitively so the resulting
135 bse-install.cfg uses the same cases as test.cfg
136
137 - change BSE::UserReg to use dyn_response() instead of show_page() in
138 the few places still using it.
139
140 - define access rights for the pregen actions
141
142 - update price and tier information in the cart when the user logs in
143
144 - several template expression fixes:
145
146 - or is now only an operator when a distinct word in template
147 expressions
148
149 - parse () groups as primary expressions in template expressions
150
151 - fix the list() method for hashes
152
153 - moved [basic].public_files to [uri].public files. RT #1359.
154
155 - fixed example in the SYNOPSIS for BSE::Cache::Memcached
156
083f8c3b
TC
157Enhancements:
158
feb91164
TC
159 - add support for exporting report results as CSV
160
5d073543
TC
161 - add .iterateover directive to templates
162
163 - add a web UI to the importer
164
165 - added documentation to BSE::UserReg, BSE::Request::Base (the
166 request object)
167
168 - template expression enhancements:
169
170 - added several new scalar methods to template expressions
171
172 - added the set() method to hashes in template expressions
173
174 - added the expand() method to lists template expressions
175
176 - BSE now searches for shipping modules in the library_path.
177
178 - article custom fields can now be configured in [article custom
179 fields] etc
180
181 - the shopping cart is now visible to the new tag system
182
183 - flash notices when the user manipulates the cart
184
185 - unlisted, un-released, expired and unlinked pages are now treated
186 as unavailable:
187
188 - static content is remove if present
189
190 - dynamic access returns a 404 error
191
192 - added FixedIntl shipping module
193
194 - updated the required modules in bse_modules.pl
195
083f8c3b
TC
196Templates:
197
eef5c5f1
TC
198 - admin/catalog.tmpl (maybe named differently) - removed the local
199 date and money tag definitions.
083f8c3b 200
5d073543
TC
201API:
202
203 - admin group creation now provides reasonable defaults
204
205Testing:
206
207 - many internal test code changes
208
209 - update the regen_known_errors make target to match the new test
210 file name
211
212 - add actions test for BSE::UserReg
213
214 - disable debug output for the eway test
215
2c040ad6 216BSE 0.23 - 07 Sep 2012
fc3434bd
TC
217========
218
31976291
TC
219Bug fixes:
220
221 - <:.set ... :> would treat an unknown value (ENOIMPL) as an error
222 rather, instead of leaving the code in place
223
76e3caff
TC
224 - removed the unused Squirrel::ImageEditor and AdminUtil modules.
225
226 - column names in generated queries are now quoted using the
227 identifier quote returned by the database driver.
228
229 - handle language ids of the form xx_XX.charset correctly when
230 performing message lookups.
231
cb91ce65
TC
232 - global images are now returned in the order specified in the
233 editor.
234
31976291
TC
235Enchancements:
236
fc3434bd
TC
237 - modify Generate::* classes to build templates by filename instead
238 of reading them into memory. This will allow caching by
239 Squirrel::Template.
240 https://rt4.develop-help.com/Ticket/Display.html?id=1341
241
242 - add [basic].cache_templates_locally to configure Squirrel::Template
243 to cache templates in memory. This removes the overhead of
244 (de-)serializing from/to an external cache, but may increase memory
245 use.
246
0af36ae1
TC
247 - tags can now depend on a tag from another category being selected
248 before being displayed.
249
250 - lookups in sql_statements are now cached.
251 https://rt4.develop-help.com/Ticket/Display.html?id=1352
252
451a9a40
TC
253 - added collection_with_tags() to TagOwners (so it's usable for
254 Articles and Products, etc) to allow filtering the various
255 collection methods by tag.
256
257 - added bse.articles and bse.products for access to the Articles and
258 Products collection classes.
31976291 259
76e3caff
TC
260 - order payment would fail if the CC fields weren't present.
261
262 - search index depth can now be configured in the config file
263
264 - some tests now clean up the articles they create more reliably
265
266 - $DATADIR is now configurable as [paths].data
267
268 - $IMAGEDIR and $IMAGES_URI are now reliably configurable as
269 [paths].images and [uri].images.
270
271 - better perl 5.16 compatibility (resolved some warnings)
272
273 - installation now updates installed scripts with the test.cfg
274 configured perl.
275
276 - tests now handle missing optional modules correctly
277
278 - added iterateBy() to Squirrel::Table for memory efficient iteration
279 over query results.
280
281 - revamped imageclean.pl:
282
283 - output is now controlled by templates
284
285 - added a command-line tool
286
287 - web UI is now access controlled
288
289 - the web UI now provides a preview of the work to be done, with
290 checkboxes to control which clean ups are done.
291
292 - now accounts for public files controlled by BSE::TB::Files.
293
cb91ce65
TC
294 - quoted shipping can now be disabled
295
296 - added the Courier::ByUnitAU shipping module.
297
298Infrastructure:
299
300 - the test script directory (t) has been reorganized.
301
302 - configuration can now be loaded from a string to simplify building
303 config objects for testing.
304
76e3caff
TC
305Documentation:
306
307 - documented [basic].all_dynamic
308
309 - minor documentation updates to Squirrel::Table
310
23ef1b0b
TC
311 - added a htmldocs target to the Makefile. This requires a
312 HTMLDOCDIR parameter:
313
314 make htmldocs HTMLDOCDIR=/somewhere
315
316 - added tests for syntax check all pod
317
318 - improved documentation in Articles, BSE::AdminMenu and
319 Squirrel::Template::Processor.
320
76e3caff
TC
321Templates:
322
323 - admin.pl now properly passes the admin state to bse.* template
324 variables
325
326 - added templates admin/imageclean/intro.tmpl,
327 admin/imageclean/preview.tmpl and admin/imageclean/final.tmpl for
328 the updated imagclean.pl
329
3e9576c3 330BSE 0.22 - 08 Jun 2012
1e60d3c4
TC
331========
332
673086da
TC
333Bug fixes:
334
335 - the search index builder was ignoring configured field scores.
336
26b58957
TC
337 - the customer is no longer asked to select a shipper and shipping is
338 set to zero for orders where all products have zero weight.
339 https://rt4.develop-help.com/Ticket/Display.html?id=1328
340
f2df73fd
TC
341 - template engine: template tags implemented as a literal were no
342 replaced when that literal was false. (4a446ac3)
343 https://rt4.develop-help.com/Ticket/Display.html?id=1342
344
82d7cc3e
TC
345 - the body text markup doclink[] accepts link aliases, but didn't
346 allow for "-" in the alias. All "-" and document aliases are
347 permitted.
348
5287a8fd
TC
349 - shopadmin order_paid and order_unpaid are now recorded in the audit
350 log instead of being added to special instructions.
351 https://rt4.develop-help.com/Ticket/Display.html?id=1326
352
24185186
TC
353 - the scale() thumbnail operator, when used with a background would
354 paste rather than rubthrough() the source, leaving tranparent areas
355 black. If a fill is supplied, it is now always used for
356 transparent images.
357
2549999a
TC
358 - generate the correct refresh URL when the user isn't logged on
359 attempting to request an admin page.
360
673086da
TC
361Enhancements:
362
1e60d3c4
TC
363 - automatic image insertion can now be disabled globally or on a
364 per-article basis.
365 https://rt4.develop-help.com/Ticket/Display.html?id=1331
366
513aad53
TC
367 - templating re-re-work:
368 - still backward compatible
369 - new, faster, more regular processing internal to tags:
370 - variables supplied by code, similarly to TT, Mason
371 - macro definitions
372 - call macros or files with parameters and localized variables
373 - integration into BSE itself still limited, but one step at a
374 time.
375
200069c7
TC
376 - briefly documented bsexlsprod.pl (site/docs/bse_import.pod)
377
378 - bsexlsprod.pl can now update article tags
379
380 - bsexlsprod.pl can now update tiered pricing
381
0190baba
TC
382 - make the eimage variable available on the admin/image_edit template
383 and use it to display a thumbnail.
384 https://rt4.develop-help.com/Ticket/Display.html?id=1290
385
a45d595e
TC
386 - add the Courier::FixedAU shipping driver.
387
5287a8fd
TC
388 - that an order was manually paid is now recorded separately from the
389 payment type.
390 https://rt4.develop-help.com/Ticket/Display.html?id=1325
391
392 - the shopadmin order_paid target now accepts a paymentType variable
393 to optionally set a new payment type on manual payment
394 https://rt4.develop-help.com/Ticket/Display.html?id=1325
395
396 - the shopadmin order_paid and order_unpaid now require csfrp tokens.
397
1b37733d
TC
398 - siteuser admin view and edit targets now also accept userId to
399 identify the user.
400 https://rt4.develop-help.com/Ticket/Display.html?id=1351
401
29ff344f
TC
402Templates:
403
404 - admin/order_detail.tmpl - the product tag now uses tag_article as
405 it should.
406
5287a8fd
TC
407 - admin/order_detail.tmpl - added order, payment_types and
408 payment_type_desc as template variables.
409
a2ed0315
TC
410 - admin/subscr/list - isubscription is now an object tag, giving
411 access to the is_removable method
412 https://rt4.develop-help.com/Ticket/Display.html?id=1323
413
414 - admin/subscr/edit, admin/subscr/detail - subscription is now an
415 object tag
416
e860a1d9 417BSE 0.21 - 07 Mar 2012
1be64ebd
TC
418========
419
b25f4d0f
TC
420 - Squirrel::Template has largely been rewritten performing a parsing
421 then a processing step rather than doing many, many s/// over the
422 template text.
423
bf7dd331
TC
424 - verbose output of generate.pl is now based on the template
425 admin/generate.tmpl
1be64ebd 426
bf7dd331 427 - add the referer tag to all dynamic pages
1be64ebd 428
b23cb063
TC
429 - added [undeletable articles] to bse.cfg as a supplement to
430 @NO_DELETE. @NO_DELETE is now deprecated and may be removed in a
431 future release of BSE.
432 https://rt4.develop-help.com/Ticket/Display.html?id=1209
1be64ebd 433
595e72db
TC
434 - iterator inlines can now be filtered (Adrian Oldham)
435
436 - added some more extension to content type mappings for video
437 formats (Adrian Oldham)
438
8ddd08f7
TC
439 - the shopadmin order list targets are now much more efficient - they
440 no longer load the entire order table, are paginated, and let the
441 data do the selection of matching records.
442
443 NOTE: this removes some backward compatibility - iterator filters
444 no longer work and a new tag, all_order_count can be used to fetch
445 order counts. Extra search parameters have been provided to filter
446 the results.
447
448 - added a new adminurl2 tag where the second parameter is a target.
449
3d99ca04
TC
450 - siteusers.pl now flashes all success messages, and success message
451 text is fetched from the messages table
452
54fada18
TC
453 - added is_released and is_expired methods to Article. This should
454 be visible to article tags in templates.
455
41cbde00
TC
456 - more consistently use tag_article on the admin side of the site.
457
c4df989c
TC
458 - make tag_article smarter so it can call more methods
459
47e33eae
TC
460 - consistently use admin_tags instead of the old collection of admin
461 tag methods.
462
a8d74b1e
TC
463 - tag_object (used for object style tags) now checks
464 restricted_method() if implemented for the object.
465
466 - the editor file iterator is now an object iterator, and the efile
467 tag on the file edit page is now an object tag
468
469 - add file_exists to BSE::TB::Article::File
470 https://rt4.develop-help.com/Ticket/Display.html?id=1288
471
5f3c8bf8
TC
472 - refactored makeIndex.pl into makeIndex.pl (web) and
473 util/bse_makeindex.pl (console).
474 Output from these is now encoded using the default BSE encoding.
475 makeIndex.pl can now produce HTML output using admin/makeindex.tmpl
476 The bse_make_index background process now uses the console version.
477 https://rt4.develop-help.com/Ticket/Display.html?id=1301
478
ec5a2133
TC
479 - admin-mode article links now ignore the admin value stored in the
480 article record and always return a link to admin.pl for that
481 article.
482
8329ce1b
TC
483 - add a missing comma to BSE::UI, preventing a warning.
484
bf7dd331
TC
485Bug fixes:
486
487 - thumb.pl would return content types with doubled image/ prefixes,
488 eg. image/image/jpeg
e728024c 489
c710d90c
TC
490 - update BSE::AdminUsers, BSE::ChangePW, BSE::UI::AdminReport to use
491 more modern admin tags
0611c441 492 https://rt4.develop-help.com/Ticket/Display.html?id=1234 (partial)
c710d90c 493 (Adrian Oldham for BSE::ChangePW, BSE::UI::AdminReport)
0611c441 494
5b2aab45
TC
495 - with [site].secureadmin enabled, refreshes to the secure admin url
496 could cause a 500 error.
497
8fb3d3d4
TC
498 - check nomatch fields even for blank fields. Otherwise a field with
499 a LF or CR would not be caught by the dh_one_line validation rule.
500
a8a25cfd
TC
501 - saving a tag from the tag manager without changing the name or
502 deleting a tag that doesn't exist would result in a 500 error.
503 https://rt4.develop-help.com/Ticket/Display.html?id=1287
504
6e56cf75
TC
505 - setting an unfilled order's stage to "shipped" now sets whoFilled
506 and whenFilled for the order.
507 https://rt4.develop-help.com/Ticket/Display.html?id=1286
508
d9b0f5e1
TC
509 - an empty title (but no missing) when saving a user or group file no
510 longer defaults that to the file display name.
511 https://rt4.develop-help.com/Ticket/Display.html?id=1303
512
513 - validation errors are now correctly displayed for adding a user or
514 group file
515 https://rt4.develop-help.com/Ticket/Display.html?id=1302
516
517 - supplying an empty content type when saving a user or group file
518 now resets the content type to that derived from the file's display
519 name.
520 https://rt4.develop-help.com/Ticket/Display.html?id=1304
521
2c2618b0
TC
522 - fix the message id for the "move up a level to section" message in
523 the possible parents drop down.
524
c263b35e
TC
525 - error_img would produce an inline stack trace from an internal
526 error on a failed logon. (logon.pl)
527
8ddd08f7
TC
528Templates:
529
530 - admin/order_list*.tmpl - see the order list re-work above.
531
f8d5dfae 532 - you can now use <:- and -:> as tag delimiters to consume whitespace
b25f4d0f
TC
533 on the left and right of the tag.
534
535 - Squirrel::Template now documents the template syntax more regularly.
536
537 - Squirrel::Template is now much faster in most cases.
538
539 - admin/subscr/detail - the subscription orders iterator now includes
540 the billFirstName, billLastName and filled fields from the
541 order. (Adrian Oldham)
f8d5dfae 542
8ddd08f7
TC
543Internals:
544
545 - added a getCount() method to retrieve a count of matching records.
546
2897cd79 547BSE 0.20 - 22 Dec 2011
6abd8ce8
TC
548========
549
b27af108
TC
550Please read any NOTES below carefully.
551
6abd8ce8
TC
552 - store a truncated card number for credit card payments (both online
553 and email). Reinstate storage of the card holder name in ccName.
554 ccNumberHash is no longer populated.
555
556 - ifNeedDelivery (checkoutnew_base.tmpl) wasn't being reset on order
557 submission.
558
b27af108
TC
559 - the site_users table has been refactored into the bse_siteusers
560 table, removing the bill* fields and adding deliv* fields. Other
561 obsolete fields have also been removed.
562
563 NOTE: To preserve your registered users on upgrade, run the
564 provided schema/site_users_to_members.sql SQL through the mysql
565 tool. This will create entries in bse_siteusers corresponding to
566 those in your original site_users table. You MUST start with an
567 empty bse_siteusers table or the script will throw an error.
568
569 NOTE: Any configuration such as report definitions, query group
570 definitions should now refer to bse_siteusers instead of
571 site_users.
572
573 - Data::UUID 1.148 is now required
574
be262d15
TC
575 - remove target entry for the shop confirm action, which was
576 otherwise removed years ago. RT #1280.
577
fb10b11e
TC
578 - logon now starts a new session, preserving the cart. As a
579 side-effect this logs out the admin user, though this may
580 change. RT #1279.
581
582 - passing a new session id between the SSL and non-SSL versions of
583 the site is now validated. RT #1279.
584
f13d1b43
TC
585 NOTE: This requires that [site].secret be set to a value specific
586 to your site. Running:
587
588 openssl rand -base64 32
589
590 generates a suitable value.
591
fb10b11e
TC
592 - delete the session data for a site users session when they logoff.
593 As a side effect this will log out the admin user.
594
cd1c5bfa
TC
595 - allow dynamic content pages to display flashed messages with the
596 message tag. Note that not all actions flash a message.
597
6abd8ce8
TC
598Template updates:
599
b27af108
TC
600 - checkoutpay_base.tmpl - the name of the cardHolder payment field is
601 now ccName.
602
603 - admin/order_detail.tmpl - order ccPAN can be used to display the
604 truncated card number.
605
606 - user/options_billing_base.tmpl and its generated template have been
607 renamed with s/billing/delivery/ since it now contains delivery
608 details. The link to it from user/options(_base).tmpl has also
609 been updated.
610
611 - user/options_base.tmpl, user/register_base.tmpl,
612 admin/users/(add,edit,view).tmpl have been updated to match the new
613 site users schema.
614
fb10b11e
TC
615 - user/logon_base.tmpl, user/register_base.tmpl - updated the
616 "nothing is more permanent that a temporary solution" link text for
617 logon, register and recover password.
618
cd1c5bfa
TC
619 - shopitem.tmpl - display the flashed message, if any.
620
62e56298
TC
621 - removed the unused checkoutcard and checkoutconfirm templates
622
5f3c8bf8
TC
623 - added admin/generate.tmpl for generate.pl progress output.
624
625 - added admin/makeindex.tmpl for search index verbose output
626
b27af108 627Internals:
6abd8ce8 628
b27af108
TC
629 - Squirrel::Table->make now looks for default_I<colname> when looking
630 for default values for a column.