function metadataViewCtrl()

in web/META-INF/resources/js/controllers.js [79:166]


    function metadataViewCtrl($rootScope, $scope, $location, $routeParams, MetaData, PagerService, SearchOptions) {

        $scope.searchComplete = false;

        var vm = this;
        vm.PDItems = [];
        vm.pager = {};
        vm.setPage = setPage;
        vm.rankData = rankData;
        vm.totalMatches = 0;
        vm.rankopt = $routeParams.rankopt ? $routeParams.rankopt : 'Rank-SVM';

        var word = String();
        var opt = String();
        var rankopt = vm.rankopt;

        if (!$routeParams.query) {
            if(!$rootScope.searchOptions){
                $location.path('/').search({});
            }
            word = $rootScope.searchOptions.query;
            opt = $rootScope.searchOptions.opt;
            SearchOptions.setSearchOptions({'query': word, 'opt': opt});
        } else {
            word = $routeParams.query;
            if($routeParams.opt){
                opt = $routeParams.opt;
            }else if ($rootScope.searchOptions && $rootScope.searchOptions.opt){
                opt = $rootScope.searchOptions.opt;
                upsertQueryParam('opt', opt);
            }else{
                opt = 'Or';
                upsertQueryParam('opt', opt);
            }

            word = word.replace(/,/g , " ");
            word = word.replace(/\//g , " ");

            SearchOptions.setSearchOptions({'query': word, 'opt': opt});
        }
        $rootScope.searchOptions = SearchOptions.getSearchOptions();
        searchMetadata();

        function initController() {
            vm.setPage(1);
        }

        function setPage(page) {
            if (page < 1 || page > vm.pager.totalPages) {
                return;
            }

            // get pager object from service
            vm.pager = PagerService.GetPager(vm.PDItems.length, page);

            // get current page of items
            vm.items = vm.PDItems.slice(vm.pager.startIndex, vm.pager.endIndex + 1);
        }

        function rankData(opt) {
            rankopt = opt;
            upsertQueryParam('rankopt', opt);
            searchMetadata();
        }

        function upsertQueryParam(paramName, paramValue){
            var qParams = $location.search();
            qParams[paramName] = paramValue;
            $location.search(qParams);
        }

        function searchMetadata() {
            MetaData.get({query: word, operator: opt, rankoption: rankopt},
                function success(response) {
                    vm.PDItems = response.PDResults;
                    vm.totalMatches = vm.PDItems.length;
                    vm.query = word;
                    vm.opt = opt;
                    initController();
                    $scope.searchComplete = true;
                },
                function error(errorResponse) {
                    $scope.searchComplete = true;
                    vm.searchError = {"status": errorResponse.status, "message": errorResponse.data};
                }
            );
        }
    }]);