wiki:ChangeLog/2.3.0-rc2

2.3.0-rc2 Changelog

New Features

  • [66163] #1531 - Allow moving files in root assets file (hamish)
  • [65904] #1614: Allow use of admin/addpage?ParentID=(ID)&PageType=(Class) url to quick-add pages

API Change

  • [66894] Move some of the installer into the sapphire directory.
  • [66394]
  • [66392] if a DataObject has getCMSActions, its model admin should be able to add them.
  • [66268] Deprecated Controller::PastVisitor(), it generates a lot of unused cookies
  • [66266] Improve encapsulation of cookies in Director::test()
  • [66264] Revamped CMSMenu system to not instantiate any objects, so that _config.php doesn't get fskd
  • [66175] Moving GoogleSitemap functionality into new "googlesitemaps" module

Bugfixes

  • [66946] Fixing tests
  • [66940] Fixed warning on AssetAdmin (merged from trunk)
  • [66922] #3100: Graceful degradation for codepress in safari
  • [66918] #3115 ajshort: Fixed backslashes in temp folder location in manifest builder
  • [66894] Friendlier error when you have a site running on a PHP4 server, or a server without PHP.
  • [66891] Don't make blank dates show 1/1/1970
  • [66888] Better generation of PastMember cookie when you have stale login info
  • [66828] Fixed sortWidgets() function in WidgetAreaEditor not working because it was picking up comment nodes
  • [66820] Added extension to email address when accessing Security/passwordsent since the . (dots) are split into extensions when the URL is parsed
  • [66799] Fixed importer not working because of i18n_singular_name(), just use the class name of the model instead
  • [66793] Made use of Convert::raw2att() before returning the ModelName for Import spec fields
  • [66791] Fixed "Show specification..." link not working because ModelName had spaces in it
  • [66784] Only including ModelAdmin->ImportForm() if an actual importer was specified
  • [66740] Passing through $member param from SiteTree->canPublish() to SiteTree->canEdit()
  • [66723] fixed typo in filesystem
  • [66707] Fixed notice-level errors in PhoneNumberField
  • [66701] Add !LeftAndMain:$url_rule to minimise bugs in modules
  • [66698] Fixed sake bug when checking for an argument in bash script. Ticket #3112. Thanks simon_w.
  • [66638] Fixed flaw logic checking for $member variable, since it's always set the alternative for choosing Member::currentUser() would never work.
  • [66635] Fixed SiteTree->getCMSActions() so it returns a FieldSet, instead of a DataObjectSet. This makes it consistent with DataObject->getCMSActions() as well as SiteTree->getCMSFields()
  • [66632] Fixed SiteTree->getCMSActions() not extending properly because it was passing an array to the extend() 2nd argument, which expected a FieldSet object
  • [66629] Fixed incorrect class name in user_error message for deprecated function HTTP::sendFileToBrowser()
  • [66608] ModelAdmin? clear search now preserves the result column selection
  • [66505] Consistenly returning cloned instances for all FormField classes when calling performReadonlyTransformation() or performDisabledTransformation(). Making sure that these instances are actually flagged as readyonly/disabled. Addd unit tests to dynamically instanciate most FormField classes to check for this behaviour. Originally, this bugfix was necessary to avoid changed FormField state when recursively calling replaceField() on FieldSet->dataFields() in Translatable->updateCMSFields()
  • [66431] Removed SearchForm->FormMethod() and used $this->setFormMethod() in SearchForm constructor instead which is a nicer solution instead of overloading a Form method
  • [66334] Hiding "change password" fields by default in admin/myprofile, they shouldn't validate the input by default. Replaced with a link to toggle those fields (#3106)
  • [66332] Include jquery_improvements.js whenever jquery.js is required, so jQuery.noConflict() is set. This is required to ensure $() behaves in the prototypey way (alias for document.getElementByID()) rather than jQuery style (document.getElementsBySelector())
  • [66331] Removed overloaded $() function which added support for multiple string arguments in behaviour.js - was conflicting with argument usage in jQuery when not in noConflict() mode. As far as i can tell, multiple string arguments in $() were never used anyway.
  • [66319] Removed dependency on ComplexTableField JS in LeftAndMain for "My Profile" popup
  • [66318] Check if $member variable isn't empty before looking for first name in MemberLoginForm
  • [66317] Fixed call to incorrect case of function name, Member::currentUser() should be used
  • [66313] Fixed ForeignKey->scaffoldFormField() usage of model class instead of relation class to generate dropdown list
  • [66309] Fixed far too small height and width of "Profile" popup in CMS, popupHeight and popupWidth should be defaultPopupHeight and defaultPopupWidth instead according to the ComplexTableField prototype
  • [66306] Fixed HasManyComplexTableField, and subclass fields HasOneComplexTableField and ManyManyComplexTableField saving bug because javascript wasn't being included properly
  • [66305] Fixed recursion bug with !FieldSet::fieldPosition
  • [66274] Improved reliability of LeftAndMain->CMSVersion() - not failing on empty $URL$ placeholder with subversion path to determine version numbers
  • [66269] Merged from trunk; fix !DataObject::hasDatabaseFields()
  • [66266] Fix test/cookie conflict in ErrorPage rendering
  • [66252] Immediately apply behaviours that are added after the Behaviour.apply() call, in Behaviour.register() calls as well as Class.applyTo() calls
  • [66251] Removed unnecessary and bug-causing Behaviour.apply() call.
  • [66250] Made Behaviour.apply calls more specific
  • [66229] Added flash button to tinymce_ssbuttons
  • [66196] #2714 - Cookie::set doesn't operate correctly with expiryDays 0 (wakeless)
  • [66195] #2694 - Mathspam question clear
  • [66194] Fixed draggable bug in AssetTableField - thanks for ajshort for the patch - ticket #3051
  • [66162] #118 - Fixed count of marked pages (hamish)
  • [66137] Fixed editable formfields not showing up in translation mode (#3083). Updated Translatable->updateCMSFields() by partially merging wakeless' patch from (r64523)
  • [66136] Disabled js code in CMSMain->switchlanguage() which was assuming wrong DOM structure (TODO: Replace with more robust selectors)
  • [66135] Fixed field labels for original readonly fields in translation mode
  • [66107] Fixed PHP variable initialization in SiteTree->getClassDropdown() which broke class dropdown in behaviour tab (regression from r66092)
  • [66091] $cache flag wasn't passend through from !ViewableData_Customised->XML_val() to ViewableData->XML_val()
  • [66079] #3051 ajshort: Improved layout of assettablefield drag icon
  • [66070] Fixed HTTP->findByTagAndAttribute missing variable error causing HtmlEditorField to break since it used HTTP::getLinksIn()
  • [66067] #3065: Fixed restore page
  • [66066] #3012 jam13: Fixed tabstrip default tab selection when working with querystrings
  • [66065] Fixed security tabs for JSoD code
  • [66062] #3063: Allow old-school method of adding menu items to LeftAndMiain:
  • [66052] #3087 simon_w: Added !ResfulService::connect() back, for backward compatability
  • [66049] Fixed unescaped html display in DevelopmentAdmin (#3080)
  • [66044] Fixed <% require %> call in !ModelAdmin_left.ss
  • [66043] Fix PHP notice where variable with array didn't exist in HTTP->findByTagAndAttribute()
  • [66029] use a undefined variable $member.
  • [66027] Fixed incorrect call to Permission::checkMember() - missing second argument, first argument should've been a Member object or Member ID
  • [66026] Fixed PHP notice level error in some circumstances in DataObject->buildDataObjectSet()
  • [65944] #3073: Fixed !LeftAndMain::deleteitems()
  • [65923] #3066: Fix ?isDev=1 option
  • [65900] #2868: Fix after-popup-close behaviour on security member table
  • [65899] #2820: Fixed use of buggy reflection in Object::uninherited()
  • [65896] #2706: Fixed JS error in multi-nested pages deletion
  • [65895] #2232: Prevent requirements from breaking ErrorPage publication
  • [65894] #1721: Fixed del/ins styling in page comparison
  • [65881] Don't let permission errors on assets/ folder completely prevent javascript from loading
  • [65865] Fixed tabstrip JS error in ReportAdmin
  • [65863] Ensure that menu items of the same priority show the first added item closes to the left
  • [65860] Fixed JS error in ReportAdmin
  • [65851] #3062: Fixed ondemand support for jQuery responses as well as prototype
  • [65850] Alow decoration of Member with has_many relationships
  • [65843] #3062: Fixed ondemand support for jQuery responses as well as prototype
  • [65842] #3061: Text.FirstSentence returns '.' instead of on an empty field
  • [65827] Fixed flash uploader not searching for the correct files, due to changes in r65820
  • [65825] Tidied up messages in flash uploader right hand panel in CMS

Enhancement

  • [66946] Add <%-- --%> comments
  • [66830] Disabled sending of warnings through Debug::send_errors_to() by default. If you need extended error reporting including warnings (e.g. for a site which is still in active development), use Debug::send_errors_to('example@…', true) or Debug::send_warnings_to('example@…')
  • [66803] Just redirect back after "import" action called, and set the session message on the Form object instead of hardcoded ID
  • [66654] Renamed tab "Meta-data" to "Metadata" for better readability (see #3142)
  • [66646] Fixed default level in HeaderField - was duplicating defaults already present in two other places (see r66639)
  • [66625] Allow CheckboxSetField to use extra classes as other FormField classes do. Also dded test for this behaviour in CheckboxSetFieldTest.
  • [66622] Sort test class list by alphabetical order so it's easier to read
  • [66596] Defaulting to show all columns in ModelAdmin CSV export, ignoring user selection of result table columns (users can always limit CSV columns by manually deleting them e.g. in Excel)
  • [66583] Added experimental support using (relname)Query methods to pass complex relations (those defined by methods) into searchfilter
  • [66343] Added comments in rendered templates to indicate the source .ss files, on dev sites only:
  • [66333] Added ConfirmedPasswordField->setShowOnClickTitle()
  • [66323] If there are no files in a folder in AssetAdmin, show a message
  • [66322] Added SearchFormTest
  • [66320] Added more known file extensions (tiff, js, html, css, ico) to File->getFileType()
  • [66312] Added support for $relationCallbacks on the importer class (in addition to methods on the model class)
  • [66173] Moving GoogleSitemap functionality (priority dropdown and database fields) from SiteTree to GoogleSitemapDecorator
  • [66168] Removed GoogleSitemap references in SiteTree (moving to decorator implementation)
  • [66137] Added TranslatableTest with minimal assertions about existing form fields in translation mode
  • [66045] Added support for custom importer methods in CsvBulkLoader
  • [65827] Added error messages to flash uploader panel, to be consistent with the image uploader one

Minor changes

  • [66944] merged from trunk
  • [66942] merged r66670 from trunk
  • [66939] Merged r66681 from trunk
  • [66819] Code formatting conventions in HTTPRequest->param()
  • [66803] phpDoc comments for ModelAdmin->import()
  • [66800] Added code example of $model_importers array item
  • [66751] Reverted replacement of jQuery.js with minified version, we're doing minification on the fly, and there's jQuery-packed.js as a readymade alternative (see r66708)
  • [66748] Revered jquery/orig folder, not necessary as we have an unminified jQuery.js anyway (see r66717)
  • [66747] Reverted reference to jquery-packed.js which causes problems by double minification in cms (see r66735)
  • [66745] Revered accidental deletion of jQuery.js in r66719
  • [66736] Formatting in Permission::checkMember()
  • [66735] fixed path include for jquery
  • [66700] merged r66672 from trunk
  • [66643] Removed unused action "waitingon" from CMSMain::$allowed_actions
  • [66642] Removed TaskList remnants of old cms workflow code
  • [66640] Removed redundant code
  • [66637] Code formatting of !isset($member) on SiteTree->canAddChildren() for consistency with other can*() methods
  • [66636] Renamed to correct updateCMSActions() in php comment
  • [66631] Removed unused private static $dataobject_select in File
  • [66630] phpDoc comments for File->getAbsoluteSize()
  • [66628] Code formatting cleanup on CheckboxSetField->Field()
  • [66624] Added tests for checking extra class was added to DropdownField
  • [66623] Added tests for checking extra class was added to FormField subclasses (TextField, EmailField and OptionsetField)
  • [66615] Readd of end php tag as per coding conventions
  • [66614] Added missing end php tag for ImageEditor, as per coding conventions
  • [66613] Removed whitespace after end php tag for AssetTableField
  • [66612] Removed commented out code that shouldn't be lying around
  • [66542] actually allow youtube / blip videos to be embedded into the cms content area
  • [66426] added setter function to write_js_on_body() so I can override the settings
  • [66386] SecurityAdmin? code formatting cleanup
  • [66385] Removed old references to "rightbottom", which is now obsolete and caused a big box to appear in the CMS sometimes
  • [66373] Tidied up messy template syntax in LeftAndMain.ss
  • [66333] Documentation for ConfirmedPasswordField
  • [66322] Documentation for SearchForm
  • [66318] Coding conventions, inconsistent use of tabs and spaces
  • [66317] Code conventions (spaces should be between operator characters)
  • [66311] Removed old references from workflow in SiteTree and VirtualPage (!AssignedToID and !RequestedByID were old properites of a workflow page type)
  • [66310] Removed old workflow instances in the cms module. See ticket #3044
  • [66302] Added isset($_SERVERHTTP_HOST?) checks to Director->isDev() and Director->isTest() - these environment variables are not available in CLI mode, and show up as PHP notices in a default cli-script/sake execution
  • [66270] Code formatting in FormField
  • [66167] Fixed class naming in LeftAndMainDecorator.php
  • [66093] Removed debug code in AjaxUniqueTextField
  • [66092] Fixed PHP Notice in SiteTree
  • [66024] Removed debug code committed in r65554

Other

  • [66941] Fixed SiteTreePermissionsTest login failure tests
  • [66923] #1885: Fixed safari bold, italic, underline by removing HTML scrubbing.
  • [66889] Better checking of tabstrip stuff
  • [66834] Removed call-time pass by reference from CsvBulkLoader
  • [66824] Removed unnecessary updateCMSFields call; !DataObject::getCMSFields does this for us
  • [66719] getting things tidied up
  • [66717] trying to get jquery to stick
  • [66712] packed jquery
  • [66708] packed jquery and jquery ui
  • [66645] DataObject::relObject() throws an exception rather than an error so that it can be caught
  • [66639] Set default level for HeaderField
  • [66634] Added white background for tabs in all places; not just the right frame
  • [66626] Allow passing of columns to ColumnSelectionField() and allow different ColumnSelectionField() values to influence the result columsn
  • [66582] Added support to !DataObject::relObject() for looking at $casting to get information about the relation - good for dynamic relations
  • [66546] Fix incorrect logic in r66544
  • [66544] Make sure only fields that exist can be autocompleted on MemberTableFields, and never autocomplete on password.
  • [66431]
  • [66394] 1. Add note to each record in 1-many relation. Add the tab "Notes" for showing/editing/deleting notes of a record.
  • [66356] Merged pre-2.3-oct08 into 2.3 (via trunk)
  • [66353] Merge pre-2.3-oct08 into 2.3 (via trunk)
  • [66350] Fix to LeftAndMain to ensure that jquery doesn't break other admin sections
  • [66304] Fixed bug in test makefile
  • [66296] Build database before testing, for RestfulService test, etc
  • [66267] Return an HTTPResponse consistently from controllers
  • [66265] Fixed RequirementsTest
  • [66225] #2771: Fix SQLQuery::filtersOnID() (wakeless)
  • [66192] #2635 - More informative errors in DataObject (simon_w)
  • [66103] FIX: permission migrator for missing groups
  • [66086] Merged pre-2.3-oct08 into branches/2.3 (via trunk)
  • [66084] Merged pre-2.3-oct08 into branches/2.3 (via trunk)
  • [66008] Boundary condition check for top-level pages with 'inherit' permission
  • [65981] Update sapphire so that it can run with the default .htaccess and mysite/_config.php files provided in the phpinstaller. If database config is missing, then redirect to install.php
  • [65971] Include tabstrip js and css for modeladmin
  • [65970] Fixed WYSIWYG styling
  • [65967] Added validation for !DataObject::db, has_one, has_many, many_many, belongs_many_many properties, so that improper use of the array syntax doesn't raise strange bugs elsewhere.
  • [65959] #3068 - Fixed memory issue in IE
  • [65939] Replace source view with one based on codepress
  • [65938] Added advcode tinymce plugin that is a wrapper around codepress
  • [65915] Set default view/edit permissions
  • [65913] Added light blue colouring to notinmenu items
  • [65912] Added notinmenu class to CMS tree items that aren't in menus
  • [65861] Fixed dropdown-based ModelAdmin navigation
  • [65859] Fixed root node not displaying correctly
  • [65828] Removed console debug messages for ThumbnailStripField
  • [65824] Merged in image search capabilities from trunk version - r65820, r65823