53 lines
2.0 KiB
JavaScript
53 lines
2.0 KiB
JavaScript
"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;
|
|
}
|
|
};
|
|
}]);
|