Skip to content

Commit

Permalink
feat(citSci): removed routing from dataset progress
Browse files Browse the repository at this point in the history
  • Loading branch information
peichins committed Aug 6, 2018
1 parent a8a4723 commit 8b4fc08
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 62 deletions.
52 changes: 18 additions & 34 deletions src/app/citizenScience/datasetProgress/datasetProgress.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,48 +9,32 @@
angular.module("bawApp.components.progress", ["bawApp.citizenScience.csSamples"])
.component("datasetProgress", {
templateUrl: "citizenScience/datasetProgress/datasetProgress.tpl.html",
controller: ["$scope", "$routeParams", "$url", "conf.paths", "CsSamples", "SampleLabels",
function ($scope, $routeParams, $url, paths, CsSamples, SampleLabels) {

var self = this;

$scope.selectSampleById = function (itemId) {
console.log("selecting item", itemId);
CsSamples.selectById(itemId).then(x => {
console.log("selected sample ", x);
SampleLabels.registerCurrentSampleId(CsSamples.currentSample);
});
};

/**
* Load the new sample whenever the route params change.
*/
$scope.$watch(
function () {
return $routeParams.sampleNum;
}, function (newVal, oldVal) {
if ($routeParams.sampleNum) {
$scope.selectSampleById($routeParams.sampleNum);
}
});


$scope.nextItem = function () {
console.log("next item");
CsSamples.nextItem();
SampleLabels.registerCurrentSampleId(CsSamples.currentItem());
};
controller: ["$scope", "$routeParams", "CsSamples", "SampleLabels",
function ($scope, $routeParams, CsSamples, SampleLabels) {

if ($routeParams.sampleNum) {
CsSamples.selectById($routeParams.sampleNum);
$scope.nextItem = false;
} else {
CsSamples.init();
$scope.nextItem = function () {
console.log("next item");
CsSamples.nextItem();
};
}

$scope.$watch(() => CsSamples.currentItem(), (newVal, oldVal) => {
SampleLabels.registerCurrentSampleId(CsSamples.currentItem().id);
});

/**
*
* @return {*}
* @return boolean
*/
$scope.nextDisabled = function () {
return !CsSamples.nextItemAvailable();
};

self.progressNav = true;

}],
bindings: {
}
Expand Down
27 changes: 11 additions & 16 deletions src/app/citizenScience/datasetProgress/datasetProgress.tpl.html
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@

<!--
<div class="progressCell progressItem"
ng-if="showProgressItems"
ng-repeat="(key, item) in $ctrl.items"
ng-class="{done : item.done, cur : $ctrl.selected === key}"
ng-click="selectItem(key)">
{{ key + 1 }}
</div>
<div class="progressCell progress-counter">{{ totalSamplesViewed }}</div>
-->
<div class="btn-group">
<button class="btn btn-default"
ng-disabled="nextDisabled()"
ng-click="nextItem()"
title="Next Clip">
<button ng-if="nextItem"
class="btn btn-default"
ng-disabled="nextDisabled()"
ng-click="nextItem()"
title="Next Clip">
<span class="glyphicon glyphicon-step-forward"></span>
</button>
<a ng-if="!nextItem"
href="/citsci/bristlebird/listen/"
class="btn btn-default"
title="Next Clip">
<span class="glyphicon glyphicon-step-forward"></span>
</a>
</div>


Expand Down
22 changes: 11 additions & 11 deletions src/app/citizenScience/dummyApi/citizenScienceSamples.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ csSamples.factory("CsSamples", [
// todo: integrate with settings for cs project
self.datasetId = 3;

self.resetIndex = function () {
self.resetlist = function () {
self.currentIndex = { page: -1, item: -1};
self.pages = [];
};
self.resetIndex();
self.resetlist();

/**
* Returns the number of items in the current page, or 0 if the indexes
Expand Down Expand Up @@ -151,27 +151,28 @@ csSamples.factory("CsSamples", [

};

self.requestPageOfItems(true);


self.publicFunctions = {

/**
* make a request for a specific dataset item. When the response comes,
* empty the list and set it to to the first item, then request a page to append
* make that item the current item, empty the list, then request a page to append
* @param datasetItemId
* @return Promise
* @return Promise that returns the dataset item
*/
selectById : function (datasetItemId) {
return DatasetItem.datasetItem(self.datasetId, datasetItemId).then(x => {
// todo: need something to stop this being called twice before response comes
self.resetIndex();
self.currentItem = self.items[x.data.data];
self.resetlist();
self.currentItem = x.data.data[0];
self.requestPageOfItems(false);
return x.data.data;
return x.data.data[0];
});
},

init : function () {
self.requestPageOfItems(true);
},

/**
* Increments the currentItemIndex and requests a new page if we are at the end of the current page
* If called while the currentItemIndex is the last item, this does function does nothing
Expand All @@ -193,7 +194,6 @@ csSamples.factory("CsSamples", [
nextItemAvailable : function () {
var nextIndex = self.nextItemIndexes();
return Boolean(nextIndex);

},

/**
Expand Down
2 changes: 1 addition & 1 deletion src/components/services/datasetItem.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ angular
};

resource.datasetItem = function getDatasetItem(datasetId, datasetItemId) {
var url = $url.formatUri(paths.api.routes.datasetItem.show, {datasetId: datasetId, datasetItemId: datasetItemId});
var url = $url.formatUri(paths.api.routes.datasetItem.showAbsolute, {datasetId: datasetId, datasetItemId: datasetItemId});
return $http.get(url).then(x => DatasetItemModel.makeFromApi(x));
};

Expand Down

0 comments on commit 8b4fc08

Please sign in to comment.