"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 () { $scope.$broadcast(events.REFRESH_ACTIVITY_FEED); $scope.$broadcast(events.REFRESH_RESOURCE_FEED); }); } ]); })();