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