Skip to content

Commit

Permalink
Add object to keep seperate preview items. (#1556)
Browse files Browse the repository at this point in the history
  • Loading branch information
jkmarx committed Dec 13, 2016
1 parent 968699a commit d13c76f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
13 changes: 8 additions & 5 deletions refinery/ui/source/js/dashboard/controllers/data-set-preview.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ function DataSetPreviewCtrl (
this.dashboardDataSetsReloadService = dashboardDataSetsReloadService;
this.permissionService = permissionService;
this.filesize = filesize;
this.importStatus = {};

this.maxBadges = this.settings.dashboard.preview.maxBadges;
this.infinity = Number.POSITIVE_INFINITY;
Expand Down Expand Up @@ -237,28 +238,30 @@ DataSetPreviewCtrl.prototype.getDataSetDetails = function (uuid) {
*/
DataSetPreviewCtrl.prototype.importDataSet = function () {
var self = this;
var dataSetUuid = this.dataSetDetails.uuid;

// Only allow the user to click on the button once per page load.
this.importDataSetStarted = true;

if (!this.isDataSetReImporting) {
if (!(this.importStatus.hasOwnProperty(dataSetUuid))) {
this.isDataSetReImporting = true;
self.importStatus[dataSetUuid] = { isDataSetReImporting: true };
this.dataSetTakeOwnershipService
.save({
data_set_uuid: this.dataSetDetails.uuid
data_set_uuid: dataSetUuid
})
.$promise
.then(function (data) {
self.isDataSetReImportSuccess = true;
self.importStatus[dataSetUuid] = { isDataSetReImportSuccess: true };
self.dashboardDataSetsReloadService.reload(true);
self.dashboardDataSetPreviewService.preview(data.new_data_set_uuid);
})
.catch(function (error) {
self.isDataSetReImportFail = true;
self.importStatus[this.dataSetDetails.uuid] = { isDataSetReImportFail: true };
self.$log.error(error);
})
.finally(function () {
self.isDataSetReImporting = false;
self.importStatus[dataSetUuid].isDataSetReImporting = false;
});
}
};
Expand Down
15 changes: 8 additions & 7 deletions refinery/ui/source/js/dashboard/directives/data-set-preview.html
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
title="Import this shared data set into your own space to run analyses"
ng-if="!preview.dataSetDetails.is_owner && preview.dataSetDetails.isa_archive && app.settings.djangoApp.userId != undefined"
ng-class="{
'disabled': preview.isDataSetReImporting,
'btn-success': preview.isDataSetReImportSuccess,
'btn-danger': preview.isDataSetReImportFail
'disabled': preview.importStatus[preview.dataSetUuid].isDataSetReImporting,
'btn-success': preview.importStatus[preview.dataSetUuid].isDataSetReImportSuccess,
'btn-danger': preview.importStatus[preview.dataSetUuid].isDataSetReImportFail
}"
ng-disabled="preview.importDataSetStarted"
ng-click="preview.importDataSet()"
Expand All @@ -41,18 +41,19 @@
refinery-tooltip-hide-when="preview.importDataSetStarted">
<div
class="refinery-spinner-bg"
ng-if="preview.isDataSetReImporting">
ng-if="preview.importStatus[preview.dataSetUuid].isDataSetReImporting">
<div class="refinery-spinner"></div>
</div>
<span ng-if="!preview.isDataSetReImportSuccess && !preview.isDataSetReImportFail">
<span ng-if="!preview.importStatus[preview.dataSetUuid].isDataSetReImportSuccess &&
!preview.importStatus[preview.dataSetUuid].isDataSetReImportFail">
<i class="fa fa-cloud-download" aria-hidden="true"></i>
Import into Own Space
</span>
<span ng-if="preview.isDataSetReImportSuccess">
<span ng-if="preview.importStatus[preview.dataSetUuid].isDataSetReImportSuccess">
<i class="fa fa-check" aria-hidden="true"></i>
Import successful!
</span>
<span ng-if="preview.isDataSetReImportFail">
<span ng-if="preview.importStatus[preview.dataSetUuid].isDataSetReImportFail">
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
Import failed!
</span>
Expand Down

0 comments on commit d13c76f

Please sign in to comment.