Skip to content

Commit b784777

Browse files
authored
Merge pull request #2041 from TAMULib/sprint-9-2032
Issue #2032: Consolidate file upload get pattern and always return .pdf for `_doctype_primary`
2 parents acfdddd + 07a46b3 commit b784777

File tree

5 files changed

+32
-24
lines changed

5 files changed

+32
-24
lines changed

src/main/webapp/app/controllers/submission/adminSubmissionViewController.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -382,30 +382,22 @@ vireo.controller("AdminSubmissionViewController", function ($anchorScroll, $cont
382382
};
383383

384384
$scope.getPattern = function (doctype) {
385-
var pattern = "*";
386385
var fieldPredicate;
387-
var i;
388386

389-
for(i in $scope.fieldPredicates) {
390-
if($scope.fieldPredicates[i].value === doctype) {
387+
for (var i in $scope.fieldPredicates) {
388+
if ($scope.fieldPredicates[i].value === doctype) {
391389
fieldPredicate = $scope.fieldPredicates[i];
392390
break;
393391
}
394392
}
395393

396394
if (fieldPredicate !== undefined) {
397395
var fieldProfile = $scope.submission.getFieldProfileByPredicate(fieldPredicate);
398-
if (angular.isDefined(fieldProfile.controlledVocabulary)) {
399-
var cv = fieldProfile.controlledVocabulary;
400-
pattern = "";
401-
for (i in cv.dictionary) {
402-
var word = cv.dictionary[i];
403-
pattern += pattern.length > 0 ? (",." + word.name) : ("." + word.name);
404-
}
405-
}
396+
397+
return FileUploadService.getPattern(fieldProfile);
406398
}
407399

408-
return pattern;
400+
return '*';
409401
};
410402

411403
$scope.queueUpload = function (files) {

src/main/webapp/app/directives/fieldProfileDirective.js

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -153,16 +153,7 @@ vireo.directive("field", function ($controller, $filter, $q, $timeout, Controlle
153153
};
154154

155155
$scope.getPattern = function () {
156-
var pattern = "*";
157-
if(angular.isDefined($scope.profile.controlledVocabulary)) {
158-
var cv = $scope.profile.controlledVocabulary;
159-
pattern = "";
160-
for (var i in cv.dictionary) {
161-
var word = cv.dictionary[i];
162-
pattern += pattern.length > 0 ? (",." + word.name) : ("." + word.name);
163-
}
164-
}
165-
return pattern;
156+
return FileUploadService.getPattern($scope.profile);
166157
};
167158

168159
$scope.queueUpload = function (files) {

src/main/webapp/app/services/fileUploadService.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@ vireo.service("FileUploadService", function ($q, FieldValue, FileService) {
22

33
var FileUploadService = this;
44

5+
FileUploadService.getPattern = function (fieldProfile) {
6+
var pattern = '*';
7+
8+
if (fieldProfile?.fieldPredicate?.value === '_doctype_primary') {
9+
return '.pdf'
10+
}
11+
12+
if (angular.isDefined(fieldProfile?.controlledVocabulary)) {
13+
var cv = fieldProfile?.controlledVocabulary;
14+
pattern = '';
15+
for (var i in cv.dictionary) {
16+
var word = cv.dictionary[i];
17+
pattern += pattern.length > 0 ? (",." + word.name) : ("." + word.name);
18+
}
19+
}
20+
21+
return pattern;
22+
};
23+
524
FileUploadService.uploadFile = function (submission, fieldValue) {
625
return FileService.upload({
726
'endpoint': '',

src/main/webapp/tests/mocks/services/mockFileUploadService.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
angular.module("mock.fileUploadService", []).service("FileUploadService", function($q) {
22
var service = mockService($q);
33

4+
service.getPattern = function (fieldProfile) {
5+
return '*';
6+
}
7+
48
service.archiveFile = function (submission, fieldValue, removeFieldValue) {
59
var payload = {};
610
return payloadPromise($q.defer(), payload);

src/main/webapp/tests/unit/controllers/submission/adminSubmissionViewControllerTest.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,10 +654,12 @@ describe("controller: AdminSubmissionViewController", function () {
654654
scope.submission.mockWorkflowSteps.aggregateFieldProfiles[0].mock(dataFieldProfile2);
655655
scope.submission.mockWorkflowSteps.aggregateFieldProfiles[0].fieldPredicate = scope.fieldPredicates[1];
656656

657-
response = scope.getPattern("text/plain");
657+
spyOn(FileUploadService, "getPattern").and.returnValue(".pdf");
658+
response = scope.getPattern("_doctype_primary");
658659
expect(response).toBeDefined();
659660
expect(response).not.toEqual("*");
660661

662+
FileUploadService.getPattern.and.returnValue(".pdf");
661663
response = scope.getPattern("does not exist");
662664
expect(response).toEqual("*");
663665
});

0 commit comments

Comments
 (0)