Bric::Changes - Bricolage Changes
$Revision$
$Date$
This document lists the Changes to Bricolage introduced with each release.
MASON_INTERP_ARGS
bricolage.conf directive to allow you to pass
arguments to the Mason interpreter for the templates. [Scott]
Added support for sub-second precision to date and time management in
Bricolage. This means that dates can be stored in the database with
microsecond precision. This was done by modifying Bricolage's date and time
handling to use the DateTime module from CPAN under the hood. The upshot is
that you can use the full suite of strftime
formats supported by DateTime,
including the formats for milliseconds and microseconds. [David]
Added new ``Precision'' option to DateTime fields added to elements and
contributor types. The supported precisions are ``Year'', ``Month'', ``Day'',
``Hour'', ``Minute'', ``Second'', ``Millisecond'', and ``Microsecond''. For purposes of
backwards compatability, the default precision for custom DateTime fields is
``Minute''. [David]
SFTP_MOVER_CIPHER
bricolage.conf directive now actually works.
[David]
The group profile works again for element groups [David]
``Check In To'' link misalignment fixed for Konqueror, as well as some other
miscellaneous CSS fixes. [Marshall Roch]
The ``CREATE'' permission is now displayed when granting permission to user
groups to access the members an ``All'' group. [David]
The ``none'' media type is no longer editable via the UI. [David]
Invalid story cover and expire dates now properly trigger an error message.
[David]
Deactivated keywords are no longer returned by the get_keywords()
methods
of the Business asset class (from which Story and Media inherit) or the
Category class. Reported by Paul Orrock. [David]
Events are now properly logged for keywords managed in the keyword profile.
[David]
Media URIs are now properly updated when the primary output channel is changed.
Reported by Ben Bangert. [David]
Bulk publish no longer marks checked-out stories as published when it hasn't
published them. It also is no longer redundant when it reports that
checked-out assets won't be published. Thanks to Serge Sozonoff for the spot!
[David]
Safari users will no longer be stuck on the login page. [David]
The CSS directory now has its files always served as ``text/css''. This should
eliminate problems when Apache sometimes serves the CSS files as ``text/html''.
[David]
The desk_id
parameter to the list()
methods of the story, media, and
template classes now works. [João Pedro]
Stories published via the ``Checkin and Publish'' select list in the story
profile now correctly publish related stories and media. Reported by
João Pedro. [David]
Stories and media are no longer published twice when published from a publish
desk or via Bulk Publish. [David]
SFTP_MOVER_CIPHER
bricolage.conf directive to tune the SFTP mover
(if enabled) to the best cipher for good performance on the wire. [David]
list()
methods of the Story,
Media, and Template classes to complement those that have the awful double
underscores. [David]
Made SOAP modules more tolerant of lack of sites in 1.6. [Scott]
The collection API now checks newly added members when deleting members. This
ensures that newly added objects won't be saved to the database if they are
deleted, first. [David]
Turned off browser autocompletion in the Server and User profiles. This
prevents some browsers (e.g., Camino) from filling in your username and
password where it doesn't belong. [David]
When the ``Filter by Site Context'' preference is enabled, it no longer filters
documents when searching for documents to alias. Reported by Patrick Walsh.
[David]
The ``Cancel Checkout'' button in the Story, Media, and Template profiles now
tries to do the right thing instead of just leaving the asset on a desk in
workfow every time. If the asset was just created by the user, it will be
deleted. If it was just recalled from the library by the user, it will be
removed from workflow and shelved in the library. Otherwise, clicking the
``Cancel Checkout'' button will leave the asset in workflow. Requested by Sara
Wood, Rachel Murray, and others. [David]
make clone
now provides the current date and time for the default name for
the cloned package. Suggested by Marshall Roch. [David]
preview_another()
method now actually works. Thanks to
Serge Sozonoff for the spot. [David]
Fixed clone interface for IE users. Spotted by Serge Sozonoff. [Scott]
Some of the supported values for the Order
parameter to the Story, Media,
and Template classes, such as category_uri
, did not work before. Now they
do. [David]
Changing categories on a template no longer creates Frankensteinian template
paths. [David]
Added constant HAS_MULTISITE
to the Bric base classe so that all classes
properly declare themselves for UI search results. [João Pedro]
Story and Media SOAP calls now correctly use the element's key name to
identify the element. [João Pedro]
Story, Media, and Template creation via SOAP now correctly look up the
Category by URI and site ID. [João Pedro & David]
The Template SOAP interface now suports the site
parameter to
list_ids()
. [David]
The Story, Template, and Media SOAP list_ids()
intefaces now properly look
up categories, output channels, and workflows with the site
paremeter, if
there is one. [David]
The LOAD_LANGUGES
and LOAD_CHAR_SETS
directives are now space delimited,
to better match other bricolage.conf options. [David]
Aliased media documents now correctly point to the file name for the aliased
media document. Reported by Patrick Walsh. [David]
Thanks to the improvements to the collection class, cloning stories and
putting them into new output channels to ensure that they have unique URIs now
works properly. Reported by Serge Sozonoff. [David]
The publish status and version is once again properly set for media when they
are published. Reported by Serge Sozonoff. [David]
The group manager now properly displays the names of the sites that member
objects are associated with if the class of the objects being managed knows
that its objects are associated with sites. Reported by Ho Yin Au. [David]
The list of output channels to add to a media or story document in the media
and story profiles now includes only those output channels associated with the
site that the story or media document is in. [David]
Thanks to the fix to 1.6.13 that prevents deleted groups from affecting
permissions, there is no longer any need to provide a checkbox to get access
to deleted groups in the permissions interface. So it has been removed.
[David]
notes()
method to Bric::Util::Burner, along with the accompanying
clear_notes()
. The notes()
method provides a place to store burn data
data, giving template developers a way to share data among multiple burns over
the course of publishing a single story in a single category to a single
output channel. Any data stored here persists for the duration of a call to
burn_one()
. [David]
Added new contributed scripts for Bricolage button generation. These scripts
use the Gimp to generate localized buttons for the Bricolage UI based on the
contents of an input file. See contrib/button_gen/README for details.
[Florian Rossol]
Added support for icons for all media documents when the USE_THUMBNAILS
bricolage.conf directive is enabled. These rely on the presence of PNG icon
files for each MIME type in comp/media/mime. Only one such icons is
distributed with Bricolage, comp/media/mime/none.png (borrowed from the KDE
project under http://artist.kde.org/new/license.html#others), which is the
default icon when the MIME type of a media file is unknown or when no icon
file exists for the MIME type of the media file. Administrators are free to
add their own icons, and the copy_gnome_icons
script in contrib makes it
easy to use GNOME icons. [David]
Added bric_template_diff
and bric_template_patch
scripts in
contrib/bric_template_diff. These scripts can be used to sync templates
between two Bricolage servers. [Sam]
added bric_media_load
to contrib/
. This script copies media into
Bricolage while accounting for the new to update existing media. [Sam]
Added HTMLArea support. This adds a new type of field to be added to elements
and contributor types, ``WYSIWYG''. Such fields are then displayed in the UI
using HTMLArea, a WYSIWYG HTML editor. This can be useful in particular for
simple fields that often need emphasis added or links. It is not currently
available in Bulk Edit or Super Bulk edit. See Bric::Admin for
installation and configuration details. [Eric Sellers]
workflow__id
and desk__id
columns of the
story, media, and formatting (template) tables to be more efficient, being
indexed only when their IDs are greater than 0 (that is, when a story, media
document, or template is actually on a desk and in a workflow). [David]
Added a method is_fixed
to story and media objects, to determine whether
a business asset has a fixed URL (for example, a Cover page). Refer to
Bric::Biz::Asset::Business. [Scott]
Added the ENABLE_OC_ASSET_ASSOCIATION
bricolage.conf directive
to remove the ability to associate output channels from the story
and media profiles. [Scott]
The element administration profile now automatically adds the currently
selected site context to new elements, thus generally saving a step when
creating new elements. [João Pedro]
Added an interface to 'Clone' for stories so that you can change the category,
slug, and cover date, because otherwise an identical story is created, which
would cause errors for some stories. Clones are no longer allowed to have URIs
that are identical to the stories they were cloned from. [Scott & David]
Added the ability to Delete from desks (same as My Workspace). Note however,
that you can't delete from a publish desk. [Scott]
Completely documented the document element classes:
Bric::Biz::Asset::Business::Parts::Tile,
Bric::Biz::Asset::Business::Parts::Tile::Data,
and
Bric::Biz::Asset::Business::Parts::Tile::Container.
This should make it a bit easier on templators learning their way around the
Bricolage API. [David]
Refactored quite a bit of the code in the element classes. Renamed the methods
with ``tile'' in their names to use ``element'' instead (but kept the old ones
around as aliases, since they're used throughout the UI). Added a few methods
to make the interface more complete. [David]
Modified the get_containers()
method of
Bric::Biz::Asset::Business::Parts::Tile::Container to take an optional list of
key name arguments, and to return only the container subelements with those
key names. This is most useful in templates, where it's fairly common to get a
list of container subelements of only one or two particular types out all at
once. It neatly replaces code such as this:
for ( my $x = 1; my $quote = $element->get_container('quote', $x); $x++ ) { $burner->display_element($quote); }
With this:
for my $quote ($element->get_containers('quote')) { $burner->display_element($quote); }
And is more efficient, too. [David]
Modified theget_elements()
method of
Bric::Biz::Asset::Business::Parts::Tile::Container to take an optional list of
key name arguments, and to return only the subelements with those key names.
[David]
Added the get_data_elements()
method to
Bric::Biz::Asset::Business::Parts::Tile::Container. This method functions
exactly like get_containers()
except that it returns data element objects
that are subelements of the container element. It also takes an optional list
of key name arguments, and, if passed, will return only the subelements with
those key names. [David]
The ANY()
subroutine will now throw an exception if no arguments are passed
to it. Suggested by Dave Rolsky. [David]
Added the unexpired
parameter to the list()
method of the story and
media classes. It selects for stories without an expire date, or with an
expire date set in the future. [David]
The ``User Override'' admin tool is now available to all users. But a user can
only override another user if she has EDIT permission to that other user. This
makes it easier for user administrators to masquerade as other users without
having to change passwords. [David]
Eliminated another SQL performance bottleneck with simple searches of media
assets. [João Pedro]
Images with no dimension greater than the THUMBNAIL_SIZE
bricolage.conf
directive are no longer expanded to have one side at least THUMBNAIL_SIZE
pixels, but are left alone. [David]
Thumbnails are now displayed when searching media to relate to an element.
[David]
Thumbnails are now displayed in related media subelements. [David]
Added preview_another()
method to Bric::Util::Burner. This method is
designed to be the complement of publish_another()
, to be used in templates
during previews to burn and distribute related documents so that they'll be
readily available on the preview server within the context of previewing
another document. [Serge Sozonoff]
Added the subelement_key_name
parameter to the list()
method of the
story and media classes. This parameter allows searches on the key name for a
container element that's a subelement of a story or media document. [David]
Added support for all of the parameters to the list_ids()
method of the
Story, Media, and Template classes to the list_ids()
method of the
corresponding SOAP classes. This allows for much more robust searches via the
SOAP interface. [David & Scott]
Eliminated login_avail()
PostgreSQL function, replacing it with a partial
constraint. This not only makes things simpler code-wise, but it also
eliminates backup and restore problems where the usr
table is missing. The
downside is that it requires PostgreSQL 7.2 instead of our traditional minimum
requirement of 7.1. So any PostgreSQL 7.1 users will need to upgrade before
upgrading to this version of Bricolage. Suggested by Josh Berkus. [David]
make clone
will now properly clone a database on a different database
server, provided the host name (and port, if necessary) have been
provided. Thanks to Ho Yin Au for the spot! [David]
Admin tool lists that include the number ``9'' in the corner of a table of items
is now properly orange instead of green. Reported by Ho Yin Au. [David]
Bricolage works with Perl 5.6.x again, although it's pretty strongly
deprecated. Perl 5.8.0 or later is required for character set conversion and
if any content uses characters outside of US ASCII. Thanks to John Greene for
the spot! [David]
Image files uploaded in formats not recognized by Image::Info no longer
trigger an error. Reported by Alexander Ling. [David]
Changing the cover date of a media document once again correctly updates the
primary URI of the media document. Reported by Serge Sozonoff. [David]
Fixed API that was causing no elements to be returned on ``Add sub-elements''
page, when ``Filter by site context'' was turned on. [João Pedro]
When the SOAP server serializes and deserializes element templates, it now
correctly identifies the element by its key name, rather than its name. Thanks
to João Pedro for the spot! [David]
The template profile's ``cheat sheet'' of the subelements of an element now
correctly display subelement key names instead of munging element names, as
was required before version 1.7.0. [João Pedro]
Bric::SOAP::Category->list_ids
now converts site names to site IDs.
[João Pedro]
Bric::Util::Burner->preview
once again defaults to previewing in an
asset's primary output channel instead of using the element's primary output
channel. [João Pedro]
Added first_publish_date
attribute to the SOAP input and output for stories
and media. [David]
The category SOAP class now correctly calls lookup()
with the site ID to
prevent multiple categories with the same names but in different sites from
being looked up. [João Pedro]
User overrideable preferences are now properly checked for permissions to
allow users with READ permission to a user to see the permissions. [David]
Users can now edit their own user-overrideable preferences. [David]
Group management now works more correctly in user profiles where users have on
READ access to the user object. [David]
Removed queries added in 1.7.2 that were running at Bricolage startup
time. They could cause DBI to cache a database handle and return it after
Apache forks, leading to strange errors such as ``message type 0x49 arrived
from server while idle'', and occaisionally a frozen server. [David]
FTP_DEPLOY_ON_UPLOAD
bricolage.conf directive. [David]
Added ANY
function to be used with select parameters to story, media, and
template (formatting) list. Pass a list of values to this function to have any
of of them match for a given parameter. This is especially useful for matching
on, say, a list of URIs or category IDs. This function is automatically
available in templates. [David]
Added a feature that counts characters used in a textarea subelement on the
fly. It displays this figure and the number of characters left, immediately
above the textarea. This feature is enabled when the Max size attribute for the
textarea is given a non zero value when adding it to the element profile
stage. The JavaScript will also not allow you to have more than max size
characters in the textarea by truncating the data to that number of characters
every time someone adds another character beyond the maximum. [Paul
Orrock/Digital Craftsmen]
Added a feature to display image thumbnails in the search results and active
view for media objects that are image objects. This feature uses the Perl
module Imager from CPAN and the relevant image library for each format you
want to display. It can be turned on or off using the USE_THUMBNAILS
bricolage.conf directive. See
Bric::Biz::Asset::Business::Media::Image
for more information. [Paul Orrock/ Digital Craftsmen]
-U
option no longer requires that ``/dist/'' be at the
end of the URL. If ``/dist/'' is missing, bric_dist_mon will append it.
[David]
More story, media, and template query optimization. [David]
The story, media, and template queries now use aggregates to create arrays of
group IDs, instead of returning a separate row for each individual group
ID. Since all story, media, and template objects are now returned in single
rows instead of potentially many rows, this greatly cuts down on the overhead
of fetching data from the database. Suggested by Josh Berkus; implementation
help from David Fetter. [David]
Thanks to the aggregation of group IDs into a single row for each story, media
and template object, the Offset
and Limit
parameters to the list()
methods of the story, media, and template (formatting) classes are now handled
by the database back end, instead of in Perl space. This makes using these
parameters much more efficient.
Added -k
option to bric_ftpd to kill a currently running virtual FTP
server. This is made possible by the addition of the new FTP_PID_FILE
bricolage.conf directive. [David]
Asset groups associated with categories are now activated or deactivated
whenever their corresponding categories are now activated or deactivated.
This prevents them from showing up in the permissions interface. [David]
Added a check box to the permissions interface to enable the display of
inactive groups. This is primarily so that permissions can be modified on
inactive category groups, since they still affect access to any documents and
templates in those categories, even after they're deactivated. [David]
Updated documentation to reflect the reality that one should really only use
Perl 5.8.0 and later if one needs to use any characters outside of ASCII.
[Andrea Rota]
Added FTP_UNLINK_BEFORE_MOVE
bricolage.conf directive. This forces the
FTP mover to unlink an older version of a file before renaming the new version
to that name. This is necessary for some FTP servers that won't disallow
renaming a file to replace an existing file. [Andrea Rota]
Updated zh-cn and zh-tw localizations, translating all untranslated
messages and JavaScript messages. [Kang-min Liu]
Relabeled the ``Pre'' and ``Post'' attributes of output channels as ``URI Prefix''
and ``URI Suffix'', respectively. [Serge Sozonoff]
Added get_element()
method to Bric::Biz::Asset::Business and deprecated the
get_tile()
method. This will make things a bit more consistent for template
developers, at least. [David]
Added primary_category_id
parameter to the story class' list()
method. [David]
Updated the German localization. [Thorsten Biel]
Users can no longer sneakily add subelements for which they do not have at
least READ permission to the corresponding element via the Super Bulk
Edit. Reported by Patrick Walsh. [David]
The list of output channels available to be included in an output channel now
has the name of the site with which each is affiliated listed as well. This is
to prevent confusion between output channels with the same names in different
sites. [David]
Changed the vertical alignment of the labels for textarea fields in the story
profile to be consistent with the labels on the element profile. i.e. top
aligned. [Paul Orrock/Digital Craftsmen]
Made the default installed ``Photograph'' and ``Illustration'' media document
types true image objects, with autopopulated fields for height, width,
etc. Suggested by Simon Wilcox. [David]
Changed the default value of the SMTP_SERVER
bricolage.conf directive to
localhost. This has a much greater chance of working than defaulting to the
value of the VHOST_SERVER_NAME
directive. [David]
Eliminated the term ``Asset Type'' from the UI, replacing it with ``Element'',
``Story Type Element'', or ``Media Type Element'', as context demands. [David]
The Contributor manager no longer presents a ``New'' link if the Contributor
Type on which the contributor is based has no custom fields. This will prevent
folks from creating new contributor roles in the UI only to find that Bricolage
hasn't created them because there are no custom fields. [David]
In the formBuilder interface used by the Element and Contributor Type
profiles, the default maximum length of text and textarea fields is now ``0'',
or unlimited. [David]
When publishing from a publish desk, you can now uncheck related assets in
order to not publish them. You can also unset the PUBLISH_RELATED_ASSETS
bricolage.conf directive to never publish related assets. [Scott]
simple
parameter to the Media class' list()
method works again. As a
result, so does ``Find Stories'' in the UI. [David]
The de-de localization library has been fixed so that it now works. [David]
Filter by site context now works. 'All sites' context now returns results from
all sites instead of none. [João Pedro]
Several Alert Type fixes. Rule regular expression matching (=~, !~) now
handles patterns containing slashes (important for URIs, for example).
Attributes no longer show up as stringified hash references in subject or
message variable substitution. $trig_password
was removed from the Profile
as it caused an error and was useless anyway. And finally, duplicate and
spurious attributes were removed from the rules and message variable
lists. [Scott & David]
Fixed Template Element list, where container elements appeared twice.
[João Pedro]
The deletion of a site now properly resets the workflows to be displayed in
the side navigation layer. [David]
Changes to site settings are now correctly reflected in the UI for all users
as soon as they are made. [David]
New media documents no longer attempt to validate URI uniqueness until a file
has been uploaded. [David]
Autopopulated fields in media elements can once again have their values
fetched in templates. This problem was due to bad key names being created for
new image elements created after upgrading to 1.7.0. [David]
The workflow profile no longer displays deactivated sites in the site select
list. Thanks to Serge Sozonoff for the spot. [David]
The upgrade script that adds the first_publish_date
attribute to the
database now properly sets that date for existing assets, no matter how many
``publish'' events have been logged. There should be only one, but some systems
apparently have more. [Thorsten Biel]
Media, Story, and Template groups now properly display all of the permissions
that can be granted to user groups to access them. [David]
The ``Next'' button in the Element Type profile now correctly loads the next
page of the profile instead of returning to the manager. [David]
Fixed URI uniqueness upgrade scripts, which were having problems with
PostgreSQL permissions. [David]
make clone
works again. [David]
Fixed database building installer scripts to use the $PGHOST
environment
variable when it has been explicitly set to ``localhost'', both to override
existing instances of that variable on a system, and to allow tunneling
to work properly. [Thorsten Biel]
Distribution jobs can be edited via the UI again. Thanks to Marshall Roch for
the spot. [David]
Publishes once again work when the ``Date/Time Format'' preference is set to
something other than ISO-8601. Reported by Marshall Roch. [David]
bric_dist_mon
now correctly appends ``/dist/'' to the end of the server
URL if it is not already appended. Reported by Marshall Roch. [David]
If a desk is in a template workflow and a story or media workflow, and you
attempt to publish a media or story document from that desk in the context of
the template workflow, it will now properly publish the story or media
document instead of throwing an error. Reported by Serge Sozonoff. [David]
Fixed previewing with multiple OCs. [Serge Sozonoff]
Fixed a bug in bric_soap story create/update
caused by refactoring in
version 1.7.0. Found by David during a demo. [Scott]
An attempt to preview a story for which no template exists now gives a
friendly error message again. This was broken by the change in 1.7.2 that made
the Mason burner use document templates as true dhandlers. [Dave Rolsky]
The workflow menus in the side navigation layer no longer disappear after a
server restart. Reported by Ben Bangert. [David]
The Mason burner's special <%publish>
, <%preview>
, and
<%chk_syntax>
tags now work as advertised. Reported by Ben Bangert.
[David]
Publication of stories and media that automatically schedule expiration jobs no
longer causes an error. Reported by Marshall Bloch. [David]
publish_another()
method to Bric::Util::Burner. This method publishes
a document other than the one currently being published. This is useful when a
template for one document type needs to trigger the publish of another
document. [David]
Added new permissions ``RECALL'' and ``PUBLISH''. These permissions apply only to
asset groups, including desks, categories, and workflows. Now users must have
RECALL permission to recall assets from the library and bring them into
workflow, and PUBLISH permission to publish assets. This should make it much
easier to create more flexible permissions to manage approval
processes. [David]
Bricolage now supports per-user preferences. Admins can mark a preference as
overrideable, which allows users to set this preference to their preferred
value. [Dave Rolsky]
The character set and language preferences have been moved into the database,
so that these can be overridden by individual users if needed. [Dave Rolsky]
Added --published-only
option to bric_soap and bric_republish so that
the last-published version of a document can be republished, rather than the
current version. [Scott]
Added Bric::Util::Job::Pub. Publication can now be placed into a queue and
deferred until a scheduled time, instead of burning on command and
distributing later, Bricolage will now burn a story at the time of the
scheduled distribution. [Mark]
Added the bric_queued
daemon to take advantage of the new publication
scheduling of Bric::Util::Job::Pub. Together with the use of a carefully tuned
instance of Bricolage, these new features allow the Bricolage administrator
to control the amount of system resources given over to publishing. [Mark]
German localization completed. [Thorsten Biel]
Added get_parent()
method to Bric::Biz::Asset::Business::Parts::Tile. This
simplifies getting access to a parent element in an element template. [David]
Added User and Desk (asset) modules to the SOAP API, added asset commands
to the Workflow module, and made corresponding changes to bric_soap. [Scott]
Added burn_again
attribute to the Mason burner. This method can be called
from within a template to force the burner to burn the current page again,
creating a new file. This can be useful for creating multi-file output
without extra paginated subelements. [David]
Added zh-cn localization, with translation based on zh-tw. [Kang-min Liu]
--skip-existing
directive.--media-info
directive.See the script's usage info for details. [Simon Wilcox]
Fixed upgrade scripts to be more intelligent in their handling of transactions. They no longer allow SQL errors without failing the upgrade. The upgrade scripts have also been updated to ensure successful upgrades to Bricolage installations as far back as 1.4.0. [David]make upgrade
now suggests that the user run make clone
on the existing
installation, and asks the whether to continue or not. This is to encourage
folks to have a good backup before upgrading, in case the upgrade fails.
[David]
Added element_key_name
parameter to the list()
method of the story,
media, and formatting classes. This makes it easier to use the name of a story
type element, media type element, or template element to search for assets,
rather than the element__id
parameter, which isn't as friendly. [David]
Added ``Filter by Site Context'' preference. When active, search results only
return assets relative to the site context instead of all the sites the user
has access to [João Pedro]
The Mason burner now uses document templates as true dhandlers, enabling full
Mason-style inheritance from autohandlers to work properly. [David & Dave
Rolsky]
``All *'' groups can now be accessed via the Group Manager. Their names and
memberships cannot be edited, but their permissions can. Inspired by a bug
report from Patrick Walsh. [David]
Queries for stories, media, and templates have been greatly optimized. Thanks
to a large database from The Register and query optimization from Josh
Berkus (under sponsorship from WHO) and Simon Myers of GBDirect, searches for
stories in the UI are now 10-40 times faster than they were before (depending
on the version of PostgreSQL you're running). [David]
Added the story.category
parameter to the list()
method of
Bric::Biz::Asset::Business::Story. Pass in a story ID, and a list of stories
in the same categories as the story with that ID will be returned, minus the
story with that ID. This parameter triggers a complex join, which can slow the
query time significantly on underpowered servers or systems with a large
number of stories. Still, it can be very useful in templates that want to
create a list of stories in all of the categories the current story is in. But
be sure to use the <Limit> parameter! Thanks to Josh Berkus for his help
figuring out the query syntax. [David]
display_element()
method in the Mason burner once again passes
component arguments on to components. And now, so does sdisplay_element()
.
[David]
Fixed favicon.ico code so that the browser and server don't go into an
infinite loop with redirects of redirects. The favicon.ico still doesn't
pop up in the location field in my browser, but it does display properly if I
point my browser at it. [David]
An attempt to create a document with the same URI as an existing document no
longer litters the database with broken stories. Thanks to Arthur for the
spot. [David]
Redirection after some publishes and previews works again, instead of
returning a text page to the browser. [David]
Now displaying the name of the site each story and media document is in in
Find Stories and Find Media. Suggested by Arthur. [David]
A number of fixes for the bric_media_upload contrib script:
--bric_soap
and --site
options.See the script's usage info for details. [Dave Rolsky]
Changing a media item's category and then saving caused an error. [Dave Rolsky] Changing a media document's cover date no longer causes the URI to disappear. Thanks to Dave Rolsky for the spot. [David] Attempting to preview a story for which there are no associated destinations no longer causes the error 'Can't call method ``ACCESS'' without a package or object reference'. Thanks to Earle Martin for the spot! [David] Addedoutput_channel_id
parameter to the list()
method of Bric::Biz::Site
in order to prevent sites without output channel associations from being
listed in the select list for story type and media type elements. [David]
When a document fails to publish because there are no destinations configured,
the UI no longer displays a message saying that it was published. [David]
Fixed page logging so that redirects to the page before the current page can
work correctly. It was most noticeably broken when trying to associate a
contributor with a document. [David]
The upgrade process no longer moves media document files to where Bricolage
can't find them. If this happened to you, just
mv $BRICOLAGE_ROOT/comp.old/data $BRICOLAGE_ROOT/comp
. [David]
Performing an action in the contributor and category association interfaces in
the story and media profiles no longer causes an empty search to be performed
and return all contributors or categories. This could be a pain for
organizations with 1000s of contributors or categories. Thanks to Scott for
the report! [David]
The Key Name field in the element profile is no longer editable. Only new
elements can type in the key name field. Thanks to Arthur for the spot!
[David]
The Template toolkit burner now correctly uses element key names instead of
names to find corresponding templates. [David]
Management of user groups in a double list manager UI no longer causes an SQL
error. Spotted by Alexander Ling. [David]
Sites added to a site group will now be listed as members of the site group in
the site group's profile. Thanks to Alexander Ling for the spot. [David]
Improved permission checking in the virtual FTP server. [David]
Uploading a new version of a media file did not change the path to the
media file stored in the database, unless the file name of the media
was also changed. [Dave Rolsky]
has_name()
method a
bit simpler -- and it can in fact be ignored in favor of
$element->get_key_name eq $key_name
. Thus there may be some warnings
if older name values are passed to has_name()
. [Garth]
Refactored Bric::Biz::Keyword. It is now more compliant with the standard API
as defined in other classes. Also added support for keyword groups so that we
can create a keyword manager. [David]
Added $burner->sdisplay_element
method to Bric::Util::Burner. This is a
sprintf
-style version of $burner->display_element
. [Scott]
Added get_data_element()
method to
Bric::Biz::Asset::Business::Parts::Tile::Container. This allows template
writers to more easily find a single data element object, rather than just the
value of a single data element (as get_data()
does). Inspired by a comment
from Bill Cappel. [David]
Added the YEAR_SPAN_BEFORE
and YEAR_SPAN_AFTER
bricolage.conf
directives. These directives control how many years before and after
the current year to display in the list of years in the date and time select
widget. The default values are 10 for each, meaning that if the current year
is 2003, then the date span will be from 1993 to 2013.
Added the ENABLE_SFTP_V2
bricolage.conf directive to make
SSH protocol 2 be tried first. [Scott]
Added ``Email'' action, which can be used to email the files generated by a
publish to one or more email addresses. Funded by ETonline. [David]
Callbacks were moved from Mason components to modules based on
Params::Callback and managed by MasonX::Interp::WithCallbacks. This makes the
UI layer more responsive and enhances maintainability. [Scott]
Optimized performance of URI uniqueness checks by adding database tables to do
the job, rather than constructing the URIs for all other documents in the same
categories as the document being checked. This was the last major bottleneck
affecting SOAP performance, as well as document editing in general. Funded by
Kineticode. [David]
Added instance()
class method to Bric::Util::Language, so that non-OO
functions can get access to the current language handle. [David]
Added output_channel_id
parameter to the list()
methods of Story and
Media to enable querying for documents in output channels other than the
primary output channel. Based on a patch from Clive Jones. [David]
Lots of notification message localization fixes. [Radu Greab]
Status message localization fixes [David]
Added ``search by element type'' to Advanced Search of the Find Stories
and Find Media interfaces. [Scott]
Added a preference to select Simple or Advanced search in Find Stories/Media
the default search when you go to those screens. [Scott]
Added ``Select all'' button to select all the checkboxes on publish desks or My
Workspace. [Scott]
Added Keyword Management interface to centrally manage keywords. [Scott]
Added --workflow
and --desk
options to create and update commands of
bric_soap
, so that assets can be moved to a desk at the same time as
creation or updation. [Scott]
Added Group Membership sections to most of the profiles. [João Pedro]
Some optimizations to Bric::SOAP::(Media|Story|Template) classes. [Scott]
Added HTML::Mason Custom tags support, allowing template developers to write
code blocks that are context sensitive. See the Bric::AdvTemplates manpage for
documentation on this. [João Pedro]
Added new page extension support to the burner, which allows template
developers to set string extensions to use for successive file names, rather
than the traditional use of numeric file name extensions for successive file
names. [Clive Jones]
Added ``Text to search'' option in the Advanced search of Media and Stories to
search for documents based on the contents of their field. [João
Pedro]
All preview links are now generated by a single widget. This widget adds the
story or media URI to the ``title'' attribute of the link tag (which is modern
browsers will automatically work as a roll-over tooltip), makes the story or
media URI copyable (by relying on JavaScript to actually open a new window for
the preview), and manages selecting an output channel in which to preview a
story. [David]
Made User Group Permissions UI wieldy with larger numbers of users by adding a
select list to choose which type of Permission to look at. [Scott]
Added ability to preview stories in a selection of output channels in the View
(read-only) story profile. [David]
Combined the asset ``Find'' managers into a single component, thus eliminating a
lot of redundant code. [David]
Added contrib_id
parameter to the list()
methods of
Bric::Biz::Asset::Business::Story and Bric::Biz::Asset::Business::Media to
return a list of story or media documents associated with a given
contributor. [David]
Switched Bric::Util::CharTrans from using Text::Iconv to Encode, thus removing
the dependency on a C library (libiconv). Note that this has changed the API
of Bric::Util::CharTrans. Its to_utf8()
and from_utf8()
methods now
always convert the argument passed in in place. They did this before for
references, but now they do it for plain strings, as well. Also note that use
of character translation also now requires Perl 5.8.0 or later. [Scott &
David]
Factored out some of the SOAP asset classes into Bric::SOAP::Asset. [Scott]
Added MediaType, Site, and Keyword SOAP modules. [Scott]
Changes to a story's slug, cover date, or primary category will now be
displayed before the story is saved. Suggested by a coworker of Andy
Baio. [David]
The Find Stories, Find Media, and Find Templates interfaces now disallow
searching for and returning all of the stories and media in the database. This
will help prevent thousands or tens of thousands of assets from being
displayed in the UI and sucking up all the resources on the server. [David]
Added ``element'' attribute to Bric::Util::Burner so that
$burner->get_element
should always return the element currently being
burned. [David]
Added burner-specific exceptions with context information, including current
output channel, current category, and current element. [David]
Added a throw_error()
method to Bric::Util::Burner so that template developers
can easily throw an exception that their users will see in the UI. [David]
Added best_uri()
method to Bric::Util::Burner to return the most
appropriate URI (in Bricolage's opinion) for a document. Mainly useful when
multiple sites and document aliases are used. [David]
Greatly simplified burner subclassing by adding a new registration method to
Bric::Util::Burner. This cuts down on the number of files that need to be
edited to add a new burner. [David]
Moved category selection from Media and Story Profiles into their own separate
components so that organizations with hundreds or thousands categories don't
have to load them into a dropdown list every time an asset is edited. The
category ``browser'' uses an interface similar to 'Associate Contributors',
which has the advantage of being searchable rather than looking through a
``long list of all categories''. This feature can be enabled via the new
ENABLE_CATEGORY_BROWSER
bricolage.conf directive. [Scott]
Added list paging to Desks and My Workspace. [Scott]
XHTML/CSS-ized desk items. This approach is the future of the Bricolage
interface: purely structural HTML, with CSS to create the presentation.
Eventually, we'll be able to have UI preferences to change font sizes or the
entire look and feel just by switching style sheets. But for now, this change
should help with the display of desks with many items on them, and it should
also speed the display of such desks. Turn off the USE_XHTML
bricolage.conf directive to get the old desk views back (useful for older
browsers). [David]
Added a preference to set the default Story/Media sorting. [Scott]
Added the ability to test templates without having to deploy them by using
``template sandboxes'' for each template developer. [João Pedro]
Added Template Toolkit burner support. [Arthur/Fotango]
Added a bricolage.conf directive, ALLOW_SLUGLESS_NONFIXED
, to prevent
slugless non-fixed (non-Cover) stories. [Scott]
Added support for installing and upgrading Bricolage with PostgreSQL on a
separate host. [Thorsten Biel]
Added context-sensitive help for pages that were missing it. [Scott]
make upgrade
no longer simply overwrites the contents of the UI component
root ($BRICOLAGE_ROOT/comp), but renames it $BRICOLAGE_ROOT/comp.old and
writes out a new one. This is both so that deleted UI component files don't
remain behind after an upgrade, and so that users can access any files that
they've changed in the old component root. Most users can just delete it after
upgrading. [David]
make upgrade
once again correctly creates postgres.db if the existing
installation doesn't know the installed version of PostgreSQL. [David]
Adding notes to image, video, or audio media documents no longer causes an
error. Reported by Christian Hauser. [David]
Errors in the PERL_LOADER
bricolage.conf directive no longer silently
fail. [David]
A successful login no longer redirects back to the login page, thus no longer
forcing a second redirect in such cases. Reported by Marshall Roch. [David]
The $burner
object is now available in Mason template <%once>
blocks
during the syntax check, although $story
and $element
are not. All three
are in the <%once>
block during previews and publishes. This means that
they can all be used in a <%once>
block like this:
<%once>; unless ($burner->get_mode == SYNTAX_MODE) { # Do stuff with $story or $element. } </%once>
Reported by Serge Sozonoff. [David]
list()
methods of the story, media, and template
classes are now properly converted to UTC (and the database internal format)
before being passed to the database. [David]
Elminated some warnings. Reported by Christian Hauser. [David]
Simplified error handling in the Bric
base class and when running outside
of mod_perl
. [David]
Fixed issue with load order directives in Bricolage dynamic httpd.conf
generation. This had caused the PREVIEW_MASON
directive to not work in some
cases. Incidentally, this change also allows dynamic configuration of mod_perl
1.26 and earlier. [David]
workflow__id
column of the story
, media
,
and formatting
(template) tables. [David]
Made index on the desk__id
column of the story
, media
, and
formatting
(template) tables a partial index, since the column will usually
be NULL
. [David]
Added an index to the description column of the story_instance
,
media_instance
, and formatting
(template) tables to speed up simple
searches. [David]
Added missing foreign key constraints for the desk_id
column of the
story
, media
, and formatting
(template) tables. [David]
make clone
no longer fails when it can't find httpd.conf, because it
no longer looks for it. [David]
make clone
no longer assumes that the conf directory is in
$BRICOLAGE_ROOT
, and prompts the user to find out. [David]
Bricolage once again works with Perl 5.6.x and Perl 5.8.1. [David]
Made bric_republish and bric_dev_sync safe to use with https://
.
[Geoff Richards]
The user object is no longer instantiated from the database every time a user
sends a request to Bricolage. It appears that this bit of overhead has
unfortunately been imposed on every request since Bricolage 1.0 due to a very
stupid typo. [David]
The creation of the Bricolage PostgreSQL user and database during installation
no longer complains about usernames or database names with dashes and other
non-alphanumeric characters in them. Thanks to Marshall Roch for the spot!
[David]
Fixed ancient bug revealed by the release of DBI 1.41. [David]
Photoshop-generated images no longer make Bricolage choke when they're
uploaded to a Media profile that autopopulates fields. Reported by Paul
Orrock. [David]
The lookup()
method of the story, media, and template classes will now
correctly return inactive objects. [David]
Fixed typo of CHECK_FREQUENCY
in Bric::Config that made it always use the
default of 1. [Scott]
The lookup()
method of the story, media, and template classes once again
attempt to retrieve objects from the per-request cache before looking them up
in the database. [David]
Changed the name of the event logged when templates are checked out from
``Template Checked Out Canceled'' to the correct ``Template Checked Out.'' [David]
lookup()
method now returns deactivated
objects, as it should. Thanks to Nuno Barreto for the spot. [David]
Events with attributes with the same name as attributes of the object the
event was triggered on (a common occurrence) no longer confuses the two. Thanks
to Todd Tyree for the spot. [David]
Users granted permission to access the members of a group via two user group
associations now always get the highest priority permission, as it should
be. Thanks to Patrick Walsh for the spot. [David]
Textarea fields in elements no longer lose some of their default data after
editing the field in the element manager. Reported by Todd Tyree. [David]
Media assets now properly remember their class, which means that autopopulated
fields (such as ``height'' and ``width'' for images) are autopopulated when a new
image file is uploaded. Thanks to Patrick Walsh for the spot! [David]
Updated Chinese Traditional localization. [Kang-min Liu]
<%attr>
s and calling of <%method>
s in category
templates from story templates. [David]
Permission to edit element fields is now based on the permissions granted to
edit the elements they belong to. This means that users other Global Admin
group members can now edit fields. [David]
Dates are no longer editable if a user doesn't have permission to edit them.
[David]
Users without EDIT access to an element no longer see a link to Edit fields
of that element, but a link to View them, instead. They will also no longer
see an ``Add Subelements'' button. [David]
Fixed bug that triggered an invalid error message when a story URI is non-unique.
Reported by Kevin Elliott. [David]
Assets with the same IDs but in different classes (media vs. stories vs.
templates) no longer prevent each other from being added to a desk that can
contain different classes of assets. Thanks to Scott for the spot and doing
the research that lead to the replication of the problem. [David]
The Log page no longer improperly redirects to the preview page after a
preview. Reported by Simon Wilcox. [David]
bric_soap
to accept a --server
argument starting with ``https'',
which is more friendly to an SSI environment. [Geoff Richards]
The PostgreSQL admin username and password arguments were reversed during
make upgrade
. [Thorsten Biel]
Fixed broken foreign key index on element table. [Dave Rolsky]
Added partial index to speed queries against the job table, and thus to speed
distribution. [Mark]
Fixed upgrade module to properly grant the correct Bricolage database user
permission to access new tables and sequences. [David]
An upgrade script failure will really now cause make upgrade
to halt
installation so that any issues are immediately identified and correctable.
[David]
Updated slug RegExen. They were a bit too strict, and should be better now,
allowing dots, dashes, and underscores. Spotted by Creighton Higgins. [David]
The $name
variable no longer shows up twice in the list of available
content variables for alert types on media documents. Thanks to Scott for the
spot! [David]
Inactive alert types no longer trigger the sending of alerts. Thanks to Scott
for the spot. [David]
Added tests for validity of the POD in *.pod files as well as *.pm
files. Fixed a few POD typos found as a result. [David]
Fixed element_data_id
parameter to
Bric::Biz::Asset::Business::Parts::Tile::Data to actually work. Reported by
Eldar Kononov. [David]
Bric::Biz::Asset::Business::Story->get_secondary_categories()
will no
longer return categories deleted from the story. Thanks to Scott for the
spot. [David]
Removed some unnecessary JavaScript validation. [David]
Bug fix when deploying to multiple output channels. If the output channel IDs
matched each other partly, it could cause a file to be removed after it just
had been uploaded. [Arthur/Fotango]
Users with CREATE access to a start desk can once again create stories on that
desk even when they don't have CREATE access to ``All Stories.'' Reported by
Simon Wilcox. [David]
Each upgrade script is now run within the confines of a single database
transaction. If any database changes within an upgrade script encounter an
error, all of the changes in that script will be rolled back. Suggested by
Arthur. [David]
An upgrade script failure will now cause make upgrade
to halt installation
so that any issues are immediately identified and correctable. [David]
An invalid date in a date element field no longer causes an error. Thanks to
Arthur for the spot! [David]
With (STORY_URI_WITH_FILENAME
enabled and when there is no defined file
extension Bricolage now doesn't insert an ending '.' (dot). [Arthur/Fotango]
Slight fix to virtual FTP server to handle bad FTP clients that try and use
directories as files. [Arthur]
DBI->connect_cached()
from using our own database
connection caching. This change does bump up the minimum required version of
DBI to 1.18, though the latest version is always recommended. It's also the
right thing to do. Thanks to Perrin Harkins for the suggestion. [David]
Fixed issue that could cause Bric::Util::DBI to create inconsistent
transaction states. Spotted by Rudy Lippan. [David]
Removed passing of DEBUG argument to prepare()
, prepare_c()
and
prepare_ca()
, since it hasn't actually worked in some time, and could
potentially change the behavior of the prepare. [David]
Bric::SOAP::Workflow no longer throws an error when its publish_date
parameter is undefined. Reported by Kevin Elliott. [David]
Passing an undef via the workflow__id
parameters to the list()
method of
Story, Media, or Template really does again cause Bricolage to correctly
return only those assets that are not in workflow. It wasn't as fixed in 1.6.3
as I had thought. Reported by Kevin Elliott. [David]
Vastly improved the speed of the query that lists events, and added an index
to help it along, as well. [Mark]
The list of categories associated with a story is now presented in
alphabetical order by URI in the story profile. Suggested by Geoff
Richards. [David]
The FTP mover now properly deletes files rather than erroring out. [Clive
Jones]
Fixed installer to use PostgreSQL 7.1 syntax to update statistics. [David]
Now setting $PGDATESTYLE
environment variable so that PostgreSQL isn't
confused about the date style Bricolage is using. Suggested by Chris Riddoch.
[David]
Users without EDIT access to the start desk in a workflow can no longer create
assets in that workflow. Nor can they check out assets from the library, as
there's no start desk for them to check them in to. But they can still check
them out from other desks that they have EDIT access to. Reported by Rachel
Murray. [David]
Time zone issues have been fixed to be more portable. Some platforms that
experienced Bricolage unexpectedly shifting cover dates and other dates and
times by several hours should no longer see this problem. [David]
Non-existent methods no longer throw ``permission denied'' exceptions, but the
standard Perl ``Can't locate object method'' exception. This is to eliminate
confusion with permission to access Bricolage objects. [David]
Adding a new element type with the same name as an existing or deleted element
type no longer causes an SQL error. Thanks to Gary Gilchrist for the spot.
[David]
list_ids()
methods in Bric::Biz::Asset's subclasses
ignore the Order
and OrderDiretion
parameters and return an unordered
list of IDs. Reported by Clive Jones. [David]
The ``Add Element'' select list in story, media profiles now lists the fields
that can be added in the order specified in the element profile, and then the
subelements that can be added, instead of mixing up fields and subelements in
alphabetical order. Thanks to João Pedro for the spot! [David]
When a template is deployed, Bricolage now checks to see if its file name has
changed since it was last deployed, and if it has, it deletes the old
file. Reported by Kevin Elliott. [David]
Optimized performance of Bric::Dist::Resource queries and wrote lots of tests
for them. [David]
When a story or media document is published, Bricolage now looks to see if any
files distributed for previous versions of the document are no longer
associated with the document, and expires them if they are. It does so on a
per-output channel basis, so note that if output channel settings have changed
since the document was last published, the expiration may miss some stale
files. The same goes for when destinations are changed. But this should cover
the vast majority of cases.
Fixed error looking up alert types in the database, which affected the alert
type manager on some platforms. Reported by Radu Greab. [David]
Deactivated alert types are once again available via the UI. [David]
Text input fields no longer impose a default maximum field length. This is so
that element fields that have their maximum length set to 0 can truly be
unlimited in length. Reported by Kevin Elliott. [David]
Template output channel associations no longer trigger an error when importing
templates via the SOAP interface. [Clive Jones]
Passing an undef via the workflow__id
parameters to the list()
method of
Story, Media, or Template once again causes Bricolage to correctly return only
those assets that are not in workflow. Reported by Kevin Elliott. [David]
Extra blank lines between subelement tags in super bulk edit no longer causes
an error. Thanks to Kevin Elliott for the spot! [David]
Searches no longer return unexpected results or all objects when pagination is
enabled. Thanks to Kevin Elliott for the spot! [David]
The searches for documents by beginning and ending cover dates were not
inclusive of the end date. Now they are! Reported by Kevin Elliott. [David]
Fixed spelling of ``contributor'' in the description of the contributor type
class in the database. Noticed by Radu Greab. [David]
comp/data/media/$version/
rather than
comp/data/media/$id/$version/
. [Mark]
Fixed SQL bug that might in rare situations cause element output channel
associations to become confused. [David]
Fixed issue where new output channels added to a document type element were
not always actually saved as a part of that element. [David]
Fixed side navigation spacer graphic to the same width as other such
graphics. Helps Chinese Traditional to display more nicely. [Kang-min Liu]
The media simple search now searches by URI again. [Mark]
Now HTML-escaping the contents of the context content displayed for
subelements so as to prevent HTML in fields from messing up the display.
[Mark]
Fixed installer to again work with versions of PostgreSQL prior to 7.3. Thanks
to Marc Hawson for the spot. [David]
Fix for 'Can't call method ``out_method'' on an undefined value' generated
during a burn. [Mark]
Many minor HTML corrections. [Gerfried Fuchs]
Fix for SQL error when searching for media by file name. [David]
Eliminated 'Can't locate object method ``redirect'' via package
``HTML::Mason::Request''' error that caused Bricolage to actually display a
generic error page, instead of its custom error page. [David]
Alert types can once again be deleted from the alert type profile. [David]
Users can now only add subelements to a story if they have at least READ
permission to those subelements. Thanks to Mark for the spot. [David]
If the installer notices that you're attempting to install Bricolage in a
directory with an existing installation, it will suggest that you consider
running make upgrade
, instead. Suggested by Bruce Albrecht. [David]
The list manager now sorts version numbers as numbers rather than strings.
[João Pedro]
The media type profile again allows extensions to be added and removed.
Reported by Tobias Kremer. [David]
Added the CHAR_SET
directive's value to Bricolage's Apache configuration
via the httpd.conf directive AddDefaultCharset
. Might help with some
Unicode issues. [David]
Distribution error handling is better now, with errors passed back to the
client and an error when bric_dist_mon attempts to connect to a server or
URL that's not a Bricolage distribution server. [David]
Eliminated installation error 'Failed to create database: parser: parse error
at or near ``template0''', which occurred with versions of PostgreSQL prior to
7.3. [Scott]
Enabled the PERL_LOADER
bricolage.conf configuration directive and gave
it a default value that's actually useful. [David]
Perl 5.8.0 or later is now strongly recommended for better Unicode support.
Fixed deleting an Alert Type Rule. Also fixed Editing Alert Type Recipients.
[Scott]
Notes are once again saved with a document. Thanks to Scott for the spot!
[David]
Fixed an issue with FTP distribution where the incorrect FTP root was used an
invalid path. [Clive Jones]
The title and description of a story or media document are now properly
reverted when the document is reverted to an earlier version. Thanks to Scott
for the spot. [David]
Pagination now works properly when searching for groups by type in the group
manager. [Scott]
Pagination now works properly when searching for elements by element type in
the element manager and when searching for contributors by contributor type in
the contributor manager. [David]
Creating a new story that has a URI that conflicts with an existing story no
longer creates an extra story. Reported by Clive Jones. [David]
Changed ``Cannot publish asset because there are no Destinations associated
with its output channels'' to instead include the name of the output channel
missing Destination associations so that the user can tell which output
channels need a Destination association. [Clive Jones]
When an document's primary output channel has been changed to something other
than that defined by its document type element, preview will now correctly
use the document's primary output channel instead of the element's primary
output channel. [David]
Returning to a desk from editing an asset that was selected for editing from
that desk no longer triggers an error. Thanks to Clive Jones for the spot!
[David]
An attempt to preview a story where its templates output no content no longer
results in an error. Reported by Eldar Kononov. [David]
Clicking ``Cancel'' in an element no longer saves the changes in that element
before going up to the parent element. Thanks to Andrew Baio for the spot!
[David]
Changes made to the default values of fields in the contributor type profile
are now properly saved. Reported by Scott. [David]
Adding Extensions to a Bric::Util::MediaType object when creating it via that
class' new()
constructor works again. Reported by Clive Jones. [David]
Added Localization support to widgets that were missing it. Added pt_pt
localized images. [João Pedro]
Documents are no longer distributed to deleted (deactivated) destinations.
Reported by Mark. [David]
Eliminated several error log authentication message such as ``No cookie found.''
This tended only to confuse users when they were just starting to use
Bricolage. I've left in a few error messages, however, so that system
administrators can see in the log when it looks like someone is trying to hack
into Bricolage. The remaining authentication error log messages are:
make clone
now properly clones bricolage.conf, httpd.conf
, and all of
the contents of conf/. [David]
make clone
now properly creates inst/Pg.sql instead of
inst/bricolage.sql. It also once again properly resolves the circular
dependency between the ``usr'' table and the login_avail()
PostgreSQL
function. [David]
The FTP distributor now deletes existing copies of files before renaming a
temporary file when connecting to Win32 servers. This is because the IIS FTP
server doesn't seem to support renaming a file to the same name as an existing
file. [David]
Creating the database during make install
no longer fails if someone
is already connected to template1. [Scott]
A preview link is no longer in the ``Find Media,'' ``Active Media,'' desk, or ``My
Workspace'' views for media that have no associated file. [David]
make upgrade
now uses the correct PostgreSQL root username and password,
instead of the default ``postgres'' username and empty password. Thanks to Paul
Cory for the spot! [David]
Burn-time exceptions are once again properly displayed in the error
page. [David]
When the STORY_URI_WITH_FILENAME
bricolage.conf directive is enabled,
stories are now written to the proper file when previewed or published. Thanks
to Kevin White for the spot! [David]
Fix issue that came up with the release of Mason 1.20. Reported by Jeff
Steele. [David]
Fixed typo in Media Type manager that broke it. Reported by Lari Huttunen.
[Scott]
Fixed problem where an attempt to add new output channels to a new element
before saving that element cause errors. Mainly noticeable when creating
elements via SOAP. Thanks to Mark for the spot. [David]
Various localization fixes. [Scott]
Fixed event logging for element fields. [David]
Media assets that are based on ``Image'', ``Audio'', and ``Video'' element types now
properly show up on desks. Note that existing media assets missing from desks
should be checked out via ``Active Media'' and moved to a new desk. [David]
Documented the support for passing %ARGS
to $burner->display_element()
in templates. It was added to Bric::Util::Burner::Mason a while ago, but I
forgot to document it! Thanks to Mike Slattery for the spot. [David]
Added Crypt::SSLeay to the list of optional modules to be installed. This
module is required for SOAP communications over SSL. So if you use SSL and you
use the SOAP server, you'll want to install it. [David]
Fixed alerts so that alerts are once again sent to the members of groups.
Reported by Paul Cory. [David]
Deleted alert types are no longer displayed in the Alert Type Manager. Thanks
to Paul Cory for the spot! [David]
Added more intelligent code using HTTP headers instead of HTML to prevent
browsers [IE] from caching pages. [David]
Bricolage no correctly sets the HTTP headers for the content language and
character set. Thanks to Nathan Ollerenshaw for the spot! [David]
make clone
now changes the user and group ownership on the cloned files to
the values for the current user (root). This is to avoid problems when
tar
ing up those files. [David]
Added code to Apache configuration to force JavaScript files to be served with
the proper character set HTTP header. Those who use manual Apache configuration
along with Bric::App::ApacheStartup will want to add the following configuration
directive to your httpd.conf:
<Location /media/js> ForceType => "application/x-javascript; charset=utf-8" </Location>The virtual FTP server no longer displays templates in subcategories of the current subcategory directory. Thanks to George Harrison for the spot! [David] Output channel associations in story type and media type elements can now be deleted again. Thanks to Arthur Bergman for the spot! [David] Added listing of emeritus developers. Otherwise Sam was simply listed as a patcher, which is hardly accurate. [David] The element profile no longer displays deleted fields after clicking the ``Save and Stay'' button. [David] The element profile now correctly issues a warning when a field is selected to be deleted. [David] Made unlocalized JavaScript message localized. [David]
STORY_URI_WITH_FILENAME
bricolage.conf directive, which, when
enabled, allows story URIs to include the file name. This is especially useful
in output channels where ``Use Slug as File name'' is enabled, since it allows
stories to essentially have identical URIs except for the file name. Off by
default. [David]
Added bric_media_upload, a media file bulk import utility, into
contrib. Thanks to Matt Vella for the contribution.
New help pages for the event log and the workflow trail. Thanks to Geoff
Richards for the contribution.
Some unnecessary JavaScript was removed from the side navigation layer. Thanks
to Eldar Kononov for the suggestion. [David]
Added keyword support for media assets to SOAP interface. [David]
Neatened the ``Find Stories,'' ``Active Stories,'' ``Find Media,'' and ``Active
Media'' screens and added the ability to preview stories and media by clicking
their titles. [David]
Added Field Profile, so that element Fields can be edited. This is a marked
improvement over the old interface, which required that fields be deleted and
recreated if users wanted to change them. [Scott]
make upgrade
, too,
thus ensuring that the Bricolage database user always has the appropriate
permissions to access the database. [David]
Assets can once again be removed from workflow. [David]
The published version attribute is now set on templates when they're
deployed. Thanks to Geoff Richards for the spot. [David]
The bricolage.conf and httpd.conf files are now created during make
rather than make install
so that make test
can take advantage of them.
[David]
Bric::App::Session and Bric::App::Cache no longer chown
their files and
directories during make test
. [David]
Super Bulk Edit no longer joins lines together without a space, so that words
should now be properly separated. [David]
Deleting a story or media subelement no longer results in an error. [David]
Help has been restored. [David]
A value of ``0'' (zero) can now be given to element fields. This bug has been in
Bricolage since the beginning! Thanks to Mark for the spot. [David]
Stories with subelements containing no field elements no longer cause an
error when the container profile is looking for contextual information to
display about a a subelement. Thanks to Chris Jantzen for the spot. [David]
Bulk editing a field without first going through the element profile and
without adding or removing or reordering field elements now preserves the
data. This is another bug that has been in the code since the beginning of
time, and was only recently identified. Thanks to Rachel Murray for the spot.
[David]
Fixed an obscure bug where an element with a field element and a container
element with the same ID could cause an error when one tries to edit the
container element and Bricolage tries to load the field element,
instead. Embarrassingly discovered in the middle of a presentation to the
London Perl M[ou]ngers. [David]
Minor JavaScript fix for Opera users, thanks to Kevin White. [David]
The ``multi'' installation method now defaults the ``Bricolage Root Directory''
setting to /usr/local/bricolage instead of ``NONE''. This seems to be less
annoying to people. [David]
The inst/upgrade/1.5.1/asset_desk.pl script, which is run by
make upgrade
, now correctly checks to see if the upgrade has already been
performed. [David]
The inst/upgrade/1.5.1/webdav_mover.pl script, which is run by
make upgrade
, now correctly checks for the existence of the correct record
in the ``class'' table before inserting a new record. [David]
During make upgrade
, the upgrade scripts are now run before the new APIs
are installed, so that there are no conflicts when using the existing API to
make changes. [David]
Creation and installation of man pages can now be avoided during
make upgrade
as well as during make
. [David]
Man pages will now be installed in the correct subdirectory of
$BRICOLAGE_ROOT
when using the ``multi'' install method. [David]
Fixed issue where asset groups and desk groups were conflated in workflow
objects, leading to errors on the permissions page. Thanks to João
Pedro for the spot. [David]
The URI of new stories is once again properly formed when the stories are
created. [David]
The list of events no longer displays attributes for events that have no
attributes. [David]
Attempting to add more keywords to the root category no longer results in the
error ``Cannot change the directory of the root category.'' [David]
In lists of objects a cell with a value of ``0'' (zero) will now be displayed.
[David]
In ``Find Templates,'' the list of templates in the search results will now be
sorted by the file name, instead of not at all. [David]
make distclean
now properly deletes inst/Pg.sql. [David]
make test
. [David]
Subclasses of Bric::Biz::Asset::Business::Media work again, and can have
keywords associated with them, too. [David]
The ``Access Denied'' message is back for when someone tries to access an object
to which they don't have adequate permission. [David]
Previews of assets that are not checked out work again. [David]
Workflow and desk permissions relative to the assets they contain are now
restored to their previous behavior. Desks no longer simply inherit the
permission granted on any of the workflows they're in. This issue was resolved
by creating a new secret asset group ID for each workflow. [David]
The primary output channel is now always enabled by default in top-level
elements. This is to make it much harder to create documents without output
channel associations, an event that can lead to database exceptions. [David]
The root category now lists itself as being in the ``All Categories'' group only
once in the category profile. [David]
Assets will no longer appear to randomly disappear from workflow. [David]
Added constraints to the ``media_type_member'' group that were inadvertently
left out of 1.5.1. [David]
Permissions are now once again properly checked for assets in categories,
workflows, and on desks. [Mark]
--publish-date
option to bric_soap. [David]
Added WebDAV mover. [João Pedro]
FTP and File System movers now atomically copy files to their destination
servers. [João Pedro]
Added ``All Desks'' group for managing the permission to access all desks.
[David]
Refactored and optimized the code used in the lookup()
, list()
,
list_ids()
, and, where pertinent, href()
methods in the following
classes:
This work will allow permission checking to be much faster for objects of
these classes, as the relevant group IDs are now looked up for each object
when the object is looked up, rather than by a separate select for each
object, one-at-a-time. The changes also include support for a grp_id
parameter to be passed to the list()
method of these classes as a way of
allowing a group to return a list of the objects in the group en masse, rather
than one-at-a-time from the member objects of each group. Once similar
optimizations have been made to the Bric::Biz::Assest classes, the necessary
change will be made to Bric::Util::Grp to allow this functionality. [David and
Mark]
lookup()
method to take advantage of it. The caching is only for the
duration of a request for now, but can be expanded later. [David]
Updated INSTALL.MacOSX to reflect changes thanks to the new Mac OS X
support included in libapreq 1.1. [David]
Added ``Super Bulk Edit'', which is a bulk edit interface allowing users to
edit all of the fields in an element at once using POD-like tags, rather than
just a single repeatable field. [Garth]
Added help topic for new ``Super Bulk Edit'' feature. [David]
Localization and Internationalization support introduced, with a Portuguese
library to complement the default English. Most message strings have been
replaced with calls to the proper localization method. Still to be done are
strings fetched from the database (e.g. events). [Cláudio Valente]
Localization of text images (buttons), Help, and JavaScript message added.
These still need translation, however. [David]
Added Italian translation. [Marco Ghezzi]
Documented bric_dist_mon and bric_ftpd. [David]
Optimized and added tests for Bric::Util::Priv's get_acl()
and
get_acl_mtime()
methods. These should make the looking up of a user's
access control list faster. [David]
Added preview link to every element profile of a story profile. [Scott]
Pared down number of default User groups by eliminating those that relate to
only a single admin menu item. [David]
Fixed code in Bric::Util::Grp where the has_member()
method would fail to
look up an object with an ID of 0. [João Pedro]
Switched exceptions from home-grown to using Exception::Class. [Scott]
The installer now offers a more meaningful message when it encounters an
existing database and the user doesn't want to drop that existing database.
[David]
Added category group association, including ability to cascade membership
assignments into subcategories, to category profile. [João Pedro]
The installer will no longer try to load CPAN.pm if all modules are already
installed. Thanks to Ilia Chipitsine for the prodding. [David]
The ``Content'' section of story, media, and subelement profiles now attempts to
display a bit of text from the first text field in each listed subelement so
that it's easier to see at a glance which subelement is which. [João
Pedro]
Switched POD testing from Pod::Checker to Test::Pod (using Pod::Simple). Fixed
the POD errors it found, too. [David]
Test suite now runs all tests with warnings enabled. [David]
Modified Grp->get_objects()
to use use the grp_id
parameter to
list()
, now that support for that parameter has been added to all groupable
classes. Also went through all existing code to make sure that it uses this
approach, rather than constructing the relevant objects one-at-a-time from
each Member object. This should provide a dramatic speedup in many
operations.
Bric::App::Session now has an instance()
public class method to return the
current %session
hash. [Scott]
Subelements can now nest. That is, they can contain themselves. Not in a story,
of course, but in the document model (element administration). [David]
Keywords can now be associated with media assets. [David]
Templates now have a published_version
attribute that properly reflects the
version of a template that was last deployed. This matches what Story and
Media have done since around version 1.3.2, and eliminates some warnings from
the error log. The UI has also been updated to properly show the deploy status
of templates. [David]
The installer should now properly detect that the Apache ``log_config'' module
is installed even when it's called ``config_log''. Thanks to Ilia Chipitsine for
the spot and the diagnostics needed to solve the problem. [David]
list()
to database dates before querying the
database. This lead to the wrong stories being returned for everyone not using
UTC as their local time zone. Thanks to Bill Cappel for the spot! [David]
Fixed bug where expired cookie resulted in a Bric::App::Session
error. [João Pedro]
A number of default groups where not properly added to the ``All Groups''
group. Now they are. [David]
Bricolage now does more to determine the media type of uploaded media by using
both the Apache media type determination and, failing that, a file name
extension. Thanks to Todd Tyree for the spot. [David]
Fixed the description of the root category in the permissions profile for user
groups so that it properly displays its URI instead of its name. This only
affects the display of the root category in the permissions profile for people
who installed (rather than upgraded to) Bricolage 1.4.5 or later. [David]
An attempt to create a template with the same name and output channel as a
deactivated template now properly tells the user that the template already
exists. [David]
Fixed indexes for person objects so that they're case-insensitive. [David]
Fixed problem creating new business assets with SOAP where Bricolage was
trying to associate them with output channels twice, resulting in an SQL
Error. [David]
Fixed broken index on media type extensions. It was duplicating the index on
the media type names. It has been changed to uniquely index the media type
file name extensions. [David]
Bric::Biz::Category->get_children
now properly returns the children for
the root category. Thanks to Sam for the spot! [David]
Removed Bric::Biz::AssetType->remove
. It shouldn't be used anywhere,
and might be responsible for the mysterious disappearance of elements in
general. Thanks to João Pedro for the spot. [David]
Assigned appropriate permissions to allow the default ``Story Editors,'' ``Media
Producers,'' and ``Template Developers'' to access the default workflow and desks
relevant to them. They hadn't had that access by default before. [David]
Changed the plural name of the ``Category Group'' class from ``Category Group'' to
``Category Groups''. [David]
Fixed bug introduced in 1.5.0 where stories where checked for duplicate URIs
for output channels that they weren't actually in. Thanks to Bill Cappel for
the spot. [David]
Fixed duplicate URI checking for media assets so that all output channels a
media asset is in will be checked for duplicate URIs instead of just the
primary URI. [David]
Fixed bug where all sources were being deactivated from their groups every
time they were saved. [David]
Fixed bug where the SOAP server would throw an exception when it attempted to
handle elements without subelements. Thanks to Sam Tregar for the report.
[David]
It is no longer possible to create a story type or media type element without
a primary output channel. [David]
Deleted output channels no longer show up in the list of output channels to
associate with a destination. Thanks to Alex Epshteyn for the spot! [David]
The installer now collects Apache configuration data from any Include
d
files, as well. Thanks to Alex Wheeler for the spot! [David]
Media types now can be added to groups. This means that permissions can be set
so that users can administer media types. Previously, only members of the
``Global Admins'' group could administer media types. [David]
make install
by
running make test
or make devtest
. The former runs tests that access
database data but execute no INSERT
, UPDATE
, or DELETE
commands. The
latter runs tests that can make changes to the database, and are intended to be
a full testing of Bricolage's API. Both make targets can be executed in
verbose mode by passing TEST_VERBOSE=1
to the make command. From now on,
all tests will be expected to pass before changes are committed to the
repository. [David]
Added Makefile.PL. This is mainly a dummy script designed to mimic the
usual way in which Perl modules are installed. It doesn't actually create a
Makefile, but processes the existing one, setting it up to use whatever
Perl was used to execute Makefile.PL itself. The advantage to this is that
the Perl that executes Makefile.PL will be used throughout Bricolage. [David]
Migrated tests in lib/Bric/Util/Grp.pl to t/lib/Bric/Util/Grp/Test.pm
and t/lib/Bric/Util/Grp/DevTest.pm. [David]
Added t/Bric/Test/PodTest.pm, which uses Pod::Checker to
examine the POD in all the Bricolage modules, scripts, and test modules and
report errors. Currently, all the errors are ``TODO'' tests, which means that,
technically, they'll pass. But as soon as all existing POD errors are cleaned
out, errors will turn into test failures. This will help us to keep all of our
POD valid. These tests run as a part of make devtest
. [David]
Removed all old-style test scripts. Their contents have been copied into new
unit testing classes. These classes each execute a single test, and the old
testing contents are at the end of the file, after the __END__
symbol. Thus
we'll be able to use the old tests to write the new tests. [David]
Added documentation on merging CVS branches to
Bric::Hacker. [David]
Removed the URI Format and URI Case preferences and put them into Output
Channel objects, instead. They are now output channel-specific. [David]
URI format and URI case settings now properly format the URIs of media
objects, too. [David]
The slug can now be used in the Fixed URI Format. [David]
The slug can now be used for story file names. The option is supported on an
output channel basis, and will only work for stories that have a slug. [David]
Added a ``and Shelve'' option to the ``Check In'' select list in the button bar on
story, media, and asset pages. When this option is selected, the asset is
checked in and then removed from workflow without publishing. [David]
Removed the ``Checkin/Publish'' and ``Checkin/Deploy'' buttons in asset profiles
and replaced them with new ``and Publish'' or ``and Deploy'' options in the ``Check
In'' select list in the button bar. Doing this collects all the usual Check In
actions in one place and saves us screen real estate! [David]
Changed the way the ``Checkin and Publish'' and ``Checkin and Deploy'' callbacks
work to use existing code in the desk and publish widgets to do the dirty
work. This greatly reduces code duplication. [David]
Created a new class,
Bric::Biz::OutputChannel::Element, which
is a subclass of Bric::Biz::OutputChannel. This
new class better manages the mapping of output channels to elements than the
old approach did. It also adds a new property, enabled
, which will be put
to use shortly. [David]
Replaced all the custom handling of output channel objects in
Bric::Biz::AssetType with a new
Bric::Util::Coll subclass that does it all. This is a lot
more efficient in terms of programmer time (and probably performance,
too). [David]
Modified Bric::Biz::Asset::Business to manage the association between business
assets and output channels by making use of the
Bric::Util::Coll::OutputChannel class. It also automatically adds all of the
``enabled'' output channels of the element object as initial output channel
associations for new business assets. [David]
Added a new property to templates: template types. This property can have one
of three value that correspond to different template types: ``Element
Templates'' (those associated with elements); Category Templates`` (autohandlers
in Mason parlance, category templates to HTML::Template users, and until now
''generic templates`` in the UI); and ''Utility Templates`` (those not associated
with anything, but can be used as includes). [David]
Templates are now guaranteed to have unique file name/output channel
combinations at the API and database levels. [David]
For stories on My Workspace, replaced ``Trail'' with ``Clone''. Clicking this link
will make an exact copy of the story with the words ``Clone of '' prepended to
the story title. [David]
Got rid of the popup window. Now when the toolbar-less window isn't the
current window, the browser will be redirected to a a Welcome page where users
can click a link to open the new window with the Bricolage UI. [David]
Improved the interface for the association of output channels in Element
Profile. It now uses a list of output channels rather than a double list, and
a radio button to select the primary output channel. Also, each associated
output channel can be marked as ``Enabled'' or not, indicating whether a new
asset based on the element will by default be associated with that output
channel for publishing. [David]
On a related note, Stories and Media can now select which output channels to
be published to on a per-story basis as well as which is the primary output
channel, and the selection sticks with each version of a an asset. The list of
available output channels comes from the output channels associated with the
element on which the story or media asset is based. [David]
Bric::Util::Burner objects have a new property, mode
. This property
contains an integer value indicating whether a burner object is currently
publishing, previewing, or checking syntax. The value maps to the
conveniently-named constants ``PUBLISH_MODE'', ``PREVIEW_MODE'', and
``SYNTAX_MODE''. [David]
The documentation in the Bric::Util::Burner class has been updated and
improved. [David]
Arguments can now be passed to the display_pages()
, display_element()
,
and chain_next()
methods of the $burner
object in Mason templates. These
arguments are passed to the templates that are executed just as they are if
you'd called $m->comp
, meaning that you can access their values via the
%ARGS
global and in <%args>
blocks in Mason templates. [David]
Changed the display_pages()
method of Bric::Util::Burner::Mason so that its
first argument can be an anonymous array of the names of different paginated
elements, and then all of those different paginated elements will be burned in
order. This allows a story to have more than one type of paginated
element. [David]
Added the methods prev_page_file()
, prev_page_uri()
,
next_page_file()
, and next_page_uri()
to Bric::Util::Burner. These
methods return the strings representing the file names or URIs of the previous
and next pages of a story, relative to the page that is currently being
burned and, in the case of the *_uri()
methods, appropriate to the
currently-burning Output Channel. Also updated the
Bric::Templates and
Bric::AdvTemplates documents to reflect these
additions. [David]
Added source__id
to list of criteria by which stories can be searched via
the Bric::Biz::Asset::Business::Story list()
and list_ids()
methods. [David]
The Bricolage CSS document is now a static file served by Apache rather than a
Mason component processed by mod_perl. This allows the style sheet to be
cached by the browser so that it doesn't have to request it for every page in
Bricolage. It also cuts down on processing time, since it doesn't have to be
managed dynamically as a Mason component anymore. Also, all font sizes are now
specified in pixels instead of points, in order to maximize the consistency of
cross-browser font rendering. [David]
Added a new style for the template profile, so that template code is now
displayed in its textarea box in a monospaced font. [David]
The main Bricolage JavaScript library has had several other JavaScript
libraries rolled into it, and is now a static file served by Apache rather
than a Mason component processed by mod_perl. This allows the JS to be cached
by the browser so that it doesn't have to request it for every page in
Bricolage. It also cuts down on processing time, since it doesn't have to be
managed dynamically as a Mason component anymore. [David]
Added bricolage.conf directive ``ALLOW_WORKFLOW_TRANSFER'' to allow assets on
shared desks to be able to be transferred across workflows via that shared
desk. [David]
Changed Bric::Util::Burner to set publish_status
after publishing, rather
than before. Thus it is only set if the publish is successful, while at the
same time templates can check publish_status
to determine if a story is
being published for the first time. [David]
Added get_more_pages()
method to Bric::Util::Burner::Mason. It returns true
if more pages remain to be burned, and false if not. However it's only
enumerated when display_pages()
is being used to output pages. [David]
Optimized Bric::Biz::Category to get a list of Group IDs for each category as
it is selected from the database. This prevents the get_grp_ids()
method
from having to query the database, which was happening for every category
object for which permissions are checked. [Mark & David]
Added event logging for keywords. [David]
Changed the code in Bric::Util::Burner::Mason to allow for new Mason burners
to be constructed and used to publish stories from within templates. This is
useful for generating tables of contents and such. [David]
Added support for the association between business assets and output channels
to the SOAP interface. [David]
Removed IO::String dependence. [Scott]
Added a FAQ. [Scott]
Added a preference for naming the Bricolage instance. [Scott]
Added search by Category URI to Find Stories. Although one could use the
search by URI feature for this before, it didn't allow for search by secondary
categories. Now stories can be searched for in both primary and secondary
categories. [David]
Added the methods page_file()
and page_uri()
to Bric::Util::Burner. When
passed a page number argument, these methods return the strings representing
the file names or URIs of the given page in the currently-burning story and, in
the case of the page_uri()
method, appropriate to the currently-burning
Output Channel. These methods are best used in burners that don't burn one
page at a time, such as Burner::Template. [David]
Ported to HTML::Mason versions 1.15 and higher. [Scott]
Added make uninstall
support to installation system. [Scott]
Added page_filepath()
method to Bric::Util::Burner. This method allows
burner subclasses to get the name of a file to write to the file system
without needing to figure out the file name themselves. [David]
Optimized behavior of collections (internal API). Now when an object is
deleted from a collection (for example, when a member is deleted from a
group), all the existing objects in the collection won't first be looked up in
the database. The upshot is that certain parts of Bricolage that rely on
collections, such as desks, should be more responsive. [David]
CREATE DATABASE
command to always create the database
with the encoding set to UTF-8 (UNICODE). [David]
Added instructions for installing readline library to README.MacOSX. [David]
Fixed some inaccurate image sizes. [Geoff Richards]
Added missing uri
parameter to the possible search options in
Bric::SOAP::Category->list_ids
. [David]
Bric::Util::Grp->list
in order to be able to specify a different column and sort order for getting a
list of groups. [David]
Improved error handling by the SOAP server. Full errors will now be printed to
the Apache error log, error messages sent back to the client are properly
escaped, and all database transactions for a single request will be rolled
back in the event of an error. [David]
update()
to
properly display the category name, rather than ``ARRAY(0x9cf43bc)''. [Sam]
The Bricolage SOAP interface will no longer allow the creation of
stories and media with duplicate URIs. [Sam]
Fixed circular dependency issues when Bricolage modules are used in the
PERL_LOADER
bricolage.conf directive. [David]
Added the root category to the ``All Categories'' group. It should have been in
that group all along. [David]
Documentation for Bric::Biz::Workflow->list
has been improved, and the
method used for finding workflows and desks to put imported assets on in
Bric::SOAP has been simplified. [David]
Added printing of a message regarding the filenames being processed by
bric_soap's create
and update
commands when its --verbose
option
is set. [David]
Setting a story's cover date to a date that causes one of its URIs to conflict
with an existing story's URIs no longer causes an error. Thanks to Sam for the
spot! [David]
Display of the source was missing from the view Story and Media profiles, but
no longer. [David]
The correct source is now displayed in the Story and Media edit profiles.
[David]
An attempt to install Bricolage to use an existing PostgreSQL user no longer
causes an installation error when you decline drop the user. [David]
The burner no longer fails when it publishes an asset that's not on a
desk. [David]
SOAP now does the proper thing when deleting assets, removing them from desks
and workflow only if they're on desks and in workflow. [David]
Added support for the missing publish_status
parameter to
Bric::Biz::Asset::Business::Media->list
. [David]
Setting permissions on the assets in a category works again. [David]
Fixed a bug where exporting a story via SOAP containing a date field
would output the formatted date rather than the expected ISO 8601
format. Systems with a modified date format pref would then refuse to
accept the story on import, producing an ``Unable to unpack date''
error. [Sam]
Stories, media, and templates created but not saved no longer disappear into
the void. They are instead moved into workflow, put on a desk, and saved as
soon as they were created. [David]
Permissions are now properly checked for category and workflow settings when
new stories, media, and template assets are created. [David]
New templates are now active by default. [David]
Fixed bug where the ``Checkin/Publish'' (and ``Checkin/Deploy'') button wasn't
provided to users who had EDIT access to a the assets on a desk. Permissions
are now properly checked and the button displayed for those who can publish
from a desk. [David]
Added missing debugging statement to Bric::Util::DBI. Thanks to Mark for the
spot. [David]
The SOAP interface now properly logs events for its activities. [David]
Previewing a story while searching for a related story to link to an element
no longer replaces the Bricolage UI with the preview, as was happening with
some browsers. Instead, a separate preview window is opened. [David]
When publishing a media asset, its name will not be properly added to the UI
message, without causing an error. [Petar Bojkov]
Fixed exception class name in Handler.pm. [Scott]
Fixed installation system bug caused by inst/conf.pl loading
Bric::Config during ``make install''. Thanks to Louis Moore for the
report. [Sam]
Added missing list_ids()
method to Bric::Biz::Category. [David]
<meta http-equiv="Content-Type">
tag to the <head>
to
header.mc so that the browser knows to send text back to Bricolage in the
expected character set. [Mark]
Changed the default character set from ISO-8859-1 to UTF-8. With this setting,
Bricolage does no character set translation, so it's faster. Furthermore, most
users should be outputting UTF-8 in their templates, anyway. If you're not,
then you're likely finding doing charset translation in all of your templates
to be a big PITA. And if you're not doing charset translation, then you really
are outputting UTF-8 in your templates, and just haven't realized it.
[David]
Fixed bug when reverting stories and media with no associated contributors.
[Mark]
``Check In and Publish'' now works again for Media assets. Thanks to Matt Vella
for the spot. [David]
Deleting assets on My Workspace now prompts the user to make sure s/he really
wants to do that. Not sure how we missed this all this time! Thanks to Andrew
Baio for the spot. [David]
Assets on Desks and My Workspace that are checked out to the the user whose
viewing them will now always preview the version as currently edited by the
user, rather than the last checked-in version. Other users still can only
preview the last checked-in version. [David]
Clicking the ``Check In'' or ``Check In/Deploy'' buttons in a template profile now
properly updates the template with any new data entered into the template
profile before attempting a syntax check. This ensures that the latest data
you've entered gets its syntax checked before the template is checked in or
deployed. [David]
Fixed a bug in Bric::Util::Class where classes couldn't be looked up by
package name. This affected the ``Access Denied'' page. [David]
Made Bric::Util::Burner::Mason a little smarter handling exceptions. [David]
Fixed bug where Bric::SOAP::Category would fail to import ad strings. [David]
Fixed bug in Bric::Util::Grp->has_member
where an already-added member
wasn't always found. [Mark]
Conflicting URI messages for media assets no longer suggest changing the value
of the slug, since media assets have no slug. [David]
The friendly messages confirming publishes are back. [David]
Fixed bug where selecting a large number of list options in the story profile
would cause an SQL error. [Matt]
Fixed bug where Bric::SOAP would accept story element types for media and vice
versa. Thanks to Evan Prodromou for the spot. [Sam]
Added code to installation scripts to delete existing Mason object files when
upgrading. This hasn't been a problem thus far, but this step will help to
ensure that users are always running the latest UI components. [David]
Fixed bug where deactivated element types weren't checked before creating a
new element type with the same name as a deactivated element type. Thanks to
Geoff Richards for the spot. [David]
get_all_keywords()
method of Bric::Biz::Asset::Business works
again. [David]
make install
. Thanks to Andrew Baio for helping to
identify the problems. [David]
Added use Bric::Util::Grp::Keyword;
back into Bric::Biz::Keyword. This
prevents some upgraded Bricolage installations from breaking. [David]
Added Net::FTPServer and Net::SFTP to the list of optional modules. [David]
Fixed some SQL errors uncovered by the release of PostgreSQL 7.3b1. [David]
Added code and documentation for compatibility with PostgreSQL 7.3. [David]
Media assets can now be distributed to more than one output channel at a
time. [David]
Files are now distributed on a per-output channel basis, to ensure that the
proper file is distributed to the proper destinations. [David]
Assets are now properly removed from workflow when they're deactivated
(deleted in the UI). [David]
Template syntax is now properly checked when using the ``Checkin/Deploy''
button. [João Pedro]
The example generic template (autohandler) included in the database is now
included in the burn root, too, since it's marked as ``Deployed'' in the
database. [David]
Deleted output channels no longer show up in the ``New Template'' output channel
select list. Thanks to Daniel Fisher for the spot. [David]
The root category (``/'') no longer returns itself as its own parent. [David]
Assets not in workflow are now properly logged as being checked out when
someone checks them out. [David]
The ``Or Pick a Type'' menus in the Group manager, the Contributor manager, and
the Element manager all work again. [David]
Changing category names now updates the name of the category asset group
object, which appears in the user group permissions page. [David]
Hitting the ``enter'' key after filling in a search field now properly submits
the search as if the ``Search'' button had been clicked. [David]
Changed libapreq requirement in Bric::Admin to read ``Apache::Request
1.0''. This should make the installer install the most recent version of
libapreq, instead of relying on whatever the OS provides. [David]
Changed value of autopopulated media asset data fields to an empty string when
the value returned by the autopopulation method is undef
. [David]
Fixed bug where autopopulated media asset data fields weren't properly
autopopulated. [David]
Fixed problem with category upgrade script failing on category data
created with 1.3.2. [Sam]
During installation, entering a directory name when prompted for the ``PID File
Location'' now results in Bricolage using a file called ``httpd.pid'' in that
directory, rather than trying (and failing) to use the directory itself as the
PID file. [David]
The side navigation layer is now better aware of its context, and changes the
colors of some of its graphics depending on the context. Also recreated the
``WORKFLOW'' tab graphics. It looks like this has been broken for over a year,
and I only just noticed it! [David]
Slightly improved handling of assets that have forgotten where they
are. [David]
Checked-out templates are now displayed only once (instead of twice) in the
``Find Templates'' manager. [David]
Added get_new_objs()
method to Bric::Util::Coll so that Bric::Util::Grp's
has_member()
method can see a member even if it hasn't been saved to the
database. Also changed Bric::Util::Grp to check for members in this way, of
course. [David]
Assets retrieved from the library now appear on the desk they're checked out
into only once (instead of twice). This thanks to the above-noted changes to
Bric::Util::Grp. [David]
Added upgrade script inst/upgrade/1.4.1/clean_desks.pl to clean up existing
duplicate listings of assets on desks. [David]
Removed the checkin()
method from Bric::Biz::Asset::Formatting and
Bric::Biz::Asset::Business and put it into Bric::Biz::Asset, instead, since
it's exactly the same for all assets. [David]
Fixed the display of permissions settings to be more consistent with the
design and layout of the rest of the application. Also neatened listManager
display a bit. [David]
Fixed misnamed database constraint. [David]
Templates can once again be retrieved from the library and checked out for
revising. [David]
Assets on a desk now no longer have the current desk listed in the ``Move to''
select list. Even if they did, selecting the current desk would no longer
remove an asset from workflow! Thanks to Andrew Baio for the spot. [David]
The installer is now much more intelligent about prompting for SSL
information. It won't ask if you want to use SSL if it can't find mod_ssl or
apache_ssl, and will only prompt you to pick one or the other if it can find
both. [David]
get_data()
method of
container elements in templates (and elsewhere, for that matter). This is
useful if the data you're retrieving is of the ``date'' type, and you don't want
the date to be formatted in the format specified in the ``Date Format''
preference. [David]
AutoCommit
was getting turned on,
and this likely slowed some things down a bit. [David]
Assets can once again be found via the ``Find'' pages and recalled into a
workflow without error. [David]
Module man pages are now properly installed under Perl 5.8.0. Thanks to
Michael Schwern for helping to diagnose the problem and come up with a
solution. [David]
The select list of desks to transfer an asset to on My Workspace now includes
all possible desks, including the one for which there is a link. [João
Pedro]
All Bricolage .pod files are now installed and converted to man
pages
along with all of the .pm files. [David]
Corrected a bunch of spelling errors in this file. [David]
Calling get_data()
on a container element in templates (or elsewhere, for
that matter) now properly ignores container subelements. Likewise for
get_container()
, which how properly ignores data subelements. [David]
All of the .pl and .tst files in lib/ no longer clutter up the
distribution created by make dist
. [David]
Much of the POD documentation in the API classes has been cleaned up, and
converting them to man pages no longer generates any error messages. [David]
The install process will now find Apache modules in
/usr/lib/apache/modules, which is where they are in OpenBSD. Thanks to
Mark Johnson for his help tracking this one down. [Sam]
The install process will no longer install an incompatible version of
HTML::Mason (>1.09). [Sam]
The bric_dist_mon program works again. [David]
--save-cookie-file
and --use-cookie-file
options to
bric_soap to allow authentication to span bric_soap calls. This can
result in significant time savings across multiple invocations. [Matt]
Added new --chunks
option to the bric_soap tool to avoid problems with
timeouts on large workloads. Currently only supports the workflow commands
(publish
, deploy
, checkin
, checkout
, move
), but it will be
expanded to other long-running commands in the future. [Sam]
Improved performance of search paging. ListManager now only builds the output
rows that will actually be shown on the screen. For large data sets this
results in a huge gain in search speed. [Adam and Sam]
Revised category implementation to use explicit uri
and parent_id
fields
rather than relying on the Bric::Util::Grp system. This improves performance
tremendously for larger numbers of categories. [Jeff Pinyan]
Added new --continue-on-errors
option to bric_soap to prevent non-fatal
errors from ending the process. [Sam]
Beautified the list paging interface. [David]
Added new Media Type manager. [Scott]
Added list reverse feature. [Scott]
Added SFTP mover. [Scott]
Add support for Apache-SSL. This required a change to the context of the
bricolage.conf ENABLE_SSL
directive to indicate the type of SSL support:
none, apache_ssl, or mod_ssl. [Michael Robinton]
Added support for manual httpd configuration. Split out dynamic configuration
from ApacheConfig.pm and move to a new module, ApacheStartup.pm, that sets no
Apache configuration directives. ApacheConfig.pm calls this module. [Michael
Robinton]
Added bricolage.conf configuration directive to force the start up process
to always write out a $TEMP_DIR
/bricolage/bric_httpd.conf as an
httpd.conf include file. [Michael Robinton]
Moved SSL key and certificate configuration from global httpd.conf settings
to per virtual host via bricolage.conf configuration directives. [Michael
Robinton]
Added a bricolage.conf
directive to force the user to always use SSL.
[Michael Robinton]
Added get_data()
method to Bric::Util::Grp::Parts::Member::Contrib. This
method takes a simpler scalar argument and returns the relevant attribute.
This bit of syntactic sugar makes contributor objects behave a bit more like
$element
objects in templates, thus simplifying things for template
developers. [David]
Categories now default to sorting by URI, and the URI is the searchable field,
rather than name. [David]
Vastly improved the speed at which categories can be imported via SOAP.
[David]
Makefile now confirms location of Apache and PostgreSQL to allow for
systems with multiple versions of each available. [Sam]
Added ``make clone'' command to the installation system to create
distributions based on existing Bricolage systems. [Sam]
Added bricolage.conf directive to enable/disable the browser toolbar for
debugging and development. Documented in Bric::Hacker.
[Michael Robinton]
Added support for running Bricolage with SSL support on arbitrary ports.
Previous versions required https support to use only port 80 for http and port
443 for https. With this release, Bricolage fully supports http and https
service on any ports. This allows the Apache daemon supporting Bricolage to be
run with a minimum number of children while still allowing normal http and
https service on the standard ports with a light-weight Apache daemon. See the
INSTALL file (or Bric::Admin) for full details and an
example installation procedure. [Michael Robinton]
Added new bric_apachectl command ``single''. This command will start
Bricolage in single-process mode. This mode is principally useful for
debugging. [Michael Robinton]
The size of the database column that stores custom field options (such as for
select lists) has been changed to the TEXT PostgreSQL type, so that the number
of options isn't arbitrarily limited. [Matt Vella]
The group API has been approximately 75% rewritten. The goal was to optimize
its performance, since group activity proved to be a serious bottleneck to
Bricolage performance. Those interested in the nitty-gritty details of the
rewrite can read about them here:
http://sourceforge.net/mailarchive/forum.php.
PREVIEW_MASON
configuration directive no longer is no longer defaulting
to on in one context and off in another. It is now off by default. Thanks to
Michael Slattery for the spot! [David]
Eliminated the password field type from the formBuilder interface used for
contributor types and elements. Its inclusion up to now may be considered a
bug. [David]
Fixed cover date editing to repopulate correctly on the Story profile screens.
[Matt]
Fixed bug where previewing a story assigned to multiple categories would
preview to a random category. Now the primary category is always chosen. [Sam]
Fixed display and editing of dates more than one year in the past. [Matt]
Fixed bug where setting CHAR_SET to UTF-8 in bricolage.conf would result in
blank output. [Sam]
Changed Category manager to display no categories by default, only display
them after a search. This is because some folks have a lot of categories.
[David]
Fixed bug where when SYS_USER
and/or SYS_GROUP
wasn't in
bricolage.conf, Bric::Config would use the username ``nobody'' instead of the
UID for the user ``nobody''. [David]
Adding a note to a story that has not yet been saved no longer causes an
error. [David]
Fixed ``make dist'' to work on Mac OS/X and FreeBSD. [Sam]
Fixed a problem in Bric::Util::Burner::Template where a newly added
template wouldn't be picked up by <tmpl_include>. This was due to
caching being turned on. HTML::Template's cache doesn't know that a
new compilation would turn up a difference <tmpl_include> so it
continues to use the old one. [Sam]
Fixed installer to not require unneeded Apache modules (mod_proxy and
mod_rewrite). [Sam]
Fixed installer to first ask whether SSL support is desired before asking for a
specific SSL module. [Sam]
Fixed documentation bug in Bric::Admin concerning PostgreSQL paths. Thanks to
Vicki Brown for the catch. [Sam]
Fixed installation system to fail if there are errors importing the database.
Also added test for missing or empty bricolage.sql. [Sam]
Fixed installation system to support optional modules and not force users to
install them. [Sam]
Fixed bug that prevented the contents of fields to be updated through
Bric::SOAP. [Sam]
Fixed ``Checkin and Publish'' button to only appear if the user has permissions
to publish. [Matt]
Fixed bug where text pasted into Bulk Edit textarea box was getting words
smooshed together. Thanks to Rachel Murray for the spot. [David]
Fixed bug where date field elements weren't getting properly converted between
the local time zone and UTC, which is the time zone of all the dates in the
database. Thanks to Matt Vella for the spot. [David]
Fixed issue where Bric::Util::Grp was adding every member of a group whenever
a new member was added. This was very wasteful, and slowed performance a great
deal for groups with thousands of members. Thanks to Mark for the spot.
[David]
Added check for Category ``Directory'' string to make sure that no non-URL
characters are added. [Matt Vella]
Clicking ``Cancel'' when editing keywords in a new story now properly returns to
the story profile, rather than to the last screen before the story was
created. [David]
Deleting a a contributor immediately after adding one no longer causes all of
the contributors to be deleted on check-in. [David]
Contributors are now properly reverted when stories and media are
reverted. [David]
needs_publish()
method and associated published_version database
field to Bric::Biz::Asset. This method is now used by the publisher
to determine if something needs republishing. Added new graphics to
display this information on the desks. [Matt]
Moved repeated publish and preview functionality into
Bric::Util::Burner. Updated Mason code and Bric::SOAP::Workflow
accordingly. [Matt]
Added DBI_PROFILE
bricolage.conf option and bric_dbprof
script
to allow profiling of Bricolage database performance. [Sam]
Added bric_apachectl debug
command to run Bricolage under the Perl
debugger using Apache::DB. [Sam]
Added checks to make sure Story and Media URIs are unique within the
system. [Matt]
Added search paging preference to break search results into multiple
pages. [Adam]
Added support for running Bricolage under Devel::Profiler with the new
PROFILE configuration option. [Sam]
Added support for Apache::SizeLimit to keep Apache process size under
control. [Adam]
Revised Bric::App::Cache to improve performance. The new system is a
two-level cache with Cache:Mmap and Cache::Cache. This results in a
2x speedup on some cache-sensitive operations. [Sam]
get_attr()
now returns attributes for
category ID 0 as well as all other categories. [João Pedro
Gonçalves]
Fixed bug in DBI_DEBUG and DBI_CALL_TRACE options where non-prepared queries
(row_aref(), all_aref(), etc.) were not being logged. [Sam]
Fixed bug in Bric::Dist::Resource that was causing publish to run very
slowly by executing a bad database query. [Sam]
Related to the last item, fixed a bug in Bric::Util::Coll that would call
the href()
method on a class and pass in undefined values as parameters.
This will happen if a collection is created for a new object that does not
yet have an ID. The fix thus prevents the ``= NULL'' SQL syntax, which always
matches nothing. The new syntax for constructing a collection has been
implemented across the API. [David]
Fixed bug where the root category wasn't able to be added to a category
group. Actually, this fixes a problem where any object with an id of 0
couldn't be added to a group. Thanks to Mark for the spot. [David]
Changed mover list to be sorted in alphabetical order in the Destination
profile. This has the benefit of forcing ``FTP'' to be listed before ``File
System'' -- Hurray for case-sensitive ordering! Thanks to Sam for the
complaint. [David]
The OS for a destination server now defaults to the OS of the server on
which Bricolage is installed instead of ``Mac''. Thanks to Sam for the spot.
[David]
Deleted destinations will now be dissociated from output channels when
they're deleted. This prevents stories from being published to deleted
destinations. Thanks to Mark for the heads-up. [David]
Fixed bug where attribute metadata wasn't getting deleted when it was
supposed to. [João Pedro Gonçalves]
Fixed bug where some browsers submit an image button with a value stored in
the image button's name as well as in the name with ``.x'' and ``.y'' appended
to it. This caused callbacks to be triggered twice for a single field! I
noticed this with Mozilla on Mac OS X, and presume it would happen
elsewhere, too. [David]
Fixed bug in navigation bar HTML that caused the bar to disappear on
certain browsers. [Rachel Murray]
Fixed bug in Bric::SOAP where Bricolage exceptions resulted in an
uninformative ``Application error'' message. Now the full exception message is
displayed. [Sam]
Fixed installation to work under Debian Linux 3.0 (testing). Thanks to Mark
Jaroski for a helpful patch. [Sam]
Changed length of Bric::Dist::Job name attribute from 64 characters to 256.
This allows long asset names to be used. Also added code to Bric::Dist::Job
to ensure that the name property is truncated if it's longer than 256
characters. Thanks to Josh Cox for the spot. [David]
Fixed bug where dumber browsers would submit a new template without any
Element selected. Thanks to Michael Robinton for reporting the bug. [David]
All stories and media are now required to be associated with a category. For
stories, the primary category cannot be deleted. If you want to change the
primary category, add a new category, change it to the primary, and then
delete the old primary category. This fix prevents previews and publishes
from breaking on stories and media that had no categories. Thanks to Mark for
the heads-up. [David]
An overhaul of the burn system had regressed the Output Channel preview
functionality. I've put it back now. [Mark]
Fixed button JavaScript to work correctly in Mozilla. [Matt]
Fixed bug in HTML::Template burner that prevented <tmpl_include>s from
working in some cases. [Sam]
Numerous spelling errors were fixed by Scott Lanning. Thanks!
In the Element manager, doing a search after selecting an Element Type from
which to display elements no longer causes an error. Thanks to Adam Robinson
for the spot. [David]
Made the parent category field in the Category Profile a required field.
[Mark]
Fix Bric::Util::FTP::FileHandle to work with a modified date-formatting
preference. [Matt]
Fixed section numbering in the Contributor Type profile. [Scott Lanning]
create()
where data element order was
getting lost. Thanks to Mike Slattery for the spot. [Sam]
Fixed bug in HTML::Template burner where templates in non-root categories
could not be found. Thanks to Marlon Bermas for the spot. [Sam]
Fixed Bric::Util::FTP::FileHandle to create new revisions on PUT. [Sam]
Deleting a contributor will no longer break stories with which the contributor
is associated. Thanks to Rachel Murray for the spot. [David]
Invalid configuration directives in bricolage.conf will now be caught and keep
Bricolage from starting. [Sam]
The view button in the element profile now works correctly. Thanks to
João Pedro Gonçalves for the spot. [David]
Changed all strftime instances of '%G' to '%Y', as this seems to be
more portable. [David]
Checking in a template from a template profile now performs a syntax check of
the template just as saving the template does. [João Pedro
Gonçalves]
Notes attached to stories and media are now once again editable from
the desk and profile views if they're checked out to the current user,
and only viewable otherwise. Thanks to Tracey Largay for the
spot. [David]
Fixed a few poorly-named time zones in the time zone preference. More
still needs to be done here, actually. [David]
Implemented the chk_syntax()
method in Bric::Util::Burner::Template.
[Sam]
Functionally equivalent to 1.2.2, but includes required files missing from the 1.2.2 distribution.
chk_syntax()
methods to Bric::Util::Burner and its subclasses. This method
will takes a template asset object and make sure that it compiles.
Bric::Util::Burner::chk_syntax() delegates to the proper subclass.
my_meths()
now works
properly. Also, get_all_keywords()
now also returns the category keywords as
well as the story keywords. Thanks to Darren Graves for the patch.
Removed quotation marks from DEF_MEDIA_TYPE setting in bricolage.conf.
Thanks to Darren Graves for the spot. [David]
Sorting assets by ID in ``Find X'' and Workspace/Desk view now properly does a
numeric sort rather than an alphanumeric sort. Thanks to Sam Tregar for the
spot. [David]
Fixed an obscure bug where, for files uploaded as part of a Media file,
Bricolage attempted to create a path on its own file system using path
delimiters for another file system. Thanks to Mike Slattery for the spot.
[David]
Required content fields in stories and elements are now displayed in the order
specified in the Element profile. Thanks to Sam Tregar for the spot. [David]
All assets now start with the version number 0 until the first time they are
checked in. Also, they will show up on desks and in the Find views after the
first time they are saved. It was inconsistent before, and some items could not
be seen in the desk and Find views until they were checked in. Thanks to Sam for
spotting the inconsistency. [David]
The bric_clean_tmp script has been changed to avoid deleting the Bricolage
cache file. [Sam]
Fixed typo that broke Bric::Dist::Client. [Mike Slattery]
Fixed multiple select custom fields for Elements and Contributors. Thanks to
Mike Slattery for the spot. [David]
Fixed ugly bug where deleting a ``Media Type'' Element would delete all the media
objects of that type. Thanks to Sam for the spot (though not for the bug!).
[David]
Fixed bric_pgimport so that it uses DBI to drop and create the database, rather
than relying on a hard-coded location for pgsql binaries. [David]
Fixed permission granting in bric_pgimport so that the Bricolage database use
has DELETE permissions on all objects in the Bricolage database. It looks like
this permission was ignored in PostgreSQL 7.1 and earlier, or problems would have
shown up a long time ago! [David]
Fixed a bug where the time a distribution job is scheduled was not properly
converted to UTC for storage in the database. Thanks to Mike Slattery for the
great code archaeology! [David]
Fixed the spelling of ``contributor'' in several spots. [Andrew Baio]
Fixed bug where changing a story's primary category left it with no primary
category. [Matt Vella]
server(s)
before
redirecting the user to them, rather than just serving them up from where they
live on the Bricolage file system. The latter can still be accessed under
``Download'' in the Media Asset profile. This will continue to be the preferred
way to grab media files for editing and such, as it will not incur the overhead
of distributing the media file. [David]
Allow only one template with a given name for a given category, element, burner
and output channel. [Sam]
Added a Maintainer section to the About page. [David]
Updated About page to mimic the layout of the help pages. [David]
display_element()
so that it doesn't paginate. All
paginated pages are now treated instead as regular elements. This is useful for
things like printer-friendly pages. Bric::Util::Burner->display_element()
continues to work as before. Use this method to output a separate file for each
paginated element. [David]
When errors occur while previewing stories, the leftNav is now turned off.
[David]
Browser buttons and menus are now disabled. [David]
Added ability to set permissions on assets based on the categories they're in.
[David]
Moved all session and session locking files into the ``bricolage'' subdirectory of
the local file system's tmp directory. You'll want to rm -rf /tmp/bricolage_*
upon upgrading. [David]
Moved the location of cache files to the ``bricolage/cache'' subdirectory of the
local file system's tmp directory. You'll want to rm -rf /tmp/FileCache upon
upgrading. Together with the above change, this means that all Bricolage
temporary files are stored in the ``bricolage'' subdirectory of the local tmp,
e.g., /tmp/bricolage. [David]
Added new program, bric_clean_tmp, that can be used in a cron job to delete
stale temporary files. [Sam]
Added an ``About'' page, linked from the logo graphic, that explains the name
``Bricolage'' and offers the license and credits. [David]
Added PERL_LOADER configuration directive. Pass a line of Perl to this
directive, and on startup, it'll execute it in the same namespace as your
templates execute in. [David]
Added INCLUDE_XML_WRITER and XML_WRITER_ARGS configuration parameters. If
INCLUDE_XML_WRITER is turned on, then all templates will include a new global,
$writer, that is an XML::Writer object. This object is provided as a convenience
for creating XML in your templates. XML_WRITER_ARGS allows certain arguments to
be passed to the XML::Writer. [David]
Fixed bug where data fields deleted from Elements were deleting them from
existing stories, too. [David]
Fixed bug where stories with related media associated with them were displaying
the story as an Element rather than as a story after editing the related media.
[David]
Removed all file system location dependencies for the operation of Bricolage.
Bricolage will still assume that everything's in /usr/local/bricolage, but any
location is fine as long as the BRICOLAGE_ROOT environment variable is set to
the proper location. [David]
Added code to force all preview pages to be re-requested from the server every
time they're viewed. This prevents the browser from loading older versions from
its cache, and allows users to always see the most recently-burned output of a
story. [David]
Removed debugging information from URLs for when debugging is turned off --
which should be always in production code (e.g., releases). [David]
Elements are now displayed with their display names rather than their attribute
names. Thanks to Sam Tregar for the spot. [David]
Fixed bug where fields (attributes) added to an Element with the name of an
existing but deactivated field triggered an error. Thanks to Sam for the
heads-up. [David]
Fixed a bug where data fields sometimes were not properly retrieved from the
database in Bric::Biz::AssetType. [David]
Fixed a bug where clicking ``Save and Stay'' in the Element profile wouldn't
delete attributes (fields) marked as such, or even delete the Element itself, if
the ``Delete this profile'' checkbox was checked.
Fixed a bug where, for Story and Media assets, editors were given Edit access to
notes, even when they didn't have the asset checked out. [David]
Changed the misleading and inaccurate ``Two blank lines'' label in the Bulk Edit
interface to the more accurate ``One blank line''. Thanks to Sam Tregar for the
heads-up.
David Wheeler <david@wheeler.net>
Bric