PHPackages                             se7enxweb/ezautosave - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. se7enxweb/ezautosave

ActiveEzpublish-legacy-extension[Utility &amp; Helpers](/categories/utility)

se7enxweb/ezautosave
====================

Content editing autosave extension for eZ Publish legacy

v6.0.0(2y ago)2395↓50%4GPL-2.0JavaScript

Since Jul 4Pushed 2mo agoCompare

[ Source](https://github.com/se7enxweb/ezautosave)[ Packagist](https://packagist.org/packages/se7enxweb/ezautosave)[ Fund](https://account.venmo.com/u/se7enxweb)[ Fund](https://cash.app/$7xweb)[ RSS](/packages/se7enxweb-ezautosave/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (16)Used By (4)

About eZ Autosave
=================

[](#about-ez-autosave)

Project page: Roadmap feature request:

eZ Autosave enables the automatic and transparent saving of the draft while editing a content in eZ Publish. Based on this, it also provides an "inline" preview from the content edit in the administration interface.

This extension is based on QH Autosave by Quoc-Huy NGUYEN DINH

Features
========

[](#features)

- Regularly save the draft (interval defined in `autosave.ini/[AutosaveSettings]/Interval`)
- Save the draft when the user leaves a form field (enable/disable through `autosave.ini/[AutosaveSettings]/TrackUserInput`)
- Hide the "Store draft" button (enable/disable through `autosave.ini/[AutosaveSettings]/HideStoreDraftButton`)
- Try to save the draft if the editor unexpectedly quits the content edit page (back button, close browser, ...)

Requirements
============

[](#requirements)

- eZ Publish 2012.01 or 4.7 or newer
- ezjscore

TODO / Known issues
===================

[](#todo--known-issues)

- Add timeout support as soon as the YUI3 bug #2531308 is fixed
- When timeout is implemented, add a Retry button in case of timeout
- Use the output of the ezjscore action to update the content edit form: for instance, after uploading an image, the preview could be updated or the unvalidated field could be hightlighted.
- Let the editor disable/enable the autosave process
- Let the editor choose the interval between two autosave attempts

Technical notes
===============

[](#technical-notes)

This extension provides a JavaScript component called `Y.eZ.AutoSubmit`. It's the main part of the extension, it allows to automatically submit a form at fixed interval or because the user has changed something.

This component extends the EventTarget YUI3 component and then triggers some events during its life. The available events are (see example below for details):

- init
- beforesave
- success
- error
- nochange
- abort

It also listens for the event 'autosubmit:forcesave'. When this events is fired, the Y.eZ.AutoSubmit component will try to submit the form no matter if its state has changed or not.

Example:

```
{ezscript_require( array( 'ezjsc::yui3', 'ezautosubmit.js' ) )}

YUI(YUI3_config).use('ezautosubmit', function (Y) {

    var as = new Y.eZ.AutoSubmit({
        form: '#selectorToTheForm',
        ignoreClass: 'no-autosave', // change in form fields with this class
                                    // will not trigger an auto submit
        action: 'url/to/post/the/form/content', // should answer in JSON
        interval: 30, // number of seconds between two submit attempts
        trackUserInput: true, // boolean, whether the component should try to
                              // submit the form if the user leaves a field
                              // and has made changes
        enabled: function () { return true; } // optional function to
                                              // disable autosave in some circumstances
        });

    as.on('init', function () {
        // init event
        // triggered when the component is initialized
        // if the `enabled` function returns false, this event is not
        // triggered
        // "this" is the Y.eZ.AutoSubmit instance
    });

    as.on('beforesave', function () {
        // beforesave event
        // triggered right before the form is automatically submitted
        // "this" is the Y.eZ.AutoSubmit instance
    });

    as.on('sucess', function (e) {
        // success event
        // triggered if the form was correctly submitted
        // e.json contains the server response in JSON
        // "this" is the Y.eZ.AutoSubmit instance
    });

    as.on('error', function (e) {
        // error event
        // triggered if the form was not correctly submitted
        // e.json contains the server response in JSON if the
        // server response was JSON valid
        // "this" is the Y.eZ.AutoSubmit instance
    });

    as.on('nochange', function () {
        // nochange event
        // triggered if the component tries to submit the form but no
        // change has occurred since the last submit
        // "this" is the Y.eZ.AutoSubmit instance
    });

    as.on('abort', function () {
        // abort event
        // triggered if the component tried to submit the form but the
        // request is aborted for instance because of a call to stop()
        // "this" is the Y.eZ.AutoSubmit instance
    });

    // from anywhere in the application, the following line will make
    // the Y.eZ.AutoSubmit component to submit the form
    Y.fire('autosubmit:forcesave');

});

```

###  Health Score

45

—

FairBetter than 92% of packages

Maintenance57

Moderate activity, may be stable

Popularity18

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~354 days

Recently: every ~806 days

Total

11

Last Release

833d ago

Major Versions

v5.4.4 → v6.0.02024-01-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/d2a5049c5b1e7a22c301a2472d09281be35f717da316873861c1a8ae785ada7a?d=identicon)[7x](/maintainers/7x)

---

Top Contributors

[![dpobel](https://avatars.githubusercontent.com/u/305563?v=4)](https://github.com/dpobel "dpobel (42 commits)")[![quochuy](https://avatars.githubusercontent.com/u/310654?v=4)](https://github.com/quochuy "quochuy (27 commits)")[![nfrp](https://avatars.githubusercontent.com/u/294488?v=4)](https://github.com/nfrp "nfrp (7 commits)")[![se7enxweb](https://avatars.githubusercontent.com/u/51429274?v=4)](https://github.com/se7enxweb "se7enxweb (5 commits)")[![lolautruche](https://avatars.githubusercontent.com/u/313528?v=4)](https://github.com/lolautruche "lolautruche (5 commits)")[![andrerom](https://avatars.githubusercontent.com/u/289757?v=4)](https://github.com/andrerom "andrerom (4 commits)")[![glye](https://avatars.githubusercontent.com/u/289744?v=4)](https://github.com/glye "glye (3 commits)")[![npanau](https://avatars.githubusercontent.com/u/458684?v=4)](https://github.com/npanau "npanau (2 commits)")[![emodric](https://avatars.githubusercontent.com/u/362286?v=4)](https://github.com/emodric "emodric (2 commits)")[![jeromegamez](https://avatars.githubusercontent.com/u/67554?v=4)](https://github.com/jeromegamez "jeromegamez (2 commits)")[![juagarc4](https://avatars.githubusercontent.com/u/13120286?v=4)](https://github.com/juagarc4 "juagarc4 (2 commits)")[![SylvainGuittard](https://avatars.githubusercontent.com/u/1157233?v=4)](https://github.com/SylvainGuittard "SylvainGuittard (2 commits)")[![thiagocamposviana](https://avatars.githubusercontent.com/u/353112?v=4)](https://github.com/thiagocamposviana "thiagocamposviana (2 commits)")[![trolek](https://avatars.githubusercontent.com/u/875234?v=4)](https://github.com/trolek "trolek (2 commits)")[![pedroresende](https://avatars.githubusercontent.com/u/951377?v=4)](https://github.com/pedroresende "pedroresende (1 commits)")[![pkamps](https://avatars.githubusercontent.com/u/971684?v=4)](https://github.com/pkamps "pkamps (1 commits)")[![bdunogier](https://avatars.githubusercontent.com/u/235928?v=4)](https://github.com/bdunogier "bdunogier (1 commits)")[![bchoquet-heliopsis](https://avatars.githubusercontent.com/u/465757?v=4)](https://github.com/bchoquet-heliopsis "bchoquet-heliopsis (1 commits)")[![websoftix](https://avatars.githubusercontent.com/u/479107?v=4)](https://github.com/websoftix "websoftix (1 commits)")[![xaviercousin](https://avatars.githubusercontent.com/u/1844504?v=4)](https://github.com/xaviercousin "xaviercousin (1 commits)")

### Embed Badge

![Health badge](/badges/se7enxweb-ezautosave/health.svg)

```
[![Health](https://phpackages.com/badges/se7enxweb-ezautosave/health.svg)](https://phpackages.com/packages/se7enxweb-ezautosave)
```

###  Alternatives

[monsoonconsulting/magento2-pwa

Adds a service worker to Magento2 to enable PWA features.

2322.9k](/packages/monsoonconsulting-magento2-pwa)[yii2mod/yii2-selectize

selectize.js wrapper for yii2

1730.7k1](/packages/yii2mod-yii2-selectize)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
