Core,Stable | Date: 24 juin 2012 | Posted by: Charles |
Announcing the release of AjaXplorer 4.2.0. a major release, introducing tons of new features and bugfixes.
Many improvements were done in the field of users management and configurations, allowing better connectivity with third party directories like LDAP/AD, and better performances for cloud deployment and/or huge user base. On the filesystem-side, recursive listing and filehashing make the application ready for desktop synchronisation clients (an implementation is actually already on-the-road). New plugin for automagically mounting a filesystem (in the sense of linux « mount ») at login, a user quota implementation (only disk usage yet), an embedded tasks scheduler, etc… Plus a new automated build process (using phing) that should ease the production of linux packages (rpm/deb, still working on this).
Please read the whole changelog below! It also includes the 4.1.0 changes that were in the « dev » channel.
And last but not least, announcing the birth of Abstrium, a company dedicated to provide enterprise-grade services and support for AjaXplorer! Stay tuned, more to come very soon.
Contributors : Cyril Russo, Carl Chan, Alexandre Champalle, Daniel Berteaud, Thomas Oettli, Michele Beltrame, David Robinson
From 4.0.4 : use the automatic upgrade mechanism.
From 4.1.0 : also, but make sure you are using the « Development » channel. You’ll be able to switch back to stable channel after the upgrade.
In both cases, the upgrade will try to force the overwrite of conf/bootstrap_context.php. If not possible, you may be unable to relaunch after the upgrade, simply manually update the bootstrap_context.php file to the newest version.
Auth.multi driver : Implement an alternative MODE, instead of proposing the various drivers to the user, consider one is the master (typically ldap) and the other is the local alternative (typically serial) to allow creating shared users.
Action.scheduler : a generic CRON-LIKE scheduler triggering AjaXplorer actions in background. Only one call needs to be added to the cron to trigger the scheduler
Share engine : Add an optional Downloads Limit on generated links to auto-expire after x downloads.
Default repository : Add an option for forcing default repository at login.
Quota implementation : New hook before_create / Pass new size when possible in before_change and before_create
meta.file_hasher : Store md5_mtime to make sure some changes were not missed, recompute if not sure
meta.mount : Automount any filesystem (Linux only) automatically
log.syslog : Send logs to System Logger (Linux only)
Core.auth / Core.conf : New mechanisms to list users in a paginated way, to avoid overflowing GUI. Implemented by auth.sql, auth.conf and auth.ldap for now on.
————————- 4.1.0 ———————–
PHP 5.4 Support : Call-time pass by reference are deprecated, replace static calls to DOMDocument::loadXML
XSD Schema : missing dynamicItems element definition, missing user_param element
Encoding : XmlEntities before sending in triggerBgAction.
Encoding : Preg_quote before using as regexp
New Cache : I18n Messages caching mechanism, one file cache per language
Automated build : exclude some under-used or very specific plugins from the standard build : access.demo, access.jsapi, access.wms, auth.cmsms, auth.phpbb, editor.codepress (deprecated), log.syslog
Replication : Ability to replicate groups of fields in the standard form kit.
Config files : New (optional) way of encoding serial files using JSON formatting. We may switch massively to this format, as it’s much more easy to hack manually (but would have to check performances before).
Refactoring : Deport login/logout and related actions inside AbstractAuthDriver instead of root index.php file
Autoloader : search interfaces defined in core plugins
Refactoring : New core.metastore plugin, defining the MetaStoreProvider interface & the AJXP_METADATA_ constants
Performances : New skipCheck parameter added to AJXP_Utils::loadSerialFile
Distributed Env : New variable AJXP_SHARED_CACHE_DIR / Shared cache can be a stream, which have implications at many levels
————————- 4.1.0 ———————–
Cross-Repo copy : Two successive node expand changed the current repository to the destination repository (switch back replaced twice).
Core : Fix mkdir() call for the cmd_outputs folder
Performance : cache slow processing data when possible (registered extensions, messages, etc), either in memory (static var) or in cache files.
IE10 Ready : Prototypejs & Css fixes for forthcoming IE10 version (does not support filter: anymore)
Typo : Error prevented the updateIcon in xTree
Diaporama : Do not display splitter and info panel if no toggleButton action is passed
IFRAME uploader : use closeValidation instead of closeFunction to avoid override
Error catching : Catch error 500
Refactoring : ParseXMLMessage Return false on error
Refactoring : Set action_instance_ID on buttons referring to actions, to dynamically update their label if necessary.
Performances : ActivityMonitor sends get_action=ping to avoid triggering default action.
HeaderResizer : decorellate from table_rows_container, fix columns width, fix typo that was preventing Opera from working.
Refactoring : Deep FilesList refactoring to attach a different data model
User Experience : Repository configs Update the Meta Sources tab for better UX.
Bug : Avoid shadower error / Do not call activate() on accordion if already showing.
ConfigEditor : Do not close window on repository creation error / Form Manager : use tab to navigate inside the accordion.
————————- 4.1.0 ———————–
Client Session timer: hook to « ajaxplorer:longtask_xxx » events to avoid disconnecting during very long task (namely uploads for the moment)
uploader.jumploader : skip pre/post processors if xhr_uploader passed in the url
auth.sql : Override the clearRights() method, changes must be saved directly in the DB.
auth.sql : Fix double bookmarks loading
Jumploader : use uploader passed as argument, may solve FF random problems?
action.share : Change share action rights : allow readonly users to share links (but not folders).
action.share : Do not allow re-creating a temporary user
action.share : Handle SessionCredentials case along with folder sharing by saving an encoded version of the credentials in the options.
meta.svn : Usability & improvements, more documents oriented than source control. To be generalized. Todo : how to grab old versions metadata?
meta.svn : pass the LC_ALL environnent variable to proc_open if AJXP_LOCALE is defined
meta.svn : pass array if multiple arguments (will be shell escaped) / Auto-commit metafile changes
unoconv : How to guess the encoding of pdfs of docs for extracting text? / TODO : report documentation
————————- 4.1.0 ———————–
Metadata loading : Set a « hidden » metadata to a passed node
Access.fs : handle symlinks more properly
Access.fs : Filter files and folders when creating Zips, using PCLZIP_CB_PRE_ADD callback
Access.smb : Clean URL everywhere, pass the Locale as environnement variable when defined
Access.fs : Big typo error making the « nodeName » resetting useless
Access.smb : override makeZip and allow its usage (by plugin configuration), as it can be an option when on a very fast network connection.
Access.smb : fix « + » in folder name, use rawurldecode() instead of urldecode()
Open_basedir : Multiple files downloads broken, do not « patch path » in readFile function when on the realFileSystem.
Core.conf : Add a $context parameter to the user save() method, to avoid « over saving » data : if context is « superuser », save preferences and rights, where as in context « user » save only preferences.
Core.uploader : should solve the problems of setting the upload limit.
Auth.ftp : Force call to getServerFeatures() when coming from the login operation.
Auth.ldap : Jon Peck ldap contrib : ability to configure DN as an array and iterate through them
Meta.svn : manually set a library path to access the SVN commands.
Meta.filehasher : new utility for accelerating synchronization, compute and store file md5 in metadata (if metastore active) and delete on file change.
Action.powerfs : Fix zip delegation : do not sleep for one second, change the download mechanism, and place the zip inside the temporary folder, otherwise it makes problems for read-only folders. Allow compression when using powerfs in read mode, Todo : exclude hidden files from zip operation using an exclude list,