The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
[% page.load_scripts_at_top = 1 %]

<h2>Editing draft: [% draft.title %]</h2>
<div id="demo_output_polling"></div>
<form method="POST" action="[% c.uri_for_action('/draft/publish', [ draft.title ]) %]">
<div id="form-entry-title">Title: <input type="text" name="title" value="[% draft.title %]"/></div>
<div id="form-entry-body">
<textarea name="body" rows=15 cols=45>[% draft.body %]</textarea>
</div>
<div id="form-entry-publish">Publish? <input type="checkbox" name="published" /></div>
<div id="form-entry-submit"><input type="submit" value="Save entry" /></div>

<script type="text/javascript">
YUI().use("io-base", "node", "dump", "datasource-function", "datasource-polling", "datasource", function(Y) {
  
    var saveDraft = function() {

    Y.io('/draft', {
      method: 'POST',
      headers: { 'Accept': 'application/json' },
      /*data: {
        title: document.forms[0].title.value,
        body: document.forms[0].body.value
      },
      on: {
        success: function (id, result) {
        },
        failure: function (id, result) {
        }
      }
    })
  },
    
  myDataSource = new Y.DataSource.Function({source:saveDraft}),
        request = {
            callback: {
                success: function(e){
                    Y.one("#demo_output_polling")
                     .setContent("Draft saved: " +
                                Y.dump(e.response.results[0]));
                },
                failure: function(e){
                    Y.one("#demo_output_polling")
                     .setContent("Could not retrieve data: " + e.error.message);
                }
            }
        },
        id = myDataSource.setInterval(10000, request); // Starts polling

        myDataSource.clearInterval(id); // Ends polling*/
});

</script>