Skip to content
This repository has been archived by the owner on Aug 4, 2019. It is now read-only.

Commit

Permalink
Merge pull request #137 from SlateFoundation/develop
Browse files Browse the repository at this point in the history
Release: slate-admin v2.2.0
  • Loading branch information
themightychris authored Jun 5, 2017
2 parents 8b44a64 + 6b21b2a commit 8c11cdb
Show file tree
Hide file tree
Showing 29 changed files with 387 additions and 1,578 deletions.
31 changes: 18 additions & 13 deletions sencha-workspace/SlateAdmin/app/API.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Ext.define('SlateAdmin.API', {
extend: 'Emergence.util.AbstractAPI',
singleton: true,


// example function
getMySections: function(callback, scope) {
this.request({
Expand All @@ -15,15 +16,20 @@ Ext.define('SlateAdmin.API', {
scope: scope
});
},

downloadFile: function(url, callback, scope, options) {
options = options || {};

// create and append downloadToken
var apiHost = SlateAdmin.API.getHost(),
var apiHost = this.getHost(),
downloadToken = Math.random(),
pollingInterval = options.pollingInterval || 100,
callbackArgs = [url, options],
downloadInterval;

url = this.buildUrl(Ext.urlAppend(url, 'downloadToken=' + downloadToken));
if (!apiHost) {
Ext.urlAppend(url, 'downloadToken=' + downloadToken);
}
url = this.buildUrl(url);

// get or create iframe el
this.downloadFrame = this.downloadFrame || Ext.getBody().createChild({
Expand All @@ -33,25 +39,24 @@ Ext.define('SlateAdmin.API', {
}
});

if(apiHost) {
if (apiHost) {
// skip token if using remote api host, cookie won't be readable
Ext.defer(callback, pollingInterval, scope, callbackArgs);
} else {
// setup token monitor
downloadInterval = setInterval(function() {
if(Ext.util.Cookies.get('downloadToken') == downloadToken)
{
if (Ext.util.Cookies.get('downloadToken') == downloadToken) {
clearInterval(downloadInterval);
Ext.util.Cookies.clear('downloadToken');
Ext.callback(callback, scope, [url, options]);
Ext.callback(callback, scope, callbackArgs);
}
}, options.pollingInterval || 500);
}, pollingInterval);
}

// launch download
if(options.openWindow)
{
if (options.openWindow) {
window.open(url);
}
else
{
} else {
// use iframe for loading, setting window.location cancels current network ops
this.downloadFrame.dom.src = url;
}
Expand Down
Loading

0 comments on commit 8c11cdb

Please sign in to comment.