"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; } } }; } ]); })();