cloudcmd/modules/philip
2016-07-15 17:20:17 +03:00
..
example feature(directory) add ability to upload directories via drag n drop in Chrome 2015-07-16 08:24:11 -04:00
lib feature(bower) philip v1.3.0 2015-07-20 04:09:32 -04:00
.bower.json feature(bower) smalltalk v2.0.0 2016-07-15 17:20:17 +03:00
bower.json feature(modules) philip v1.3.4 2016-07-14 20:41:25 +03:00
ChangeLog feature(modules) philip v1.3.4 2016-07-14 20:41:25 +03:00
LICENSE feature(directory) add ability to upload directories via drag n drop in Chrome 2015-07-16 08:24:11 -04:00
package.json feature(modules) philip v1.3.4 2016-07-14 20:41:25 +03:00
README.md feature(bower) philip v1.3.0 2015-07-20 04:09:32 -04:00

Philip

Dom File System processing library

Install

bower i philip --save

How to use?

Add philip.js findit, execon(or [async](https://github.com/caolan/async "Async utilities for node and the browser" with window.exec = window.async) and emitify.

Or any other node-compitable EventEmitter (set window.Emitify = your_emitter before using findit).

<script src="modules/emitify/lib/emitify.js"></script>
<script src="modules/findit/lib/findit.js"></script>
<script src="lib/philip.js"></script>
(function() {
    'use strict';
    
    var node = window;
    
    node.addEventListener('drop', function (e) {
        var upload,
            entry,
            finder,
            item = e.dataTransfer.items[0];
        
        e.preventDefault();
        
        entry   = item.webkitGetAsEntry();
        
        upload = philip(entry, function(type, name, data/*, i, n,*/, callback) {
            var error = null;
            
            switch(type) {
            case 'file':
                console.log('file', name, data);
                break;
            
            case 'directory':
                console.log('directory', name);
                break;
            }
            
            callback(error);
        });
        
        upload.on('error', function(error) {
            upload.abort();
            console.error(error);
        });
        
        upload.on('progress', function(count) {
            console.log(count);
        });
        
        upload.on('end', function() {
            console.log('done');
        });
    });
        
    node.addEventListener('dragover', function (e) {
        e.preventDefault();
    });
})();

License

MIT