Wrapper directive of: platanus angular-upload, angular-progress and angular-doc-preview
Branch: master
Clone or download
Latest commit 594359d Feb 1, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist Bumps version 2.1.0 Feb 1, 2018
sass fix(): add .scss ext to avoid ambiguity including style files Feb 1, 2018
src feat(): allow to change button label Feb 1, 2018
.gitignore Initial commit Jul 31, 2015
.jshintrc feat(): add doc preview directive Aug 1, 2015
CHANGELOG.md Bumps version 2.1.0 Feb 1, 2018
package.json Bumps version 2.1.0 Feb 1, 2018


Angular Pallet Bundle

This library is a directive that wraps the following:

This directive is not intended to be a replacement for Ng-File-Upload. Rather, it uses its potential and prevents you to deal with annoying details like:

The visual representation of the upload progress.

The visual representation of errors in the upload process.

The file preview. Not only images, files of any kind.

The visual representation of the multiple files to upload.

As "the icing on the cake", it handles the upload process asynchronously using the angular-pallet directive.


bower install ng-file-upload --save
bower install https://github.com/platanus/angular-pallet-bundle --save

Include the JS files in your project and the library as an Angular Dependency

angular.module('yourapp', ['platanus.palletBundle']);

The library comes with a proposed stylesheet under /dist/angular-pallet-bundle.css. You can use it or create your own.


To make it simple, I'm going to show you a use case example... Suppose you have a User model. This model has two attributes: avatar (user photo) and file (a document or spreadsheet). So, from your application, you want to let the user:

  1. Upload the avatar. See a preview (a thumbnail maybe), be sure the upload was successful.
  2. Upload the file. See a preview (a link), be sure the upload was successful.
  3. Submit the form and link all the user data on the server.
<form method="post" action="/users">

    no-document-text="No avatar..."

    no-document-text="No file..."

  <input type="hidden" ng-value="user.avatarIdentifier" name="user[avatar_identifier]" />
  <input type="hidden" ng-value="user.fileIdentifier" name="user[file_identifier]" />

  <input type="submit" value="Send" />


In order to make this directive work, the POST /uploads response must be a json with the following format:

  "upload": {
    "identifier": "RmQwYe5j",
    "file_extension": "png",
    "file_name": "pikachu",
    "download_url": "http://server.platan.us/uploads/RmQwYe5j/download"

Paperclip Upload solves the server side for you.

Directive Options:

  • ng-model: to keep the identifier(s) of the uploaded file. If multiple attribute is "true", the model will have a value like this: ["EJ6pOl5Y", "ZN5BaK3j"] otherwise "EJ6pOl5Y".
  • upload-url: must contain the url to perform the POST to save files.
  • no-document-text: custom message to show when the url is empty. By default, will show nothing.
  • render-image-as: this option is only for images. You can choose, to show images: as link or thumb. If this attribute is not present will show thumbnail and link.
  • progress-type: with "bar" value, will show a progress bar. With indicator value will show a progress badge with this format {progress}% (for example 35%). Default is indicator.
  • multiple: if present, multiple upload functionality will be enabled.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request


Thank you contributors!


angular-pallet-bundle is maintained by platanus.


angular-pallet-bundle is © 2015 platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.