98 lines
4.6 KiB
JavaScript
98 lines
4.6 KiB
JavaScript
"use strict";
|
|
(function () {
|
|
'use strict';
|
|
angular.module('knowledgeArticleModule')
|
|
.controller('KnowledgeArticleProfileController', ['$scope', '$state', 'knowledgeArticleModel', 'events', 'historyModel',
|
|
function ($scope, $state, knowledgeArticleModel, events, historyModel) {
|
|
$scope.articleId = $state.params.id;
|
|
$scope.preventIncrement = $state.params.preventIncrement;
|
|
$scope.profileType = $state.current.name;
|
|
$scope.showRateTool = true;
|
|
$scope.hideEditButton = false;
|
|
$scope.kcsAssessMode = $state.params.assessMode;
|
|
$scope.kcsAssessDuplicateMode = false;
|
|
$scope.fromFullArticle = false;
|
|
$scope.getLatestVersion = $state.params.version;
|
|
$scope.knowledgeArticleModel = knowledgeArticleModel;
|
|
$scope.state = {
|
|
savingVote: false,
|
|
commentTabActive: false
|
|
};
|
|
$scope.rateArticle = function (vote) {
|
|
knowledgeArticleModel.rateArticle($scope.articleId, vote);
|
|
};
|
|
$scope.setRatingVisibility = function (visible) {
|
|
var flag = $scope.article ? $scope.article.accessMappings.helpfulEditAllowed : true;
|
|
$scope.state.commentTabActive = !visible;
|
|
$scope.showRateTool = visible && flag;
|
|
};
|
|
$scope.setKcsAssessMode = function (value) {
|
|
$scope.kcsAssessMode = value;
|
|
};
|
|
$scope.setAssessFromFullArticle = function () {
|
|
$scope.fromFullArticle = true;
|
|
};
|
|
$scope.$on(events.KNOWLEDGE_ARTICLE_LOADED, function (event, data) {
|
|
historyModel.addToHistory(EntityVO.TYPE_KNOWLEDGE, data.article);
|
|
if (!$scope.article) {
|
|
$scope.article = data.article;
|
|
}
|
|
//This function gets called even outside edit mode like refresh in which case we shouldn't hide the edit button
|
|
if (!data.isEditMode) {
|
|
$scope.hideEditButton = false;
|
|
}
|
|
/* SW00511081 - always refresh assignee and support group info */
|
|
$scope.article.assignee = data.article.assignee;
|
|
$scope.article.supportGroup = data.article.supportGroup;
|
|
$scope.article.assigneeGroup = data.article.assigneeGroup;
|
|
$scope.article.accessMappings = data.article.accessMappings;
|
|
$scope.$broadcast(events.REFRESH_KA_META, data);
|
|
if (!$scope.article.accessMappings.detailsEditAllowed && !$scope.article.accessMappings.companyEditAllowed && !$scope.article.accessMappings.assigneeEditAllowed && !$scope.article.accessMappings.visibilitygroupsEditAllowed) {
|
|
$scope.hideEditButton = true;
|
|
}
|
|
if (!$scope.article.accessMappings.helpfulEditAllowed) {
|
|
$scope.showRateTool = false;
|
|
}
|
|
if ($scope.kcsAssessMode) {
|
|
$scope.hideEditButton = true;
|
|
}
|
|
});
|
|
$scope.$on(events.TICKET_PROFILE_RESEND_EVENT, function (event, resend) {
|
|
event.stopPropagation();
|
|
$scope.$broadcast(resend.eventName, resend.eventData);
|
|
});
|
|
$scope.$on(events.SELECT_ACTIVITY_TAB, function () {
|
|
$scope.state.commentTabActive = true;
|
|
});
|
|
$scope.$on(events.TOGGLE_KNOWLEDGE_ARTICLE_EDIT_MODE, function () {
|
|
$scope.hideEditButton = !$scope.hideEditButton;
|
|
});
|
|
$scope.$on(events.EDIT_COMPLETE, function () {
|
|
$scope.hideEditButton = false;
|
|
});
|
|
$scope.$on(events.TOGGLE_CHECK_DUPLICATE_MODE, function (event, data) {
|
|
$scope.toggleCheckDuplicateMode(data);
|
|
});
|
|
$scope.toggleCheckDuplicateMode = function (todo) {
|
|
$scope.kcsAssessDuplicateMode = todo;
|
|
};
|
|
$scope.exitAssessmentMode = function () {
|
|
if (!$scope.fromFullArticle) {
|
|
$state.go('knowledgeConsole');
|
|
}
|
|
else {
|
|
$scope.setAssessFromFullArticle(false);
|
|
$scope.setKcsAssessMode(false);
|
|
}
|
|
};
|
|
/**
|
|
* On refresh ticket upadte ticket activities
|
|
*/
|
|
$scope.$on(events.REFRESH_TICKET, function (event, data) {
|
|
$scope.$broadcast(events.REFRESH_ACTIVITY_FEED);
|
|
$scope.$broadcast(events.REFRESH_RESOURCE_FEED, data);
|
|
});
|
|
}
|
|
]);
|
|
})();
|