70 lines
3.7 KiB
JavaScript
70 lines
3.7 KiB
JavaScript
"use strict";
|
|
/**
|
|
* Created by viktor.shevchenko on 7/15/15.
|
|
*/
|
|
(function () {
|
|
'use strict';
|
|
angular.module('resourceModule')
|
|
.directive('pwaRsPreview', ['events', 'relationModel', 'objectValueMapperService', 'utilityFunctions', '$sce',
|
|
function (events, relationModel, objectValueMapperService, utilityFunctions, $sce) {
|
|
return {
|
|
restrict: 'EA',
|
|
replace: true,
|
|
templateUrl: 'views/pwa/pwa-rs-preview.html',
|
|
scope: {
|
|
resourcePreviewItem: '=',
|
|
closeModal: '&'
|
|
},
|
|
link: function (scope, element, attr) {
|
|
scope.editMode = false;
|
|
scope.isTitleMultiline = false;
|
|
scope.$on(events.MULTILINE_CONTENT_CHANGED, function (event, data) {
|
|
scope.isTitleMultiline = data.isContentMultiline;
|
|
});
|
|
scope.$on(events.KNOWLEDGE_ARTICLE_PREVIEW_LOADED, function (event, data) {
|
|
scope.articleFlagged = data.article.flagged;
|
|
scope.currentArticle = data.article;
|
|
});
|
|
scope.$on(events.PWA_UPDATED_KNOWLEDGE, function (event, data) {
|
|
scope.resourcePreviewItem.showSaveToTicket = data.showSaveToTicket === 'true';
|
|
scope.resourcePreviewItem.showSaveAndResolve = data.showSaveAndResolve === 'true';
|
|
scope.resourcePreviewItem.showDeleteFromTicket = data.showDeleteFromTicket === 'true';
|
|
});
|
|
scope.$on(events.TICKET_PROFILE_RESEND_EVENT, function (event, resend) {
|
|
event.stopPropagation();
|
|
scope.$broadcast(resend.eventName, resend.eventData);
|
|
});
|
|
scope.saveAndResolve = function (ticketDetails) {
|
|
//send event to PV with Knowledge ID and close
|
|
var parcelData = { eventType: 'saveAndResolve', eventData: ticketDetails.data.id };
|
|
postMessageToPV(parcelData);
|
|
scope.closePreview();
|
|
};
|
|
scope.sendPVEvent = function (ticketDetails) {
|
|
//send event to PV with Knowledge ID
|
|
var parcelData = { eventType: ticketDetails.eventType, eventData: JSON.stringify({ guid: ticketDetails.data.id }) };
|
|
postMessageToPV(parcelData);
|
|
};
|
|
scope.setFlag = function (flag) {
|
|
if ((scope.currentArticle.accessMappings.flagEditAllowed && flag) || (scope.currentArticle.accessMappings.unflagEditAllowed && !flag)) {
|
|
scope.$broadcast(events.ADD_FLAG_NOTE, { flag: flag });
|
|
}
|
|
};
|
|
scope.closePreview = function () {
|
|
scope.closeModal();
|
|
};
|
|
function postMessageToPV(parcelData) {
|
|
var domain = localStorage.getItem('pwaDomain'), iframeContent = getPwaIFrame();
|
|
if (domain && iframeContent) {
|
|
utilityFunctions.windowPostMessage(iframeContent, parcelData, domain);
|
|
}
|
|
}
|
|
function getPwaIFrame() {
|
|
return document.getElementsByClassName('app__pwa-iframe') && document.getElementsByClassName('app__pwa-iframe').length ? document.getElementsByClassName('app__pwa-iframe')[0].contentWindow : null;
|
|
}
|
|
}
|
|
};
|
|
}
|
|
]);
|
|
})();
|