Vn.resource ('js/htk/image-editor.xml'); Vn.define (function () { /** * A form to handle the image database, it allows to add new images or * replace it. **/ Htk.ImageEditor = new Class ({ Extends: Htk.Widget ,initialize: function (props) { this.builderInit (this.constructor.Xml); var self = this; this.$('form').onsubmit = function () { self.onSubmit (); return false; }; this.parent (props); } ,onNameChange: function () { var newValue = this.$('name').value; if (!newValue) newValue = null this.signalEmit ('name-changed', newValue); } ,onSubmit: function () { this.$('submit').disabled = true; this.$('spinner').start (); var request = new Vn.JsonRequest (); request.sendFormMultipart (this.$('form'), this.onResponse.bind (this)); } ,onResponse: function (request, json, error) { this.$('submit').disabled = false; this.$('spinner').stop (); if (json) { Htk.Toast.showMessage (_('ImageAdded')); this.signalEmit ('file-uploaded', this.$('name').value); } else Htk.Toast.showError (error.message); } ,setData: function (image, directory) { this.$('name').value = image; this.$('schema').value = directory; } }).extend ({ Xml: 'js/htk/image-editor.xml' }); });