"use strict"; /** * Created by dmytro.novosad on 7/23/2015. */ /** * Created by dmytro.novosad on 7/22/2015. */ angular.module('resourceModule') .directive('rsKaTickets', ['relationModel', 'events', function (relationModel, events) { return { require: '^rs', restrict: 'E', scope: {}, templateUrl: 'views/resource/rs-ka-tickets.html', link: function (scope, element, attrs, rsController) { angular.extend(scope, rsController); var context = scope.context, refresh = false, state = { itemLimit: 4, loadingRelatedTickets: false }; getRelatedTickets(); scope.$on(events.REFRESH_RESOURCE_FEED, function () { refresh = true; getRelatedTickets(); }); function getRelatedTickets() { state.loadingRelatedTickets = true; var promise; if (refresh) { promise = relationModel.refreshRelations(scope.context.id, scope.context.type); } else { promise = relationModel.getRelations(scope.context.id, scope.context.type); } promise.then(function () { if (relationModel.cache[scope.context.id]) { scope.relatedTickets = _.filter(relationModel.cache[scope.context.id], function (ticket) { return ticket.type !== EntityVO.TYPE_KNOWLEDGE; }); } }) .finally(function () { refresh = false; state.loadingRelatedTickets = false; }); } scope.context = context; scope.state = state; } }; }]);