From 8b4fc082376b18a7818567dfd999c9fb58eb9b44 Mon Sep 17 00:00:00 2001 From: Philip Eichinski Date: Mon, 6 Aug 2018 13:55:56 +1000 Subject: [PATCH] feat(citSci): removed routing from dataset progress --- .../datasetProgress/datasetProgress.js | 52 +++++++------------ .../datasetProgress/datasetProgress.tpl.html | 27 ++++------ .../dummyApi/citizenScienceSamples.js | 22 ++++---- src/components/services/datasetItem.js | 2 +- 4 files changed, 41 insertions(+), 62 deletions(-) diff --git a/src/app/citizenScience/datasetProgress/datasetProgress.js b/src/app/citizenScience/datasetProgress/datasetProgress.js index 8ddd5363..674f4983 100644 --- a/src/app/citizenScience/datasetProgress/datasetProgress.js +++ b/src/app/citizenScience/datasetProgress/datasetProgress.js @@ -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: { } diff --git a/src/app/citizenScience/datasetProgress/datasetProgress.tpl.html b/src/app/citizenScience/datasetProgress/datasetProgress.tpl.html index 62b5058c..5abbfe24 100644 --- a/src/app/citizenScience/datasetProgress/datasetProgress.tpl.html +++ b/src/app/citizenScience/datasetProgress/datasetProgress.tpl.html @@ -1,23 +1,18 @@ -
- + + +
diff --git a/src/app/citizenScience/dummyApi/citizenScienceSamples.js b/src/app/citizenScience/dummyApi/citizenScienceSamples.js index ef18624a..ff4e1d1d 100644 --- a/src/app/citizenScience/dummyApi/citizenScienceSamples.js +++ b/src/app/citizenScience/dummyApi/citizenScienceSamples.js @@ -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 @@ -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 @@ -193,7 +194,6 @@ csSamples.factory("CsSamples", [ nextItemAvailable : function () { var nextIndex = self.nextItemIndexes(); return Boolean(nextIndex); - }, /** diff --git a/src/components/services/datasetItem.js b/src/components/services/datasetItem.js index bfc04880..4bc3d2db 100644 --- a/src/components/services/datasetItem.js +++ b/src/components/services/datasetItem.js @@ -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)); };