diff --git a/app/config.js.j2 b/app/config.js.j2 index c1a5dd2a78..962519e3fa 100644 --- a/app/config.js.j2 +++ b/app/config.js.j2 @@ -18,5 +18,8 @@ window.ushahidi = { intercomAppId: '{{ INTERCOM_APPID }}', appStoreId: '{{ APP_STORE_ID }}', ravenUrl: '{{ RAVEN_URL }}', - tosReleaseDate: '{{ TOS_RELEASE_DATE }}' + tosReleaseDate: '{{ TOS_RELEASE_DATE }}', +{% if ENABLED_SOURCES %}} + sources: {{ ENABLED_SOURCES.split(',') | map('trim') | list }}, +{% endif %} } diff --git a/legacy/app/app.js b/legacy/app/app.js index 265b5879f9..2675319036 100644 --- a/legacy/app/app.js +++ b/legacy/app/app.js @@ -119,7 +119,8 @@ angular ? new Date(window.ushahidi.tosReleaseDate) : false, // Date in UTC EXPORT_POLLING_INTERVAL: - window.ushahidi.export_polling_interval || 30000 + window.ushahidi.export_polling_interval || 30000, + ENABLED_SOURCES: window.ushahidi.sources || ['sms', 'twitter', 'web', 'email'] }) .config([ '$compileProvider', diff --git a/legacy/app/common/services/post-filters.service.js b/legacy/app/common/services/post-filters.service.js index 410e51f5e0..9aaa9b7afa 100644 --- a/legacy/app/common/services/post-filters.service.js +++ b/legacy/app/common/services/post-filters.service.js @@ -1,7 +1,7 @@ module.exports = PostFiltersService; -PostFiltersService.$inject = ['_', 'FormEndpoint', 'TagEndpoint', '$q', '$rootScope']; -function PostFiltersService(_, FormEndpoint, TagEndpoint, $q, $rootScope) { +PostFiltersService.$inject = ['_', 'FormEndpoint', 'TagEndpoint', '$q', '$rootScope', 'CONST']; +function PostFiltersService(_, FormEndpoint, TagEndpoint, $q, $rootScope, CONST) { // Create initial filter state var filterState = window.filterState = getDefaults(); var forms = []; @@ -210,7 +210,7 @@ function PostFiltersService(_, FormEndpoint, TagEndpoint, $q, $rootScope) { form: _.pluck(forms, 'id'), set: [], user: false, - source: ['sms', 'twitter','web', 'email'] + source: CONST.ENABLED_SOURCES }; } diff --git a/legacy/app/map/mode-context/mode-context-form-filter.directive.js b/legacy/app/map/mode-context/mode-context-form-filter.directive.js index f31638120f..d8c47e85b9 100644 --- a/legacy/app/map/mode-context/mode-context-form-filter.directive.js +++ b/legacy/app/map/mode-context/mode-context-form-filter.directive.js @@ -9,8 +9,8 @@ function ModeContextFormFilterDirective() { template: require('./mode-context-form-filter.html') }; } -ModeContextFormFilter.$inject = ['$scope', 'PostEndpoint', '$q', '_', '$rootScope', 'PostSurveyService', 'PostFilters', '$location', 'SurveysSdk','TranslationService']; -function ModeContextFormFilter($scope, PostEndpoint, $q, _, $rootScope, PostSurveyService, PostFilters, $location, SurveysSdk, TranslationService) { +ModeContextFormFilter.$inject = ['$scope', 'PostEndpoint', '$q', '_', '$rootScope', 'PostSurveyService', 'PostFilters', '$location', 'SurveysSdk','TranslationService', 'CONST']; +function ModeContextFormFilter($scope, PostEndpoint, $q, _, $rootScope, PostSurveyService, PostFilters, $location, SurveysSdk, TranslationService, CONST) { $scope.forms = []; $scope.showOnly = showOnly; $scope.hide = hide; @@ -124,9 +124,9 @@ function ModeContextFormFilter($scope, PostEndpoint, $q, _, $rootScope, PostSurv function getSourceStats(stats) { var sourceStats = []; - var providers = ['email', 'sms', 'twitter', 'web']; + // calculating stats for each datasource, based on the current form-filter - _.each(providers, function (provider) { + _.each(CONST.ENABLED_SOURCES, function (provider) { var posts = _.filter(stats.totals[0].values, function (value) { // including posts without a form in the stats var id = value.id === null ? 'none' : value.id; diff --git a/legacy/app/map/post-toolbar/filters/filter-source.directive.js b/legacy/app/map/post-toolbar/filters/filter-source.directive.js index ba04a6919f..764d8cc4af 100644 --- a/legacy/app/map/post-toolbar/filters/filter-source.directive.js +++ b/legacy/app/map/post-toolbar/filters/filter-source.directive.js @@ -1,7 +1,7 @@ module.exports = SourceSelectDirective; -SourceSelectDirective.$inject = ['$rootScope']; -function SourceSelectDirective($rootScope) { +SourceSelectDirective.$inject = ['$rootScope', 'CONST']; +function SourceSelectDirective($rootScope, CONST) { return { restrict: 'E', replace: true, @@ -12,6 +12,9 @@ function SourceSelectDirective($rootScope) { }; function SourceSelectLink(scope, element, attrs, ngModel) { + scope.isAmongEnabledSources = function (source) { + return CONST.ENABLED_SOURCES.some(e_source => e_source === source); + }; scope.selectedSources = []; scope.hasPermission = $rootScope.hasPermission; diff --git a/legacy/app/map/post-toolbar/filters/filter-source.html b/legacy/app/map/post-toolbar/filters/filter-source.html index 2f1b63f072..9d4e6059aa 100644 --- a/legacy/app/map/post-toolbar/filters/filter-source.html +++ b/legacy/app/map/post-toolbar/filters/filter-source.html @@ -1,30 +1,42 @@