knownasilya / ember-plupload

Ember component for handling uploads using plupload
MIT License
87 stars 53 forks source link

reset plupload queue if server responds with error #131

Open rinoldsimon opened 6 years ago

rinoldsimon commented 6 years ago

hbs

    {{#pl-uploader for="upload-image" extensions="jpg jpeg" max-file-size="5000000" onfileadd="uploadImage" as |queue|}}
      {{#if queue.length}}
        Uploading...{{queue.progress}}%
      {{else}}
        <a id="upload-image">Add an Image.</a>
      {{/if}}
    {{/pl-uploader}}

js

    uploadImage(file) {
      var image = this.store.createRecord('image', {
        filename: get(file, 'name'),
        filesize: get(file, 'size')
      });

      file.read().then(function (url) {
        if (get(image, 'url') == null) {
          set(image, 'url', url);
        }
      });

      file.upload('/api/images/upload').then(function (response) {
        set(image, 'url', response.headers.Location);
        return image.save();
      }, function () {
        image.rollback();
      });
    }

if there is any error from api side Uploading...{{queue.progress}}% in hbs is still shown. I want to reset the queue so that if there is an error the hbs view changes to else part (i.e) <a id="upload-image">Add an Image.</a>

rinoldsimon commented 6 years ago

can be achieved using file.destroy() ?

     file.upload('/api/images/upload').then(function (response) {
        set(image, 'url', response.headers.Location);
        return image.save();
      }, function () {
        file.destroy()
        image.rollback();
      });