Skip to content

Commit

Permalink
added approvedUses-field to frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
ewolf47 committed Nov 7, 2023
1 parent f49d987 commit a2437b7
Show file tree
Hide file tree
Showing 9 changed files with 132 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ angular.module('metadatamanagementApp').config([
'title': 'Titel',
'dataLanguages': 'Daten verfügbar auf',
'tags': 'Schlagwörter',
'approvedUses': 'Erlaubte Nutzungszwecke',
'additional-links': 'Weiterführende Links',
'attachments': {
'type': 'Typ',
Expand Down Expand Up @@ -298,6 +299,8 @@ angular.module('metadatamanagementApp').config([
'de': 'Geben Sie zusätzliche Anmerkungen zum Datenpaket auf Deutsch ein.',
'en': 'Geben Sie zusätzliche Anmerkungen zum Datenpaket auf Englisch ein.'
},
'approved-uses': 'Geben Sie, falls vorhanden, die erlaubten Nutzungszwecke ein.'
,
'description': {
'de': 'Geben Sie eine Beschreibung des Datenpakets auf Deutsch ein.',
'en': 'Geben Sie eine Beschreibung des Datenpakets auf Englisch ein.'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ angular.module('metadatamanagementApp').config([
'title': 'Title',
'dataLanguages': 'Data available in',
'tags': 'Tags',
'approvedUses': 'Approved purposes of use',
'additional-links': 'Additional Links',
'attachments': {
'type': 'Type',
Expand Down Expand Up @@ -296,6 +297,8 @@ angular.module('metadatamanagementApp').config([
'de': 'Enter additional annotations for this data package in German.',
'en': 'Enter additional annotations for this data package in English.'
},
'approved-uses': 'If available enter the approved uses for this data package.'
,
'description': {
'de': 'Enter a description of this data package in German.',
'en': 'Enter a description of this data package in English.'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,77 @@ angular.module('metadatamanagementApp').factory('DataPackageSearchService', ['$q
});
};

var findApprovedUses = function(searchText, filter,
ignoreAuthorization) {
console.log("fooo");
ignoreAuthorization = ignoreAuthorization || false;
var query = createQueryObject();
var termFilters = createTermFilters(filter);
query.size = 0;
query.body = {
'aggs': {
'approvedUses': {
"terms": {
"field": "approvedUses"
},
'aggs': {
'filtered': {
'filter': {
'bool': {
'must': [{
'match': {}
}]
}
}
}
}
}
}
};

query.body.query = {
'bool': {
'filter': {
'term': {
'shadow': false
}
}
}
};

console.log("bar");
query.body.aggs.approvedUses.aggs.filtered.filter.bool.must[0].match
['approvedUses'] = {
'query': searchText || '',
'operator': 'AND',
'minimum_should_match': '100%',
'zero_terms_query': 'ALL'
};

if (termFilters) {
query.body.query.bool.filter = termFilters;
}

if (!ignoreAuthorization) {
SearchHelperService.addFilter(query);
}

return ElasticSearchClient.search(query).then(function(result) {
var approvedUses = [];
var approvedUsesElement = {};
result.aggregations.approvedUses.buckets.forEach(
function(bucket) {
// approvedUsesElement = {
// 'name': bucket.key
// };
approvedUsesElement = bucket.key;
// approvedUsesElement.count = bucket.doc_count;
approvedUses.push(approvedUsesElement);
});
return approvedUses;
});
};

var findInstitutions = function(searchText, filter, language,
ignoreAuthorization, excludedInstitutions) {
ignoreAuthorization = ignoreAuthorization || false;
Expand Down Expand Up @@ -644,6 +715,7 @@ angular.module('metadatamanagementApp').factory('DataPackageSearchService', ['$q
findDataPackageById: findDataPackageById,
findStudySeries: findStudySeries,
findSponsors: findSponsors,
findApprovedUses: findApprovedUses,
findInstitutions: findInstitutions,
findDataPackageTitles: findDataPackageTitles,
findInstitutionFilterOptions: findInstitutionFilterOptions,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,13 @@
</li>
</ul>
</md-list-item>
<md-list-item ng-if="$ctrl.options.dataPackage.approvedUses && $ctrl.options.dataPackage.approvedUses.length > 0">
<h5>{{'data-package-management.detail.label.approvedUses' | translate }}:</h5>
<p
class="md-secondary"
markdown-to-html="$ctrl.options.dataPackage.approvedUses"
></p>
</md-list-item>
</md-list>
</md-card-content>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@ angular.module('metadatamanagementApp')
} else {
CurrentProjectService.setCurrentProject(project);
ctrl.dataPackage = dataPackage;
ctrl.currentApprovedUses = dataPackage.approvedUses;
ctrl.currentStudySeries = dataPackage.studySeries;
ctrl.currentSponsors = angular.copy(
ctrl.dataPackage.sponsors);
Expand Down Expand Up @@ -645,6 +646,16 @@ angular.module('metadatamanagementApp')
});
};

$scope.searchApprovedUses = function(searchText) {
//Search Call to Elasticsearch
console.log('CURRENTSPONSORS: ' + JSON.stringify(ctrl.currentSponsors));
return DataPackageSearchService.findApprovedUses(searchText, {},
true)
.then(function(approvedUses) {
return approvedUses;
});
};

$scope.searchSponsors = function(searchText, language) {
//Search Call to Elasticsearch
console.log('CURRENTSPONSORS: ' + JSON.stringify(ctrl.currentSponsors));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,32 @@
</md-input-container>
<div flex="50"></div>
</div>
<div layout="column" layout-gt-sm="row">
<md-autocomplete flex="50" md-clear-button="true" md-delay="250"
md-floating-label="{{'data-package-management.detail.label.approvedUses' | translate}}"
md-input-maxlength="512"
md-input-name="approvedUses"
md-is-error="!dataPackageForm.approvedUses.$valid && (dataPackageForm.approvedUses.$dirty dataPackageForm.approvedUses.$touched) "
md-item-text="item"
md-items="item in searchApprovedUses(ctrl.dataPackage.approvedUses)"
md-match-case-insensitive="true" md-min-length="0"
md-no-cache="true" md-require-match="false"
md-search-text="ctrl.dataPackage.approvedUses"
md-select-on-match="true" md-selected-item="ctrl.currentApprovedUses" ng-pattern="/^[^,]*$/"
class="ms-flex">
<md-item-template>
<span class="md-title" md-highlight-flags="ig" md-highlight-text="ctrl.dataPackage.approvedUses"
style="font-size: 14px;">{{item}}</span>
</md-item-template>
<md-not-found>
{{'search-management.filter.approved-uses-filter.not-found' | translate}}
</md-not-found>
<div class="fdz-input-hint" ng-if="ctrl.dataPackage.approvedUses == null || ctrl.dataPackage.approvedUses == ''">
{{'data-package-management.edit.hints.approved-uses' | translate}}
</div>
</md-autocomplete>
<div flex="50"></div>
</div>
<div layout="column" layout-gt-sm="row">
<md-input-container flex="50"
md-is-error="!dataPackageForm.annotationsDe.$valid && (dataPackageForm.annotationsDe.$dirty || dataPackageForm.annotationsDe.$touched)"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,8 @@
dataPackage: {
id: $ctrl.dataPackage.id,
surveyDataTypes: $ctrl.dataPackage.surveyDataTypes,
title: $ctrl.dataPackage.title
title: $ctrl.dataPackage.title,
approvedUses: $ctrl.dataPackage.approvedUses
}
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,10 @@ angular.module('metadatamanagementApp').config([
'not-found': 'Keine vorhandene Studienreihe gefunden!',
'no-valid-selected': 'Keine gültige Studienreihe ausgewählt!'
},
'approved-uses-filter': {
'not-found': 'Keine erlaubten Nutzungszwecke gefunden!',
'no-valid-selected': 'Keinen gültigen erlaubten Nuzungszweck ausgewählt!'
},
'sponsor-filter': {
'not-found': 'Kein vorhandener Sponsor gefunden!',
'no-valid-selected': 'Kein gültiger Sponsor ausgewählt!'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,10 @@ angular.module('metadatamanagementApp').config([
'not-found': 'No existing study series found!',
'no-valid-selected': 'No valid study series selected!'
},
'approved-uses-filter': {
'not-found': 'No approved uses found!',
'no-valid-selected': 'No valid approved use selected!'
},
'sponsor-filter': {
'not-found': 'No existing sponsor found!',
'no-valid-selected': 'No valid sponsor selected!'
Expand Down

0 comments on commit a2437b7

Please sign in to comment.