silverstripe-framework/docs/en/changelogs/beta/3.0.0-beta1.md

58 KiB
Raw Blame History

3.0.0-beta1

Overview

CMS

  • The "Files & Images" (AssetAdmin) interface shows the file tree next to a flat list. It lists images as thumbnails, and allows to search by file category.
  • The CMS editor can insert multiple images as once, finds them more efficiently, and shows better previews on what's being inserted.
  • More extensible architecture for inserting media types other than images or flash objects.
  • All interfaces expose their currently managed content structure as linked breadcrumbs, aiding navigation and clarifying content hierachies of e.g. Pages or Group->Member relationships.
  • Removed prototype.js/behaviour.js usage from nearly all core interfaces

Framework

  • New Config API to standardise configuration contained in objects (early stage)
  • New GridField API to replace TableListField and ComplexTableField. More decoupled architecture, using the new ORM.
  • A GridFieldDetailForm interface allows editing of master/detail relationships, including traversing nested relationships (which wasn't possible before due to popup-in-a-popup problem). Detail forms fully support the TinyMCE editor, as they're loaded into the main CMS interface rather than a popup.
  • Redesigned ModelAdmin interface building on top of GridField. Search results show by default, clearer layout of interfaces managing multiple classes.
  • Interfaces like ModelAdmin can make use of TinyMCE, including insertion of images and links.
  • New UploadField API to replace ImageField and FileIframeField. Allows for multiple file uploads through HTML5 (with fallbacks), inline editing of file properties after upload, and management of has_many/many_many file relationships.
  • The "Users' (SecurityAdmin) interface manages groups in a list rather than a tree, and uses GridField to list users/groups/roles. Adding members to groups is now possible with standard GridField autocomplete components. Roles and groups are assigned via an inline autocomplete field, which is quicker and smaller than a dedicated table field.
  • Overloadable templates for most form fields. FormField->setAttribute() to enable HTML5 attributes

TODO

A non-exhaustive, high-level list of features we havent addressed yet:

  • List view for pages
  • Gallery view for files
  • In-content file upload (and "insert from web")
  • Widget editing in CMS (most likely separated into a module)
  • New batch action system with interactive dialogs
  • ReportAdmin
  • Configurable two-level CMS menu
  • SQL Server and PostgreSQL core support
  • Performance fixes for Internet Explorer

Upgrading

See 3.0.0 for previous details. Note that you'll get PHP notice-level errors automatically when using deprecated functionality (through the new Deprecation class).

Changelog

### API Changes

  • 2012-03-12 2d151b8 Deprecated TableListField and ComplexTableField, use GridField instead (Ingo Schommer)
  • 2012-03-10 7de5bf5 Updated throwExceptionOnBadDataType setter to be standard setThrowExceptionOnBadDataType(), added getThrowExceptionOnBadDataType(). (Sam Minnee)
  • 2012-03-09 e6be56e Removed FormResponse class, use custom HTTP status codes to communicate state on text/html responses, or use text/json for more structured data responses (Ingo Schommer)
  • 2012-03-09 fa6142c Removed deprecated TableListField->ajax_refresh() (Ingo Schommer)
  • 2012-03-09 01b24da Removed Member::isAdmin(), use Permission::check('ADMIN') instead API CHANGE Removed Member->setByCheckboxes()/setByCheckboxSetField(), Use setByIdList() and/or a CheckboxSetField instead API CHANGE Removed Member->addManyByGroupID(), Use DataList->addMany() instead. API CHANGE Removed Member->removeManyByGroupID(). Use DataList->removeMany() instead. API CHANGE Removed Member->getGroupsFromIDs(). Use DataObject::get("Group")->byIds() instead. API CHANGE Removed Member->addManyByCodename()/removeManyByCodename(). Don't rely on codename (Ingo Schommer)
  • 2012-03-09 4216a09 Removed BasicAuth::enable()/disable(), use protect_entire_site() (Ingo Schommer)
  • 2012-03-09 27fd3e5 Removed Session::load_config() (no longer supported) (Ingo Schommer)
  • 2012-03-09 1f01e11 Removing ScaffoldingComplexTableField, using GridField instead to edit relationships through FormScaffolder and DataObject->scaffoldFormFields() (Ingo Schommer)
  • 2012-03-09 e12a3a4 ModelAdmin uses GridField, DataList and new layout. Removed ModelAdmin_CollectionController, ModelAdmin_RecordController and related functionality. API CHANGE Removed ModelAdmin->ResultColumns()/ColumnSelectionField, selection of own fields no longer possible through the UI, to be replaced by a more generic GridField component (Ingo Schommer)
  • 2012-03-09 818c341 Created GridFieldAddNewButton, replacing the one that was previously hardcoded in GridFieldToolbarHeader (Sam Minnee)
  • 2012-03-09 12618e2 Added targetFragment argument to GridFieldAddExistingAutocompleter, so that its location can be changed. Updated CSS and HTML to allow for this. (Sam Minnee)
  • 2012-03-09 d795a55 Removed 'add new' button from GridFieldToolbarHeader, instead opting to include two HTML fragments: toolbar-header-left and toolbar-header-right. (Sam Minnee)
  • 2012-03-09 92a3535 Added targetFragment argument to GridFieldExportButton to control button placement. Moved search fields to 2nd argument. (Sam Minnee)
  • 2012-03-09 2cb67ef DataObject::getComponents() should use default value for limit as NULL (Stig Lindqvist)
  • 2012-03-09 d0a0df0 Removed Security::$useSalt static, please use a custom PasswordEncryptor instead (Sean Harvey)
  • 2012-03-09 aca2b2f Removed deprecated Security::get_encryption_algorithms() - please use PasswordEncryptor::get_encryptors() instead (Sean Harvey)
  • 2012-03-09 6e58026 Removed deprecated Security::encrypt_passwords() - please use PasswordEncryptor_None instead. (Sean Harvey)
  • 2012-03-09 4a52e29 Removed deprecated File::getLinkedURL() - please use custom code instead. (Sean Harvey)
  • 2012-03-09 71c2a22 Removed support for extraDBFields method in DataExtension, please ensure you are using extraStatics on your extension classes (Sean Harvey)
  • 2012-03-09 e9e7655 Added SS_Sortable, an extra interface to apply to SS_Lists. (Sam Minnee)
  • 2012-03-09 f000a47 Added SS_Filterable, an extra interface to apply to lists. (Sam Minnee)
  • 2012-03-09 09d6fa7 Renamed GridFieldDefaultColumns to GridFieldDataColumns #6921 (Stig Lindqvist)
  • 2012-03-09 a55e06f Introduce SS_Limitable class for adding to SS_Lists that have limit capability. API CHANGE: Deprecated SS_List::getRange() in favour of SS_Limitable::limit(). API CHANGE: Introduce SS_Limitable::limit($limit, $offset = 0) as the only modern way of specifying limits; deprecate all others. (Sam Minnee)
  • 2012-03-09 6d0b0d6 Removing GridFieldDeleteAction and moved functionality into GridFieldRemoveButton #6921 (Stig Lindqvist)
  • 2012-03-09 8b82dae Renaming of gridfield components #6921 (Stig Lindqvist)
  • 2012-03-09 c59c717 Removed CustomRequiredFields, please use custom validation instead BUGFIX Ensure validators still used in ModelAdmin forms (Sean Harvey)
  • 2012-03-09 9f3344b Removed built-in behaviour.js client-side form validation. This is no longer supported. Please use custom client-side validation instead. (see 3.0.0 changelog for more information) (Sean Harvey)
  • 2012-03-09 f86e53b Removed Validator::showError(), Validator::getError() and Validator::getCombinedError(). Use Validator::getErrors() instead (Sean Harvey)
  • 2012-03-08 c117ef5 Removed LeftAndMain->RootForm(), concept no longer applies in 3.0 UI. Use EmptyForm() or EditForm() (Ingo Schommer)
  • 2012-03-08 5800db0 Allow for the creation of custom GridField fragments. (#6911) (Sam Minnee)
  • 2012-03-08 1fd8d19 FormAction::FieldHolder() now returns just the Field(), so that a FieldList::forTemplate() returns a sensible result for an action list. (Sam Minnee)
  • 2012-03-08 e4dbf80 Added FieldList::forTemplate(), so that by default a FieldList will be rendered in its template as a concatenation of FieldHolder values. API CHANGE: Removed unnecessary HiddenFieldList class. (Sam Minnee)
  • 2012-03-08 ba93028 Added Form::VisibleFields() and FieldList::VisibleFields(), which list everything except hidden fields, to assist with the creation of custom form layouts. (Sam Minnee)
  • 2012-03-07 391ffde Deprecated FormField->getTabIndex()/setTabIndex(), use getAttribute()/setAttribute() instead. Removed FormField->getTabIndexHTML() (Ingo Schommer)
  • 2012-03-07 feca839 Deprecated HasManyComplexTableField and ManyManyComplexTableField, use GridField with GridFieldConfig_RelationEditor instead (Ingo Schommer)
  • 2012-03-07 55a0fb1 Deprecated FormField->describe(), use setDescription() instead. Actually use the description in form fields other than FormAction. (Ingo Schommer)
  • 2012-03-05 0117b32 Removed MemberTableField, use GridField with GridFieldConfig_RelationEditor instead (Ingo Schommer)
  • 2012-03-05 3ef957b SSF-53 : add ability to set an customised class of icons for a GridField_Action button (Normann Lou)
  • 2012-03-02 fda7a6a Remove custom File::instance_get(), use a custom DataQuery in case you want to exclude large File.Content fields from the query results (Ingo Schommer)
  • 2012-03-02 fb3c18d Remove File->uploadMetadataFields(), use new UploadField instead (Ingo Schommer)
  • 2012-03-02 424da6a Moved NZGovtPasswordValidator to new 'securityextras' module (Ingo Schommer)
  • 2012-03-01 0ab43cd Moved "IP Address restrictions for groups" feature to a new "ipaddress-restriction" module (SSF-53) (Ingo Schommer)
  • 2012-02-21 27cdc40 Moved AssetAdmin-specific fields from Folder->getCMSFields() to AssetAdmin->getEditForm(). For modifying those fields via DataExtension, please use AssetAdmin->updateEditForm() instead (Ingo Schommer)
  • 2012-02-21 374ed19 Change variable expose method in TemplateGlobalProvider and TemplateIteratorProvider to (a) not clash with each other and, (b) be less generic (Hamish Friedlander)
  • 2012-02-20 fb246bd Rename getExposedVariables to match coding conventions (Hamish Friedlander)
  • 2012-02-16 a196135 Replace jQuery.metadata in DateField markup with HTML5 data attributes (Ingo Schommer)
  • 2012-02-16 5911abc Removed prototype.js style $() alias usage for document.getElementById() to avoid confusion with the more common jQuery() alias. API CHANGE Removed several unsed JavaScript globals: sprintf(), Number.prototype.CURRENCIES, Number.prototype.toCurrency(), String.prototype.ucfirst(), jQuery.fn.clearFields(), jQuery.fn.clearInputs() MINOR Removed prototype_improvements.js and jquery_improvements.js files, now contained in individual component code (or removed altogether) (Ingo Schommer)
  • 2012-02-09 edf6cd6 Remove ArrayData::forTemplate(), because it has little usefulness corrupts ViewableData customisation. (Dominik Beerbohm)
  • 2012-02-03 b8cc208 Deprecated FileIframeField and ImageField, use UploadField instead (Ingo Schommer)
  • 2012-02-02 9c0a606 Deprecated SimpleImageField, use FileField or UploadField with setAllowedExtensions() (Ingo Schommer)
  • 2012-02-01 d261f44 silverstripe_version file now contains the plain version number, rather than an SVN path (Ingo Schommer)
  • 2012-01-31 6ecf7ff Deprecated Text->EscapeXML(), use DBField->XML() instead (Ingo Schommer)
  • 2012-01-31 618d767 Removed XML escaping in DBField->LowerCase() and UpperCase(), in order to consistently allow SSViewer to deal with casting. Affects subclasses like Text, Varchar and HTMLText. API CHANGE Deprecated StringField->Lower() and Upper(), use String->LowerCase() and UpperCase() instead. Moved methods from DBField to StringField. (Ingo Schommer)
  • 2012-01-30 2d898ca Added GridFieldExporter, a GridField component that adds export functionality, and added it to the security admin. (Sam Minnee)
  • 2012-01-26 7f09b69 DataList::subtract and DataQuery::subtract for subtracting a list from another list (Stig Lindqvist)
  • 2012-01-25 c396c2d Security admin supports adding, removing and searching for members by relations via gridfield (Stig Lindqvist)
  • 2012-01-24 ed88952 Added two predefined GridFieldConfigs and removal of unsused accessors (Stig Lindqvist)
  • 2012-01-14 9451993 Moved DataObject->writeWithoutVersion() to Versioned extension BUGFIX Don't create new version on related VirtualPage records in SiteTree->onAfterWrite() when the write was triggered through writeWithoutVersion(). Use a new $_nextWriteWithoutVersion flag replacing the -1 Version number for this purpose (AIR-97) (Ingo Schommer)
  • 2011-12-22 876f4c5 Modify extensions system to support new config system. Statics are now declared directly on extensions, and there is an add_to_class method extensions can hook into to modify class configuration (Hamish Friedlander)
  • 2011-12-22 0ab171d Add config property on Object as shortcut to objects own properties (Hamish Friedlander)
  • 2011-12-22 1b05a33 Strip out old static accessors from Object (Hamish Friedlander)

Features and Enhancements

  • 2012-03-13 5eef837 Add count of backlinks to file details (Andrew O'Neil)
  • 2012-03-12 51ff400 Allowing ajax responses on CMS form submissions to "break out" of the form element they were triggered through, by looking for existence of ".cms-content" node in response (Ingo Schommer)
  • 2012-03-12 f63497d Extension arguments are now passed through to add_to_class() static function on Extension classes. BUGFIX FulltextSearchable didn't pass through arguments, use now available $args parameter with FulltextSearchable::add_to_class() (Sean Harvey)
  • 2012-03-12 b8f7f4c SSF-25 - removed find button when linking existing user - also made SCSS less specific so that it adds styling for the link existing button across the CMS. (jbridson)
  • 2012-03-09 dd517c4 Allowing to override importer instances in ModelAdmin (fixes #2982) (Ingo Schommer)
  • 2012-03-09 dff6c63 Enable config manifest loading in core (Hamish Friedlander)
  • 2012-03-09 7125cd4 Piston in symfony yaml library (Hamish Friedlander)
  • 2012-03-09 1f7263e Updated default many-many grid field to show "add existing" and "add new" side by side. (Sam Minnee)
  • 2012-03-09 426f167 GridFieldComponents will now use SS_Filterable, SS_Sortable, and SS_Limitable to determine which features are applicable to the List provided, and either throw an error, or silently disable the feature. API CHANGE: Added throwExceptionOnBadDataType() to GridFilterFilter, GridFieldPaginator, and GridFieldSortableHeader. (Sam Minnee)
  • 2012-03-09 49267db Shortcodes now support commas as delimiter for attributes (thanks aoneil for help with the regex!) (trac #6868) BUGFIX HtmlEditorField not inserting shortcodes correctly (trac #6868) (Sean Harvey)
  • 2012-03-08 2ea7c8d SSF-25 : remove GridField filter component for search result in ModelAdmin (Normann Lou)
  • 2012-03-08 d35d750 SSF-25 : enable to remove component from a GridFieldConfig. (Normann Lou)
  • 2012-03-08 d24c2ef SSF-25 : change to use GridField for showing searched results in stead of TableListField (Normann Lou)
  • 2012-03-08 649d84a SSF-106 - styled the input for pagination and changed measurements to increments of $gf_grid_x and $gf_grid_y (jbridson)
  • 2012-03-08 bd85d03 SSF-53 - hid the find button from the link existing member field on users groups. (jbridson)
  • 2012-03-08 7673369 SSF-25 : use a title if users/devs has set one instead using a hard-coded one (Normann Lou)
  • 2012-03-08 fd828fc SSF-53 : change the icon class for "Link Existing" button to 'chain--plus' (Normann Lou)
  • 2012-03-08 4ad7e8e Input box for going to a page in gridfield (Andrew O'Neil)
  • 2012-03-08 6b910ca Disable batch action selection unless we're in multiselect mode (no way to single select in tree), updating chosen.js and jquery.button state properly (Ingo Schommer)
  • 2012-03-08 c5a4279 SSF-53 - styled the label for the parent group input field on the users groups page. (jbridson)
  • 2012-03-08 7331a06 SSF-53 : add gridfield-button-unlink to unlink button that removes a member from a group (Normann Lou)
  • 2012-03-08 1de30d5 SSF-53 : remove literal field for explanation text of Parent dropdown, use a right title for it, instead (Normann Lou)
  • 2012-03-07 69a8659 Using 'autoresize' TinyMCE plugin in HTMLEditorField default config, in order to save space when no content is entered into the field (Ingo Schommer)
  • 2012-03-07 1facb50 SSF-53 : Change the Labels for "Save" and "Delete" button for an "adding new form" of GridField to "Create" and "Cancel", apply different logic for Cancel (Normann Lou)
  • 2012-03-07 550cb7d SSF-30 adding the ability to set the parent folder of a file. (Julian Seidenberg)
  • 2012-03-07 e5ee4c9 SSF-106 - styled first and last page buttons on datagrid pagination. (jbridson)
  • 2012-03-07 c0e1500 SSF-30 - changed the SCSS so that the styling on the view tabs is more specific to pages and files. (jbridson)
  • 2012-03-07 d28e32a SSF-30 - moved some code so that the css doesn't override the negative text indent on the view tabs. (jbridson)
  • 2012-03-06 79d420f Member->DirectGroups() (to complement Group->DirectMembers(), and aid with relationship saving through Member->getCMSFields()) (Ingo Schommer)
  • 2012-03-06 4e9a4bd Changed batch action logic, no longer updates applicable pages on batch action drop down selection, as this selection triggers the action itself. To be replaced with a more powerful dialog system in case the action is disallowed on some nodes (Ingo Schommer)
  • 2012-03-06 ea4bbe5 Allowing individual parent selection in tree, rather than auto-selecting children (precondition for applying batch actions independently) (Ingo Schommer)
  • 2012-03-06 51bae9e Allowing to save ManyManyList with multiple foreign keys (e.g. required to add to an overloaded Group->Members() relationship) (Ingo Schommer)
  • 2012-03-06 bd1f652 Improved focus handling in GridField (Ingo Schommer)
  • 2012-03-06 ee37adb SSF-33 Binding the 'cms-link-ajax' class to a javascript function that triggers a CMS ajax method and displays a status message (Julian Seidenberg)
  • 2012-03-06 597b12e SSF-53 - Styled the pagination and icons on export to CSV button on User datagrid. (jbridson)
  • 2012-03-06 ebf23ab SSF-33 always selecting the first tab (list view) when doing a search (Julian Seidenberg)
  • 2012-03-06 e0bd5d1 SSF-106 adding a "no items found" message when returning an empty grid field (Julian Seidenberg)
  • 2012-03-06 2552bae SSF-53 : add a 'filtered' class to filter button and reset button if its input field has filtering value (Normann Lou)
  • 2012-03-06 a715785 SSF-106 adding the ability to turn off and on the "add new" button on the GridFieldTitle (Julian Seidenberg)
  • 2012-03-05 6f71186 Replaced SecurityAdmin tree view for groups with three top-level tabs: "Users", "Groups" and "Roles" (Ingo Schommer)
  • 2012-03-05 40abab8 GridFieldPopupForms->setValidator() (Ingo Schommer)
  • 2012-03-05 ad5cf1e Using ListboxField/chosen.js to assign roles in Group->getCMSFields(). Improved explanation of groups in the user interface. (Ingo Schommer)
  • 2012-03-05 e9a2de3 Using GridField to edit roles in SecurityAdmin (Ingo Schommer)
  • 2012-03-05 5d565dc Added ListboxField->setDisabledItems() and setDefaultItems() (similar to CheckboxSetField API) (Ingo Schommer)
  • 2012-03-05 10a85f4 Scaffolding GridFieldRelationAdd->searchFields if required, making constructor argument optional (Ingo Schommer)
  • 2012-03-05 0762be9 Renamed GridFieldConfig_ManyManyEditor to GridFieldConfig_RelationEditor, to be more in line with underlying component naming, and more accurate (as it allows editing has_many relations as well). Removed $fieldToSearch argument from its constructor to keep config API consistent, should use getComponentByType() for configuration. Added GridFieldConfig_RecordEditor (Ingo Schommer)
  • 2012-03-05 375ad46 GridFieldPaginatior->itemsPerPage accessors (Ingo Schommer)
  • 2012-03-05 6e3ceef Relationship saving in ListboxField (preparing for chosen.js usage), escaping commas in payload when serialising multiple values into a single field (Ingo Schommer)
  • 2012-03-05 7a97b52 SSF-53 : add customised icon class for relational 'Export to CSV' button. (Normann Lou)
  • 2012-03-05 d26e68c SSF-53 : add customised icon class for relational 'Find' button and 'Link Existing' button (Normann Lou)
  • 2012-03-05 79d52a2 SSF-53: put a unlink button in the "Actions" column rather than holding a separate column for easy styling (Normann Lou)
  • 2012-03-02 4662872 Using chosen.js for group selection in Member->getCMSFields() (Ingo Schommer)
  • 2012-03-02 8fa2664 Support numeric array values in CheckboxSetField (?Field[]=val1&Field[]=val2 instead of ?Field[val1]=1&Field[val2]=1) (Ingo Schommer)
  • 2012-03-02 98e1fed File::$app_categories to replace switch statement in File->appCategory(), and expose data to other use cases (such as filter drop downs in AssetAdmin) (Ingo Schommer)
  • 2012-03-02 e5c4b0a Hierarchy->Breadcrumbs() (Ingo Schommer)
  • 2012-03-02 9f5e26d Generic search form uses loadPanel() rather than being tied to GridField (requires backend changes, see AssetAdmin), and uses jquery.form to do resets (Ingo Schommer)
  • 2012-03-02 1175c69 SSF-53 : add ability to use translated button label for 'Add New' and 'Link Existing' (Normann Lou)
  • 2012-03-02 45927b9 SSF-53: add customised class to Member's GridField in SecurityAdmin (Normann Lou)
  • 2012-03-02 5548c66 SSF-53 reordering the components that added to group GridField in CMS so that it appears same as the landing view of SecurityAdmin (Normann Lou)
  • 2012-03-02 58ffbe8 SSF-106 - added padding to non-sortable <th> on gridfield (jbridson)
  • 2012-03-01 04698ac GridFieldRelationAdd->placeholderText (SSF-53) (Ingo Schommer)
  • 2012-03-01 a2afe4e Support multiple search fields in GridFieldRelationAdd, and allowing custom result formatting (SSF-53) (Ingo Schommer)
  • 2012-03-01 c3f4db1 Using new UploadField in ForeignKey scaffolding, replacing deprecated ImageField/FileField classes (Ingo Schommer)
  • 2012-03-01 f5c4bc0 Ensure that broken File links receive an "ss-broken" class, just like broken SiteTree links (Sean Harvey)
  • 2012-03-01 898c8f5 [file_link id=n] shortcode support for file links in HtmlEditorField (Sean Harvey)
  • 2012-03-01 50119d2 SSF-106 - added styling for the filter and reset buttons (jbridson)
  • 2012-02-29 c0f65bf SSF-106 - changed the edit and delete buttons to match the icons on the design (jbridson)
  • 2012-02-29 e932be3 SSF-30 - partially finish - fixed broken layout on edit files 404error.html (jbridson)
  • 2012-02-28 804e2da Breadcrumbs support in GridFieldPopupForms (CMS only) (Ingo Schommer)
  • 2012-02-27 3936909 working delete button (Julian Seidenberg)
  • 2012-02-24 58d4858 Date::DayOfMonth() now supports ordinal argument, so you can get somehing like "10th" or "2nd". Also supported in Date::RangeString (Sean Harvey)
  • 2012-02-24 550f754 File and Image CMSFields styling (Julian Seidenberg)
  • 2012-02-23 7a755da Trigger event when new or edit link is clicked (Andrew O'Neil)
  • 2012-02-22 1ebd83d styled the header of the datagrid (SSF-106) (Felipe Skroski)
  • 2012-02-21 9df1487 Allow to batch-add components via GridFieldConfig->addComponents() (Ingo Schommer)
  • 2012-02-21 abedf2a Confirming deletion of records in GridField via JavaScript alert (Ingo Schommer)
  • 2012-02-20 0acaf39 "Add" for gridfield (Andrew O'Neil)
  • 2012-02-17 7602d08 Fluent interface in Form API by returning instance from all setters (Ingo Schommer)
  • 2012-02-17 abfa16f Using native jQuery UI buttons and icon styling for a less coupled implementation (e.g. assuming that a "constructive" button always has a specific icon, or one at all). All CMS UI buttons switched to use <button> markup, which allows for inline icons and correctly aligned multi-line button labels. (Ingo Schommer)
  • 2012-02-16 9190bc4 Support for <legend> tags in CompositeField (Ingo Schommer)
  • 2012-02-16 b417daf Custom tags for CompositeField, which allows for nesting <fieldset> elements (not possible through the toplevel-only FieldList/FieldSet class) (Ingo Schommer)
  • 2012-02-15 f2717f0 GridField-based file listing (Ingo Schommer)
  • 2012-02-15 a1e9c0f CMS panels restructured to use two new types of "tools" templates, fetched through LeftAndMain->Tools() and LeftAndMain->EditFormTools(). Requires less overloading of template markup. (Ingo Schommer)
  • 2012-02-14 37dfbb6 LeftAndMain->Breadcrumbs() (Ingo Schommer)
  • 2012-02-11 91f4ba1 supporting "current scope" loop and with: (with Children) (loop) $Title (end_loop) (end_with) (Hamish Friedlander)
  • 2012-02-11 741f104 Allow setting of constant CUSTOM_INCLUDE_PATH in _ss_enivronment.php which is prepended to the include path (Simon Welsh)
  • 2012-02-11 649f4ce allow left column on LeftAndMain::getEditForm (Will Rossiter)
  • 2012-02-09 5220a46 Inserting image via new dialog with ajax field retrieval and GridField file selection. Rewritten to jQuery.entwine and using the new HTML editor abstraction layer. (Ingo Schommer)
  • 2012-02-09 38bce79 Add title component (Andrew O'Neil)
  • 2012-02-08 3866f56 Using GridField for file selection in "insert image" dialog API CHANGE Combined HTMLEditorField_Toolbar->FlashForm() and ImageForm() into new MediaForm() to handle both file types (Ingo Schommer)
  • 2012-02-08 55ddbd3 Replaced custom profile dialog JS with generic ssui-core.js functionality. Removed cookie state saving abilities for now, not a high priority to re-implement) (Ingo Schommer)
  • 2012-02-08 c00f040 Attaching files from /assets through UploadField (Ingo Schommer)
  • 2012-02-08 df716ef Allow multiple column providers for a single column (Andrew O'Neil)
  • 2012-02-07 4126b95 Allow selection of items in GridField (via JavaScript only) (Ingo Schommer)
  • 2012-02-06 24e2003 Allow logging of extra data in SS_Log::log() (currently only displayed through SS_LogEmailWriter) (Ingo Schommer)
  • 2012-02-03 c0d1870 New UploadField class to replace FileIframeField, ImageField and SimpleImageField (Ingo Schommer)
  • 2012-02-03 041da99 Added generic 'small' form style (Ingo Schommer)
  • 2012-02-03 2648411 Ensure that forceSSL and protocol detection respects the X-Forwarded-Protocol header. (Sam Minnee)
  • 2012-02-01 a67c6ce Added section on security ratings, moved security process description from 'contributing' to 'release process' section (Philipp Krenn)
  • 2012-01-30 5fe86be Added GridFieldConfig->getComponentsByType() and getComponentByType() (Ingo Schommer)
  • 2012-01-23 0444d4e Buttonsets for CMS (fixes #6631), using new jQuery UI button() to style buttons in CMS, moved JavaScript to LeftAndMain.js as the button styles only apply with an .Actions container now (Wolf Vollprecht)
  • 2012-01-10 b260c63 Use Folder's Form Tabs to provide the top 3 tabs in the CMS. (Sam Minnee)
  • 2011-12-22 d355cd5 Add config layer - the Config access class itself, and the ConfigManfiest builder which parses in the yaml config files (Hamish Friedlander)
  • 2011-12-14 30989b5 Added path manipulation lib from jQuery.mobile, using it to ensure all URLs are made absolute (to fix IE issues) (Ingo Schommer)
  • 2011-08-23 d3be6ed Allowing string arguments in SS_Log::log() (Ingo Schommer)

Bugfixes

  • 2012-03-13 7ff2732 fixed issues with overflow on model and security admin - made changes more specific. (jbridson)
  • 2012-03-13 3d26cb7 SSF-106 - fixed uneven column widths and overflow issues with datagrid in ie7. (jbridson)
  • 2012-03-13 2f7fa90 BASE_PATH was trimming trailing whitespace in paths rather than trailing DIRECTORY_SEPARATORs. (Simon Welsh)
  • 2012-03-12 95f1800 Resolve local images correctly even with absolute URLs in HTMLEditorConfig_Toolbar, fixed display of remote images (don't try to format the thumbnail, which only works on local images) (fixes #6952) (Ingo Schommer)
  • 2012-03-12 bac23bc Correctly set $BaseCSSClasses on LeftAndMain content container templates, not only on forms. Fixes $('.cms-menu') handling of "current id" updates (fixes #6997) (Ingo Schommer)
  • 2012-03-12 a73c8bc SSF-53 : apply a patch with fix chosen.js messed the width up if the select element is single select and having initial width as percentage (Normann Lou)
  • 2012-03-12 199dd64 Fix errors submitting a credit card field (Andrew O'Neil)
  • 2012-03-12 7ece1d3 fixed buttons in ie7/ie8 added missing background colour. (jbridson)
  • 2012-03-12 b057315 SSF-25 - fixed styling of model admin filter in ie7 and ie8 (jbridson)
  • 2012-03-12 00d8188 SSF-106 - fixed scss for export to csv button so that is more general to all datagrid (jbridson)
  • 2012-03-11 ab976a9 , API CHANGE: Enable setting the DB timezone from the environment. (Fred Condo)
  • 2012-03-10 d94048c Fixed back redirectBack() call in GroupImportForm::doImport (#6969) (Sam Minnee)
  • 2012-03-09 df050ed Correct testSetNullAndZeroValues() of DatetimeTest (Fred Condo)
  • 2012-03-09 5944484 Don't try to set the title if it hasn't been set for us. (Fred Condo)
  • 2012-03-09 4b8895c Don't scaffold has_one relations into a DropdownField in ForeignKey->scaffoldFormField() if more than 100 records would be created, to avoid exceeding PHP memory (fixes #6776) (Ingo Schommer)
  • 2012-03-09 d04fe07 Renamed UploadField::$config to UploadField::$ufConfig to avoid conflicts with the config API. (Sam Minnee)
  • 2012-03-09 1535ce6 Removed used of lcfirst, as it's PHP 5.3 only (Sam Minnee)
  • 2012-03-09 a34f7cc Fixed SearchContext::getQuery() to avoid use of deprecated limit() call signature. (Sam Minnee)
  • 2012-03-09 68d83d1 PHP 5.2 doesn't allow calling a static method like $className::$staticMethod() (Stig Lindqvist)
  • 2012-03-09 d28da56 Fixed regression where Member::PasswordEncryption field wouldn't be set to the default (Sean Harvey)
  • 2012-03-09 6d380cd GridFieldPaginator did not work correctly after SS_Limitable was introduced (Stig Lindqvist)
  • 2012-03-09 9738641 SSF-106 - removed border that appeared after click in ie7 and ie8 (jbridson)
  • 2012-03-09 5ff095e RequestHandler needs some tricks to make sure it knows when allowed_actions hasnt been provided on a class when it has been provided on an extension, now that statics from extensions isnt a feature specific hack (Hamish Friedlander)
  • 2012-03-09 bc3f5ac DataObjectTest needs its extensions to use the new static-on-object method to keep the ordering as it expects (Hamish Friedlander)
  • 2012-03-09 c6d7301 Change to a page url segment doesn't get saved properly caused by 'disabled' attribute on the field, which is added by url segment suggestion function (ticket #6842) (Saophalkun Ponlu)
  • 2012-03-09 4bea594 SSF-106 fixed overlapping edit and delete button on datagrid in ie7. (jbridson)
  • 2012-03-09 18adfb0 SSF-53 : avoid to use ":submit" pseudo class in a jQuery selector (Normann Lou)
  • 2012-03-09 2644cbb Remove use of encryptPasswords; use PasswordEncryptor_None instead (Sean Harvey)
  • 2012-03-09 f048b7e Support for gradients in editor in IE9 (Naomi Guyer)
  • 2012-03-08 595a6dc #6817: FieldList.php: findOrMakeTab () fails for nested TabSets (Fred Condo)
  • 2012-03-09 627708e add Director::isDev parameter so we can test if we know we're dev mode already without touching the database. Used in showqueries on MySQL, so that errors are avoided when showing queries on initial switch to dev move (#6856) (Mark Stephens)
  • 2012-03-09 050afdd Make Inputs in Input-Selects take up the whole select box (#6934) (Naomi Guyer)
  • 2012-03-09 b7f5f91 Open new window for "Help" in CMS nav (Naomi Guyer)
  • 2012-03-09 64db811 Convert pages from DataList to ArrayList in CMSBatchActionHandler to avoid problems on merge() (Ingo Schommer)
  • 2012-03-09 63d5927 Added TemplateGlobalProvider include to installer, as required by i18n. (Ryan O'Hara)
  • 2012-03-09 ed0e06c Fix a couple of rebasing-related bugs in GridField. (Sam Minnee)
  • 2012-03-08 f9323b3 Type-safe checks for Controller::join_links(), allowing arguments with a value of "0" (Ingo Schommer)
  • 2012-03-08 5e92c69 SSF-25 : remove CreateForm, using the GridField 'Add New" action, instead (Normann Lou)
  • 2012-03-08 c80e86f Fix GridField::Field() (Sam Minnee)
  • 2012-03-08 292bd79 SSF-53 - fixed filter and reset buttons in ie7 and ie8 plus fixed an array of other ie7/8 styling bugs (jbridson)
  • 2012-03-08 de69d09 SSF-25 : $Form is not defined in the context, sine {$Form.Name} always give 'Form' string, we need just have 'Form' string there instead to use {$Form.Name} (Normann Lou)
  • 2012-03-08 c3a2938 SSF-53 - removed hover and active states from unlink button on users groups datagrid (jbridson)
  • 2012-03-08 4d39813 SSF-30 - moved tabs SCSS from _style.scss to AssetAdmin.scss (jbridson)
  • 2012-03-07 5d4d0db SSF-53 - fixed floating filter and reset buttons on filter under users - roles - no card for this, just came across it. (jbridson)
  • 2012-03-07 febcff7 SSF-30 redirect action that sends an edit form back to the root of assets after making a change like changing the parentID of a file, or deleting it. Basically, any action that makes the existing URL reference obsolete. (Julian Seidenberg)
  • 2012-03-07 676bcbe SSF-30 adding check for null record in the GridFieldPopupForms request handler (Julian Seidenberg)
  • 2012-03-07 38db2c1 Fix state of gridfield pagination (Andrew O'Neil)
  • 2012-03-07 a284853 Fix pagination when there are no records (Andrew O'Neil)
  • 2012-03-07 2106aeb SSF-30 - removed weird hover from delete button. (jbridson)
  • 2012-03-07 829c768 Support for multilevel nested GridFieldPopupForm (in CMS only), fixed breadcrumb linkage (Ingo Schommer)
  • 2012-03-06 b43bdf3 Allowing to save ListboxField and CheckboxSetField into custom relations (which don't return TRUE for has_many() or many_many()) (Ingo Schommer)
  • 2012-03-06 f396802 Fixed $('.cms-tree').getNodeByID(), was always returning tree instance instead of node because 'get_node' isn't a public method, hence ignored (Ingo Schommer)
  • 2012-03-06 723a848 Fixed Group->Members() overloaded relation getter to avoid filtering on zero-value foreign keys, producing empty rather than inherited results (important for the GridField used in Group->getCMSFields()) (Ingo Schommer)
  • 2012-03-06 dc83ace Fixed CSV exporting on GridFieldExporter (was calling action via ajax, which doesn't allow HTTP download responses) (Ingo Schommer)
  • 2012-03-06 1201f6c Saving records in ListboxField->saveInto() and PermissionCheckboxSetField->saveInto() so we have a database ID to relate to (was previously customised in MemberTableField->saveComplexTableField(), which is now deprecated) (Ingo Schommer)
  • 2012-03-05 bb6d4c5 Fixed HasManyList and ManyManyList queries for relationships on new records (was returning all available records due to the SQL filtering ignoring ID=0) (Ingo Schommer)
  • 2012-03-06 763e644 Dont need (and cant call) iteratorProperties calls as workaround any more (Hamish Friedlander)
  • 2012-03-05 2abb021 Restored old permission code model, broken due to new controller structure. Introduced LeftAndMain::$required_permission_codes as a way to control permissions independently of subclasses, and "cluster" multiple classes under a single code. (Ingo Schommer)
  • 2012-03-05 a5e809b Fixed dev/tests/startsession form action (Sam Minnee)
  • 2012-03-04 e8f9624 Moved window.beforeunload handler out of onmatch(), was applied multiple times and causing unsaved changes confirmation messages on forms which were no longer loaded (Ingo Schommer)
  • 2012-03-03 8de7b74 TinyMCE cache shouldn't be shared between projects. Add SCRIPT_NAME when generating a hash for the cache filename (Sean Harvey)
  • 2012-03-02 b242bfb Include GET parameters of current URL in GridField on ajax reloads to retain view state (Ingo Schommer)
  • 2012-03-02 02e728f Fixed visibility of admin/myprofile for non-admins by moving it to a new CMSProfileController class and overloaded canView() (Ingo Schommer)
  • 2012-03-02 b58b281 SSF-53 : remove the disabled status of 'add button' in according with its sitting environment, ie. does it initialed by jQuery UI. If not, simply remove its 'disabled' attribute (Normann Lou)
  • 2012-03-02 de75798 SSF-53 Pass through the parameter $itemsPerPage instead of reassign the default value (15) (Normann Lou)
  • 2012-03-01 e086875 SSF-53 make adding existing member works by enabling the add button correctly (Normann Lou)
  • 2012-03-01 2dfb414 SSF-53: fixed that raw html source appears for "Export to CSV" button(SSF-243) (Normann Lou)
  • 2012-02-29 e61a786 changed the colour of the font on the default tabs to match the designs (jbridson)
  • 2012-02-29 e4496fe SSF-106 added fix for no delete icons in ie7 (jbridson)
  • 2012-02-29 59df00d fixed position of back button in the cms-content-header - adapted design to work around the inclusion of tabs. (jbridson)
  • 2012-02-28 f67cca3 Using RequestHandler->urlParams rather than HTTPRequest->param() in LeftandMain->currentPageId() in order to avoid the wrong ID being chosen on nested controllers like GridField with their own "ID" parameters in the URL signature (Ingo Schommer)
  • 2012-02-28 34d3f29 Fixed TabSet.js initialisation with cookies, default to first tab rather than allowing tab deselects through an index of -1 (Ingo Schommer)
  • 2012-02-28 2457c4f Eescape / in RegExp. (AngryPHPNerd)
  • 2012-02-27 8c075da Fixed 'undefined offset 10' error (AngryPHPNerd)
  • 2012-02-27 f7030c5 Page tree node reflects any changes made to page (title, publication status) in its edit view, implemented on the level of cms-content dom element, rather than cms-edit-form level (Normann Lou)
  • 2012-02-24 587d195 Page tree node reflects any changes made to page (title, publication status) in its edit view (Normann Lou)
  • 2012-02-24 8fdc531 Ensure Date and Datetime field types actually set NULL, false, empty string values correctly instead of "1970-01-01" which gets saved to the database instead of NULL. BUGFIX Datetime::Nice() and casting methods return NULL when there is no value, to be consistent with Date::Nice() and so on (Sean Harvey)
  • 2012-02-24 f4a758e DatetimeField allows non-US style dates with an empty time component to be saved correctly (Sean Harvey)
  • 2012-02-23 0bc6bff Changed CSS class structure of GridField to avoid duplication of ".ss-gridfield" selector in different contexts, and make selectors less verbose (no more "fieldset.ss-gridfield"). Added "field" class to GridField container to ensure it displays correctly alongside other form fields (mainly around margins and paddings) (Ingo Schommer)
  • 2012-02-23 df82dac Fallback to sapphire/silverstripe_version if there is no CMS (framework only) (Simon Welsh)
  • 2012-02-22 8790ba3 Retain editor focus when insert images, update attributes on existing image to avoid IE bugs through TinyMCE (Ingo Schommer)
  • 2012-02-22 5f635d8 Don't reload TreeDropdownField title via ajax if no value is set (which causes infinite loops) (Ingo Schommer)
  • 2012-02-22 9efcb9b fixed "add new" button outside of the datagrid's title bar in firefox(ssf-106) (Felipe Skroski)
  • 2012-02-21 c5a1d69 AssetAdmin bugs out when trying to find Folders with ID = 0 when in /assets/ (Stig Lindqvist)
  • 2012-02-21 2c65d3a Add casting support to global and iterator variable injection (Hamish Friedlander)
  • 2012-02-17 76ddb3c fixed various styling issues in cms (raised in SSF-188) (jbridson)
  • 2012-02-17 e4675d7 Restore ability to pass injected variables right into SSViewer_DataPresenter (Hamish Friedlander)
  • 2012-02-17 156d222 Replaced deprecated DataObjectSet use with ArrayLists in SSViewerTest (Hamish Friedlander)
  • 2012-02-16 454b89f Fixed FormAction.ss template when used with <button> tag (Ingo Schommer)
  • 2012-02-16 07f4cd4 Fixed undefined method suser_error() in Cookie::set() (Sean Harvey)
  • 2012-02-15 4f49c45 Return zero file size for folders (mainly to avoid listing it in AssetAdmin tables, but also because it doesn't make sense for folders) (Ingo Schommer)
  • 2012-02-15 5d7aa8f Allow PartialMatchFilter to use an array as search term (Stig Lindqvist)
  • 2012-02-15 5968205 SSViewer method call for GridFieldItemEditView.ss is not closed (Stig Lindqvist)
  • 2012-02-15 7658e90 Convert::html2raw() not correctly stripping script and style tags (Simon Welsh)
  • 2012-02-11 f55c575 allowing ssviewer to be called without function arguments (Hamish Friedlander)
  • 2012-02-11 5bf79f8 Removed tinymce-advcode plugin which breaks with new TinyMCE and newer browsers. Both the plugin and the underlying 'codepress' engine are unmaintained. Fall back to standard (non-highlighted) TinyMCE <textarea> editing (fixes #6779) (Ingo Schommer)
  • 2012-02-11 591dd4e SS_Map::keys() and SS_Map::values() are identical, keys() should return the keys not the values #6818 (Sean Harvey)
  • 2012-02-10 37156b0 avoid error accessing Tab ID if TabSet has not been set (Will Rossiter)
  • 2012-02-09 23af606 Fix edit and delete actions on gridfield (Andrew O'Neil)
  • 2012-02-09 2670501 Fix HasManyList::removeByID() (Andrew O'Neil)
  • 2012-02-09 a76c9c3 Fix checkFieldsForAction() when working with tabs (Andrew O'Neil)
  • 2012-02-08 d1a39b0 Fixed operation of the onlyDeletedFromStage parameter of Hierarchy::liveChildren(). (Sam Minnee)
  • 2012-02-07 e7f9c2c border radius on datagrid (Felipe Skroski)
  • 2012-02-07 f75537b border radius on datagrid (Felipe Skroski)
  • 2012-02-02 deee8a2 SSF-107, Filter bar should be collapsed by default, this fix works with fix of cms repo commit eec833215dcaa7a4510f7b4724413a39160d1ad7 (see gist https://gist.github.com/1720221) MINOR: correct in-line document (Normann Lou)
  • 2012-02-01 15a641a Clear requirements after running a unit test (Andrew O'Neil)
  • 2012-01-31 e1e5546 Casting return values on text helper methods in StringField, Text, Varchar (Ingo Schommer)
  • 2012-01-30 2485095 Fixed bug in sprintf syntax with GroupImportForm iframe (Sam Minnee)
  • 2012-01-30 0090009 Added default args to GridFieldPopupForms for AssetAdmin which was casing errors BUGFIX: Added GridFieldFilter() to new GridFieldConfig whuch adds filters and fixes the display MINOR: Added gridfield specific margins to form div to push GridField display down-page (due to GF's sort-fields which will be refactored from new designs) (Russell Michell)
  • 2012-01-27 056e564 Subtract should not add order by on subselect (Stig Lindqvist)
  • 2012-01-24 9b3af77 It is not possible to use more than one autosuggestion field from GridFieldRelationAdd per view (Stig Lindqvist)
  • 2011-12-22 7c94caa Fix TokenisedRegularExpression when matching expressions first element is an array (Hamish Friedlander)
  • 2011-12-22 4315e51 Fix deprecated and removed static accessor calls (Hamish Friedlander)
  • 2011-12-22 9c2ebc3 Replace deprecated extraStatics with new methods on Versioned and Hierarchy (Hamish Friedlander)
  • 2011-12-22 686b020 Cant use combined_static in FileFinder any more - it falls through to Config system, which doesnt yet exist (Hamish Friedlander)