RESAAS progress indicator
by John Allan
HTML
<script src="http://www.resaas.com/assets/common/js/vendor/pubsub/pubsub.js?v=1-8"></script>
JavaScript
(function () {
var tracker;
tracker = {};
function handleProgress (event, data) {
if (tracker[data.guid]) {
console.log(data.guid, data.data.loaded, '/', data.data.total, '|', data.data.files[0].name );
}
}
function unbind (event, data) {
if (tracker[data.guid]) {
console.log('remove', data.guid, 'from', tracker[data.guid].selector);
console.log('delete', 'tracker[' + data.guid + ']');
}
}
function bind (event, data) {
tracker[data.guid] = data;
console.log(data.guid, data.selector, data.action, data.template);
}
PubSub.subscribe('uiWantsToTrackFileUploadProgress', bind);
PubSub.subscribe('uiWantsToHideFileUploadProgress', unbind);
PubSub.subscribe('dataProgress', handleProgress);
}());
PubSub.publish('uiWantsToTrackFileUploadProgress', {
guid: '000',
selector: '.selector',
action: 'append',
template: 'progress: '
});
PubSub.publish('uiWantsToTrackFileUploadProgress', {
guid: '111',
selector: '.findit',
action: 'prepend',
template: 'progress: '
});
PubSub.publish('dataProgress', {
'guid': '000',
'data': {
'total': 1000,
'loaded': 700,
'files': [{
'name': 'image.jpg'
}]
}
});
PubSub.publish('dataProgress', {
'guid': '111',
'data': {
'total': 1000,
'loaded': 300,
'files': [{
'name': 'photo.jpg'
}]
}
});
PubSub.publish('dataProgress', {
'guid': '000',
'data': {
'total': 1000,
'loaded': 800,
'files': [{
'name': 'image.jpg'
}]
}
});
PubSub.publish('uiWantsToHideFileUploadProgress', {
guid: '000'
});