# CKFinder Changelog

CKFinder

Copyright (c) 2007-2022, CKSource Holding sp. z o.o. All rights reserved.

## Version 3.6.0

### New Features

- Upgraded Flysystem to version 3.

### Backward Incompatible Changes

- Custom storage API in PHP connector has undergone major changes. Custom storage adapters must be refactored to be compliant with Flysystem 3.

### Localization Updates

- Updated: Arabic.

## Version 3.5.3

### New Features

- Added support for PHP 8.1.

### Fixed issues

- Updated third-party libraries.
- Replaced deprecated method calls.

## Version 3.5.2

### Fixed issues

- Upgraded jQuery to v3.6.0.
- Replaced Lodash with Underscore v1.13.1.

## Version 3.5.1.2

### New Features

- Added support for PHP 8.

### Fixed Issues

- Fixed type registration issues in a newer version of Autofac.

## Version 3.5.1.1

### Fixed issues

- Updated third-party libraries.
- Fixed race condition in the local filesystem adapter.
- Upgraded the ImageProcessor library to version 2.8.0.
- Upgraded the Autofac library to version 5.2.0.
- [Java] Fixed issues related to DirectoryStream not being properly closed at some places.

### Localization Updates

- Updated: Bosnian, Chinese, Japanese, Korean.

## Version 3.5.1

### New Features

- Added support for uploading files without a file extension. Files without an extention have to be explicitly enabled in the resource types configuration.

### Documentation Updates

- Added documentation that clarifies how to fully protect against content sniffing in web browsers.
- Added documentation that clarifies how to fully protect against content sniffing in web browsers.

## Version 3.5.0

### Fixed Issues

- Fixed issues related to loading language files in a CORS-enabled environment.
- Fixed image editing in a CORS-enabled environment.
- Fixed contrast issues in the "Choose resized" dialog.
- Fixed an issue with downloading large files that occurred on some IIS configurations.
- Fixed an issue with the `Proxy` command on an S3 backend.

### Localization Updates

- Updated: Japanese.

## Version 3.4.5

### New Features

- New skin: Neko.
- The language files can now be loaded in a CORS-enabled environment.
- Improved the look & feel of the image preview view.

### Fixed Issues

- Fixed performance issues in the folder tree view for folders that contain hundreds of subfolders.
- Fixed focus issues in Compact and List view.
- Fixed file panel auto scroll issue in Modal mode.
- Fixed navigation issues in Compact and List views.
- Refactored Amazon S3 adapter, so it is now possible to pass a custom instance of `AmazonS3Client`.
- Fixed an issue with incorrect last file modification dates.

### Backward Incompatible Changes

- Due to performance issues, the `view:FolderTreeNode` event is no longer emitted in the CKFinder JavaScript client.

## Version 3.4.4

### Fixed Issues

- Fixed file selection issue that occurred when search filter was used.
- Fixed problem with dates on FTP adapter.
- Updated AWS SDK to version 3.

### Localization Updates

- Updated: Chinese, Dutch, Finnish, Persian.

## Version 3.4.3

### Fixed Issues

- Fixed file upload issue in the latest version of Microsoft Edge (v42).
- Fixed text selection issue in CKFinder UI.
- Added support for Unix symbolic links in the local filesystem backend adapter.
- Fixed URL generation in backends that use the Proxy command.
- Upgraded the ImageProcessor library to the latest version (v2.6.2).
- Added possibility to set license details per request.

## Version 3.4.2

### Fixed Issues

- Fixed issues with resolving base path when `ckfinder.js` is loaded with query string parameters.
- Fixed PDF preview for files with the "pdf" extension written in uppercase.
- Updated AWS SDK to version 3.
- Updated Dropbox API to version 2.
- Fixed `baseUrl` option which was ignored by some backend adapters.
- Fixed URL generation for resized images in backends that use the Proxy command.

### Localization Updates

- Added: Azerbaijani, Uzbek (Cyrillic and Latin versions).
- Updated: Vietnamese.

## Version 3.4.1

### New Features

- Added support for FTP storage.

### Fixed Issues

- Improved Thumbnail command performance.

### Localization Updates

- Updated: Greek and Turkish.

## Version 3.4

### New Features

- The `settings:change:GROUP:NAME` event has a new parameter: `previousValue`.
- Added the Compact View for displaying files in columns (not supported in IE9).
- The `defaultViewType` configuration option accepts a new value: `compact`.
- Added the `width` parameter for columns defined for List View in the `listView:columns` event.
- Added the "OK" button to information dialogs (those created using the `dialog:info` request).
- Improved configuration validation.
- Added progress tracking for time-consuming operations.
- Added support for IIS virtual directories in the local storage adapter.

### Fixed Issues

- Added the missing `command:before:FileUpload`, `command:ok:FileUpload` and `command:error:FileUpload` events for uploading files.
- Fixed focus in the settings panel when changing the view type.
- Fixed double `toolbar:reset:Main:folder` event in compact mode when the user selects a folder in the files pane.
- Fixed keyboard navigation for disabled context menu items.
- Removed the possibility to invoke the Delete File command by keyboard inside a folder with `ACL FILE_DELETE` set to `false`.
- Removed the possibility to invoke the Rename File command by keyboard inside a folder with `ACL FILE_RENAME` set to `false`.
- Fixed drag&drop uploads in List View.
- Updated Javascript code prettifier for samples.
- Fixed file permission issue occurring during file upload on some IIS server configurations.
- Fixed HTML file extension matching.
- Fixed URL generation for resized images in backends that use the Proxy command.
- Added missing file size field to the SaveImage command response.
- Improved thumbnail caching.

### Localization Updates

- Added: Swiss German (thanks to Miro Grenda!) and Ukrainian (thanks to Holovin Yevhen Nikolayevich!).
- Updated: Chinese, Czech, Esperanto, French, German, Kurdish, Latvian, Polish, Russian, Slovakian, Spanish and Turkish.

## Version 3.3.1

### Fixed Issues

- Fixed performance issue in folders with more than 1000 files.

## Version 3.3

### New Features

- Added support for Microsoft Azure Storage.
- Added a stable version of the ASP.NET connector.
- Added support for Microsoft Azure Storage.
- Added support for Amazon S3 Storage.

### Backward Incompatible Changes

- Language files have undergone a major reorganization. Obsolete keys were removed.
- Events related to rendering columns in the files pane were changed: `listView:file:column:NAME`, `listView:folder:column:NAME`.

### Fixed Issues

- Performance improvements for rendering the files pane with thousands of items.
- Thumbnail slider enabled in list view when loading CKFinder.
- Choosing files with double click does not fetch the file URL for some remote backends.
- Invalid time when parsing time in the 12-hour clock system.
- Image Edit: Saving an image that exceeds `maxWidth`/`maxHeight` throws an error.

### Localization Updates

- Added: Bosnian.
- Updated: Brazilian Portuguese, Czech, Esperanto, French, German, Italian, Kurdish, Latvian, Persian, Polish, Russian, Spanish and Swedish.

## Version 3.2.1

### Fixed Issues

- In widget mode (in Internet Explorer/Edge only) the CSRF protection was too strict and did not allow for actions that should be allowed.

## Version 3.2

### New Features

- Added new view for files pane: a list view with file details.
- Added sorting of files in files pane by name, date and size.
- Added the `listViewIconSize` configuration option.
- Added the `defaultSortBy` configuration option.
- Added the `defaultSortByOrder` configuration option.
- Added the `defaultViewType` configuration option.
- Added the `listView:columns` event.
- Added the `listView:file:column:NAME` event.
- Added the `listView:folder:column:NAME` event.
- Added the `resources:show:before` event.
- Added the `dialog:close:NAME` event.
- Added the `file:getActive` request.
- Added the `csrf:getToken` request.
- Added the `sendPostAsJson` parameter to the `command:send` request
- The `view` parameter for the `page:create` request is now optional.

### Fixed Issues

- Individual settings views have a proper name in the `view:NAME` event instead of a single `Setting`.
- Compact mode: Keyboard navigation in breadcrumbs is inverted for RTL languages.
- Fixed an issue that prevented to move or copy over 250 files on a default PHP installation.
- Fixed wrong error message for an empty file name.
- Fixed detection of swipe direction when opening panels on touch screen devices.
- Compact mode: Focus on filter box is lost when typing.
- Thumbnails are not refreshed after editing an image.
- Files filter is not refreshed after clicking a folder.
- Focus is lost after moving files.
- The toolbar is unnecessarily rendered when lazy loading of a folder finishes and a file was selected.

### Localization Updates

- Added: Esperanto.

## Version 3.1

### Security Updates

As a result of security testing and hacking that we did on CKFinder 3 we discovered some potential security concerns in the server-side part of the application. These issues affected actions that only authenticated users could perform solely in locations specified in your CKFinder backends configuration, but since in some cases it was possible to skip ACL checks or file extension checks, an upgrade is highly recommended.

### New Features

- Improved accessibility. Added compatibility with screen readers.
- Reworked keyboard navigation in the entire application. Implemented custom `Tab` key support to resolve inconsistency between browsers.
- Added the Keyboard Shortcuts dialog window — press `?` to open it.
- Greatly improved application performance when loading files from remote locations (e.g. Amazon S3).
- Improved performance by reducing the number of situations when the entire files pane is reloaded.
- Improved performance by caching files on subsequent clicks of the folder.
- Added Microsoft Edge compatibility.
- Added preview of PDF files in the gallery.
- Added drag and drop support for files onto folders and breadcrumbs in compact mode.
- Added busy dialog and progress tracking for time-consuming operations.
- Added Proxy command support. It is now possible to view files stored outside the document root or in remote backends in the gallery.
- Added the `Proxy` command and the corresponding `useProxyCommand` backend configuration option.
- Reworked the Choose Scaled dialog window.
- Edit Image feature now warns against closing without saving changes.
- Added the `folder:getIcon` request.
- Removed Maximize/Minimize buttons in popup mode as the browser provides native controls for it.
- Improved performance by caching file previews.
- Added the `cache` option that configures cache lifetime for various CKFinder components.
- Added the `tempDirectory` option that configures the path to the temporary files folder used by CKFinder.
- Added the `sessionWriteClose` option that configures whether the connector should close write access to the session to avoid performance issues.
- Added the `Operation` command that tracks the progress of operation in time-consuming connector commands.

### Backward Incompatible Changes

- Context menu API has undergone major changes. See the updated context menu documentation.
- Toolbar API events `toolbar:reset:NAME` and `toolbar:reset:NAME:EVENT` - `data.toolbar` is now a `Backbone.Collection`, not an array.
- The `file:getIcon` request no longer has the `extension` parameter. Pass the `file` parameter instead.

### Fixed Issues

- Compact mode: Breadcrumb was hidden when entering a folder with many files.
- Compact mode: There was no way to enter a folder on Android.
- Compact mode: Broken border around CKFinder when viewing the top level folder with resource types.
- Edit Image: Loading an image was not working when the domain name contained a dash character.
- Edit Image: Context menu item was enabled when the user had no permissions to edit the file.
- Edit Image: Resize option was not available in compact mode.
- Edit Image: Reset button should have been disabled if there was nothing to reset.
- Edit Image: Fixed validation of provided values in the edit image controls.
- Edit Image: There was no information about failing to save a file.
- Edit Image: It was possible to crop an area bigger than the edited image.
- Edit Image: Fixed progress bar behavior.
- Filter input: Clearing filter input did not result in showing all files in IE9.
- Filter input: Filter should remember its state if it is still active.
- Focusing elements: Focus in context menu and toolbar did not cycle.
- Focusing elements: Focus was lost after resizing an image.
- Focusing elements: Focus was not remembered when returning to the files pane.
- Focusing elements: Pressing `Tab` should focus the first item in a component (file, folder, toolbar button), not the container.
- Focusing elements: Lock focus chain within the settings panel.
- Scrolling files: Scrolling on mobile devices was troublesome and sometimes did not work at all.
- Scrolling files: Files were unnecessarily selected on scroll on mobile devices.
- Thumbnails: Problem with thumbnails in widgets/popups when `connectorPath` did not include the domain.
- Thumbnails: Thumbnails loaded with a significant delay for a larger number of files.
- Thumbnails: Thumbnails were not refreshed in certain scenarios.
- iOS/Safari: Thumbnails were not shown.
- iOS/Safari: Popup sample did not work.
- iOS/Safari: The configured height of the widget was ignored, instead CKFinder height depended on the number of files inside.
- iOS/Safari: Downloading files did not work.
- Setting global configuration did not work for widgets and popups.
- There was no Close button available after file upload.
- It should not be possible to move dialog windows.
- Fixed various UI glitches in the RTL interface.
- Video or image sometimes overlapped file preview controls in file preview.
- Delete files confirmation dialog did not appear when the files pane was scrolled.
- Changed the confusing empty folder message in the read-only mode.
- Removed the notification about correctly uploaded file in IE9.
- Resolved an issue with validating license names that started with `www[0-9]` or that contained upper case letters.
- In certain scenarios not all available toolbar buttons were shown in CKFinder.
- Fixed the look of the "More" drop-down in the toolbar.
- Empty `directory` key in the backend definition resulted in a double slash in the file URL.

### Localization Updates

- Added: Basque, Kurdish.
- Updated: Brazilian Portuguese, Chinese, Croatian, Czech, Danish, Esperanto, Estonian, French, German, Greek, Hungarian, Italian, Korean, Norwegian, Persian, Polish and Russian.

## Version 3.0

A brand new version of CKFinder, currently available only for PHP. For an overview of new features, see the announcement about CKFinder 3.0 for PHP.

- New architecture based on jQuery, jQuery Mobile, Backbone, Marionette, and RequireJS.
- Built-in image editor.
- Customizable skins compatible with jQuery UI Themeroller.
- Full responsiveness, great mobile support.
- Cloud storage support (Amazon S3, Dropbox) and FTP connector.