superdesk/superdesk-client-core

View on GitHub
scripts/apps/highlights/directives/PackageHighlightsDropdown.ts

Summary

Maintainability
A
35 mins
Test Coverage
PackageHighlightsDropdown.$inject = ['desks', 'highlightsService', '$location', '$route', 'lodash'];
export function PackageHighlightsDropdown(desks, highlightsService, $location, $route, _) {
    return {
        scope: true,
        templateUrl: 'scripts/apps/highlights/views/package_highlights_dropdown_directive.html',
        link: function(scope) {
            scope.$watch(() => desks.active, (active) => {
                scope.selected = active;

                // If the user has no desks assigned - this user should not view ANY highlights (including global)
                if (!_.isEmpty(desks.userDesks)) {
                    highlightsService.get(desks.getCurrentDeskId()).then((result) => {
                        scope.highlights = _.sortBy(result._items, (i) => i.name.toLowerCase());
                        scope.hasHighlights = _.size(scope.highlights) > 0;
                    });
                }
            });

            scope.listHighlight = function(highlight) {
                $location.url('workspace/highlights?highlight=' + highlight._id);
                $route.reload();
            };
        },
    };
}