{"version":3,"sources":["wwwroot/js/history.js"],"names":["addModalBackdropStyle","zIndexBase","style","document","createElement","type","media","innerHTML","head","appendChild","HistoryViewer","settings","this","kind","objectUId","readonly","webApiUrl","token","prototype","showHistory","el","that","require","domReady","Vue","historyModal","id","classList","add","tabIndex","setAttribute","zIndex","modalDialog","modalContent","modalHeader","closeButton","modalTitle","textContent","modalBody","noDataDiv","dataTable","marginTop","thead","headerRow","headers","i","length","th","tbody","rowTemplate","cellNumber","cellDate","cellUser","cellControls","viewLink","href","restoreLink","modalFooter","closeButtonFooter","body","historyModalId","vm","data","backdrop","hasData","noDataText","records","methods","viewHistory","record","restoreHistory","closeHistoryModal","$","modal","on","HideSilverlightApps","hideSourceEditor","url","ajax","dataType","crossDomain","done","reverse","fail","restoreHideModal","RestoreSilverlightApps","drawSourceEditor","zIndexParent","remove","bdParent","patchHideModal","show","viewHistoryModal","textArea","maxWidth","rows","restoreButton","viewHistoryModalId","recordVal","closeViewHistoryModal","restoreRecord","revision","value","alert","closeWithParent","$modal","focusNoScroll","_restoreHistoryImpl","Silverlight_Apps","Content","Page","SetText","editorObj","_getJSScriptEditor","editor","getModel","setValue","Error","setTextBankEditorValue","focus","obj","hideModalOriginal","Constructor","hideModal","$element","hide","trigger"],"mappings":"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","file":"history.min.js","sourcesContent":["/*!\r\n * Copyright 2024, Selerix Systems, Inc. All Rights Reserved\r\n * This is unpublished proprietary source code of Selerix, Inc. The\r\n * copyright notice above does not evidence any actual or intended\r\n * publication of such source code.\r\n */\r\n\r\nfunction addModalBackdropStyle(zIndexBase) {\r\n var style = document.createElement('style');\r\n style.type = 'text/css';\r\n style.media = 'screen';\r\n style.innerHTML = 'div.modal-backdrop { z-index: ' + zIndexBase + '; }';\r\n document.head.appendChild(style);\r\n}\r\n\r\nvar HistoryViewer = function (settings) {\r\n this.kind = settings.kind || 'Script';\r\n this.objectUId = settings.objectUId;\r\n this.type = settings.type;\r\n this.readonly = settings.readonly;\r\n this.webApiUrl = settings.webApiUrl;\r\n this.token = settings.token;\r\n this.zIndexBase = 20100;\r\n\r\n return this;\r\n};\r\n\r\nHistoryViewer.prototype.showHistory = function (el) {\r\n var that = this;\r\n require(['domReady!', 'vue'], function (domReady, Vue) {\r\n\r\n addModalBackdropStyle(that.zIndexBase);\r\n\r\n var historyModal = document.createElement('div');\r\n historyModal.id = 'historyModal';\r\n historyModal.classList.add('modal');\r\n historyModal.classList.add('fade');\r\n historyModal.tabIndex = '-1';\r\n historyModal.setAttribute(':data-backdrop', 'backdrop');\r\n historyModal.setAttribute('role', 'dialog');\r\n historyModal.setAttribute('aria-labelledby', 'historyModalTitle');\r\n historyModal.style.zIndex = that.zIndexBase + 1;\r\n\r\n var modalDialog = document.createElement('div');\r\n modalDialog.classList.add('modal-dialog');\r\n\r\n var modalContent = document.createElement('div');\r\n modalContent.classList.add('modal-content');\r\n\r\n var modalHeader = document.createElement('div');\r\n modalHeader.classList.add('modal-header');\r\n\r\n var closeButton = document.createElement('button');\r\n closeButton.type = 'button';\r\n closeButton.classList.add('close');\r\n closeButton.setAttribute('aria-hidden', 'true');\r\n closeButton.innerHTML = '×';\r\n closeButton.setAttribute('v-on:click', 'closeHistoryModal');\r\n\r\n var modalTitle = document.createElement('h4');\r\n modalTitle.classList.add('modal-title');\r\n modalTitle.id = 'historyModalTitle';\r\n modalTitle.textContent = that.kind + ' History';\r\n\r\n modalHeader.appendChild(closeButton);\r\n modalHeader.appendChild(modalTitle);\r\n\r\n var modalBody = document.createElement('div');\r\n modalBody.classList.add('modal-body');\r\n\r\n var noDataDiv = document.createElement('div');\r\n noDataDiv.setAttribute('v-if', '!hasData');\r\n noDataDiv.textContent = '{{ noDataText }}';\r\n\r\n var dataTable = document.createElement('table');\r\n dataTable.id = 'historyDataTable';\r\n dataTable.classList.add('gridvue');\r\n dataTable.setAttribute('v-if', 'hasData');\r\n dataTable.setAttribute('data-initialize', 'false');\r\n dataTable.setAttribute('data-responsive', 'false');\r\n dataTable.setAttribute('data-rowsperpage', '10');\r\n dataTable.style.marginTop = '0';\r\n\r\n var thead = document.createElement('thead');\r\n var headerRow = document.createElement('tr');\r\n var headers = ['#', 'Date/Time', 'User', ''];\r\n for (var i = 0; i < headers.length; i++) {\r\n var th = document.createElement('th');\r\n th.textContent = headers[i];\r\n headerRow.appendChild(th);\r\n }\r\n thead.appendChild(headerRow);\r\n dataTable.appendChild(thead);\r\n\r\n var tbody = document.createElement('tbody');\r\n tbody.setAttribute('v-for', 'record in records');\r\n tbody.setAttribute(':key', 'record.number');\r\n\r\n var rowTemplate = document.createElement('tr');\r\n\r\n var cellNumber = document.createElement('td');\r\n cellNumber.textContent = '{{ record.number }}';\r\n rowTemplate.appendChild(cellNumber);\r\n\r\n var cellDate = document.createElement('td');\r\n cellDate.textContent = '{{ record.date }}';\r\n rowTemplate.appendChild(cellDate);\r\n\r\n var cellUser = document.createElement('td');\r\n cellUser.textContent = '{{ record.userName }}';\r\n rowTemplate.appendChild(cellUser);\r\n\r\n var cellControls = document.createElement('td');\r\n cellControls.classList.add('controls');\r\n cellControls.setAttribute('align', 'center');\r\n\r\n var viewLink = document.createElement('a');\r\n viewLink.classList.add('glyphicons');\r\n viewLink.classList.add('glyphicons-book-open');\r\n viewLink.href = 'javascript:void(0);';\r\n viewLink.setAttribute('v-on:click', 'viewHistory(record)');\r\n viewLink.setAttribute('title', 'View');\r\n cellControls.appendChild(viewLink);\r\n\r\n var restoreLink = document.createElement('a');\r\n restoreLink.classList.add('glyphicons');\r\n restoreLink.classList.add('glyphicons-history');\r\n restoreLink.href = 'javascript:void(0);';\r\n restoreLink.setAttribute('v-if', '!readonly');\r\n restoreLink.setAttribute('v-on:click', 'restoreHistory(record)');\r\n restoreLink.setAttribute('title', 'Restore');\r\n cellControls.appendChild(restoreLink);\r\n\r\n rowTemplate.appendChild(cellControls);\r\n tbody.appendChild(rowTemplate);\r\n\r\n dataTable.appendChild(tbody);\r\n\r\n modalBody.appendChild(noDataDiv);\r\n modalBody.appendChild(dataTable);\r\n\r\n var modalFooter = document.createElement('div');\r\n modalFooter.classList.add('modal-footer');\r\n\r\n var closeButtonFooter = document.createElement('button');\r\n closeButtonFooter.type = 'button';\r\n closeButtonFooter.classList.add('btn');\r\n closeButtonFooter.classList.add('btn-default');\r\n closeButtonFooter.classList.add('btn-main');\r\n closeButtonFooter.textContent = 'Close';\r\n closeButtonFooter.setAttribute('v-on:click', 'closeHistoryModal');\r\n modalFooter.appendChild(closeButtonFooter);\r\n\r\n modalContent.appendChild(modalHeader);\r\n modalContent.appendChild(modalBody);\r\n modalContent.appendChild(modalFooter);\r\n\r\n modalDialog.appendChild(modalContent);\r\n\r\n historyModal.appendChild(modalDialog);\r\n\r\n document.body.appendChild(historyModal);\r\n\r\n var historyModalId = '#historyModal';\r\n var vm = new Vue({\r\n /** The string value of the ID of the element to bind to. */\r\n el: historyModalId,\r\n /** The internal data properties. */\r\n data: {\r\n /** History kind. */\r\n kind: that.kind,\r\n /** History type. */\r\n type: that.type,\r\n /** Has backdrop. */\r\n backdrop: 'false',\r\n /** Is read only. */\r\n readonly: that.readonly,\r\n /** Has data. */\r\n hasData: false,\r\n /** Text when no data. */\r\n noDataText: 'Loading...',\r\n /** Total records. */\r\n records: []\r\n },\r\n /** All methods for this component. */\r\n methods: {\r\n /**\r\n * View history.\r\n * @param record The history record.\r\n */\r\n viewHistory: function (record) {\r\n that.viewHistory(record);\r\n },\r\n /**\r\n * Restore history.\r\n * @param record The history record to restore.\r\n */\r\n restoreHistory: function (record) {\r\n that.restoreHistory(record);\r\n },\r\n /**\r\n * Close history modal.\r\n */\r\n closeHistoryModal: function () {\r\n $(historyModalId).modal('hide');\r\n }\r\n }\r\n });\r\n\r\n $(historyModalId).on('show.bs.modal', function () {\r\n if (that.kind === 'Script') {\r\n HideSilverlightApps();\r\n }\r\n\r\n if (that.kind === 'TextBank') {\r\n hideSourceEditor(true);\r\n }\r\n\r\n var url = that.webApiUrl + '/' + that.objectUId + '?type=' + that.type;\r\n if (that.token && that.token.length > 0) {\r\n url += '&token=' + that.token;\r\n }\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: url,\r\n dataType: 'json',\r\n crossDomain: true\r\n }).done(function (data) {\r\n if (data && data.length > 0) {\r\n vm.hasData = true;\r\n vm.records = data.reverse();\r\n } else {\r\n vm.hasData = false;\r\n vm.noDataText = 'No records found.';\r\n }\r\n }).fail(function () {\r\n vm.noDataText = \"Error loading data - QX Admin service isn't available.\";\r\n });\r\n });\r\n\r\n $(historyModalId).on('hidden.bs.modal', function () {\r\n that.restoreHideModal(that, $(historyModalId));\r\n\r\n if (that.kind === 'Script') {\r\n RestoreSilverlightApps();\r\n }\r\n\r\n if (that.kind === 'TextBank') {\r\n drawSourceEditor(true);\r\n }\r\n\r\n if (that.zIndexParent) {\r\n $('.modal-backdrop').zIndex(that.zIndexParent);\r\n }\r\n\r\n $(historyModalId).remove();\r\n }); \r\n\r\n var bdParent = $('.modal-backdrop');\r\n if (bdParent && bdParent.length > 0) {\r\n that.zIndexParent = bdParent.zIndex();\r\n vm.backdrop = 'false';\r\n\r\n // TODO: Remove this check when Text Bank Editor would be \r\n // a normal Bootstrap dialog and not a something weird like now.\r\n if (that.kind === \"Script\") {\r\n that.patchHideModal(that, $(historyModalId));\r\n }\r\n }\r\n\r\n $(historyModalId).modal({ show: true });\r\n });\r\n};\r\n\r\nHistoryViewer.prototype.viewHistory = function (record) {\r\n var that = this;\r\n require(['domReady!', 'vue'], function (domReady, Vue) {\r\n var viewHistoryModal = document.createElement('div');\r\n viewHistoryModal.id = 'viewHistoryModal';\r\n viewHistoryModal.classList.add('modal');\r\n viewHistoryModal.classList.add('fade');\r\n viewHistoryModal.tabIndex = '-1';\r\n viewHistoryModal.setAttribute('role', 'dialog');\r\n viewHistoryModal.setAttribute('data-backdrop', 'false');\r\n viewHistoryModal.style.zIndex = that.zIndexBase + 101;\r\n\r\n var modalDialog = document.createElement('div');\r\n modalDialog.classList.add('modal-dialog');\r\n\r\n var modalContent = document.createElement('div');\r\n modalContent.classList.add('modal-content');\r\n\r\n var modalHeader = document.createElement('div');\r\n modalHeader.classList.add('modal-header');\r\n\r\n var closeButton = document.createElement('button');\r\n closeButton.type = 'button';\r\n closeButton.classList.add('close');\r\n closeButton.setAttribute('aria-hidden', 'true');\r\n closeButton.innerHTML = '×';\r\n closeButton.setAttribute('v-on:click', 'closeViewHistoryModal');\r\n\r\n var modalTitle = document.createElement('h4');\r\n modalTitle.classList.add('modal-title');\r\n modalTitle.id = 'viewHistoryModalTitle';\r\n modalTitle.innerHTML = 'Revision #{{ record.number }} at {{ record.date }}';\r\n\r\n modalHeader.appendChild(closeButton);\r\n modalHeader.appendChild(modalTitle);\r\n\r\n var modalBody = document.createElement('div');\r\n modalBody.classList.add('modal-body');\r\n\r\n var textArea = document.createElement('textarea');\r\n textArea.classList.add('form-control');\r\n textArea.style.maxWidth = '100%';\r\n textArea.rows = '10';\r\n textArea.setAttribute('readonly', true);\r\n textArea.textContent = '{{ recordVal }}';\r\n\r\n modalBody.appendChild(textArea);\r\n\r\n var modalFooter = document.createElement('div');\r\n modalFooter.classList.add('modal-footer');\r\n\r\n var closeButtonFooter = document.createElement('button');\r\n closeButtonFooter.type = 'button';\r\n closeButtonFooter.classList.add('btn');\r\n closeButtonFooter.classList.add('btn-default');\r\n closeButtonFooter.classList.add('btn-main');\r\n closeButtonFooter.textContent = 'Close';\r\n closeButtonFooter.setAttribute('v-on:click', 'closeViewHistoryModal'); \r\n modalFooter.appendChild(closeButtonFooter);\r\n\r\n var restoreButton = document.createElement('button');\r\n restoreButton.type = 'button';\r\n restoreButton.classList.add('btn');\r\n restoreButton.classList.add('btn-default');\r\n restoreButton.textContent = 'Restore';\r\n restoreButton.setAttribute('v-if', '!readonly');\r\n restoreButton.setAttribute('v-on:click', 'restoreRecord');\r\n modalFooter.appendChild(restoreButton);\r\n\r\n modalContent.appendChild(modalHeader);\r\n modalContent.appendChild(modalBody);\r\n modalContent.appendChild(modalFooter);\r\n\r\n modalDialog.appendChild(modalContent);\r\n\r\n viewHistoryModal.appendChild(modalDialog);\r\n\r\n document.body.appendChild(viewHistoryModal);\r\n\r\n var viewHistoryModalId = '#viewHistoryModal';\r\n\r\n var vm = new Vue({\r\n /** The string value of the ID of the element to bind to. */\r\n el: viewHistoryModalId,\r\n /** The internal data properties. */\r\n data: {\r\n /** The history record. */\r\n record: record,\r\n /** The history record value. */\r\n recordVal: 'Loading...',\r\n /** Is read only. */\r\n readonly: that.readonly\r\n },\r\n /** All methods for this component. */\r\n methods: {\r\n /**\r\n * Close view history modal.\r\n */\r\n closeViewHistoryModal: function () {\r\n $(viewHistoryModalId).modal('hide');\r\n },\r\n /**\r\n * Restore history record.\r\n * @param record The history record to restore.\r\n */\r\n restoreRecord: function () {\r\n that.restoreHistory(record);\r\n $(viewHistoryModalId).modal('hide');\r\n }\r\n }\r\n });\r\n\r\n $(viewHistoryModalId).on('shown.bs.modal', function () {\r\n var url = that.webApiUrl + '/revision/' + record.revision + '?type=' + that.type;\r\n if (that.token && that.token.length > 0) {\r\n url += '&token=' + that.token;\r\n }\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: url,\r\n dataType: 'json',\r\n crossDomain: true\r\n }).done(function (data) {\r\n if (data && data.length > 0) {\r\n vm.recordVal = data[data.length - 1].value;\r\n }\r\n }).fail(function () {\r\n alert(\"Error loading data - QX Admin service isn't available.\");\r\n });\r\n }); \r\n\r\n $(viewHistoryModalId).on('hidden.bs.modal', function () {\r\n that.restoreHideModal(that, $(viewHistoryModalId));\r\n\r\n $(viewHistoryModalId).remove();\r\n\r\n if (that.closeWithParent) {\r\n that.$modal.modal('hide');\r\n } else {\r\n that.focusNoScroll();\r\n }\r\n });\r\n\r\n $(viewHistoryModalId).modal({ show: true });\r\n });\r\n};\r\n\r\nHistoryViewer.prototype.restoreHistory = function (record) {\r\n var that = this;\r\n var url = that.webApiUrl + '/revision/' + record.revision + '?type=' + that.type;\r\n if (that.token && that.token.length > 0) {\r\n url += '&token=' + that.token;\r\n }\r\n\r\n $.ajax({\r\n type: 'GET',\r\n url: url,\r\n dataType: 'json',\r\n crossDomain: true\r\n }).done(function (data) {\r\n if (data && data.length > 0) {\r\n var value = data[data.length - 1].value;\r\n that._restoreHistoryImpl(value);\r\n if (that.$modal) {\r\n that.$modal.modal('hide');\r\n }\r\n }\r\n }).fail(function () {\r\n alert(\"Error loading data - QX Admin service isn't available.\");\r\n });\r\n};\r\n\r\nHistoryViewer.prototype._restoreHistoryImpl = function (value) {\r\n var that = this;\r\n\r\n if (that.kind === \"Script\") {\r\n if (Silverlight_Apps && Silverlight_Apps.length > 0) {\r\n Silverlight_Apps[0].Content.Page.SetText(value);\r\n return;\r\n }\r\n\r\n var editorObj = _getJSScriptEditor($(document.body), '.monaco-script-editor');\r\n if (editorObj && editorObj.editor) {\r\n editorObj.editor.getModel().setValue(value);\r\n return;\r\n }\r\n }\r\n\r\n if (that.kind === \"TextBank\") {\r\n setTextBankEditorValue(value);\r\n return;\r\n }\r\n\r\n throw new Error('Cannot restore history record of the type \"' + that.kind + '\".');\r\n};\r\n\r\nHistoryViewer.prototype.focusNoScroll = function () {\r\n if (this.$modal && this.$modal.focus) {\r\n this.$modal.focus();\r\n }\r\n};\r\n\r\nHistoryViewer.prototype.restoreHideModal = function (obj, $modal) {\r\n if (obj && obj.hideModalOriginal) {\r\n $modal.modal.Constructor.prototype.hideModal = obj.hideModalOriginal;\r\n }\r\n};\r\n\r\nHistoryViewer.prototype.patchHideModal = function (obj, $modal) {\r\n obj.hideModalOriginal = $modal.modal.Constructor.prototype.hideModal;\r\n\r\n // https://github.com/twbs/bootstrap/issues/15837\r\n $modal.modal.Constructor.prototype.hideModal = function () {\r\n // don't touch backdrop & scroll\r\n this.$element.hide();\r\n this.$element.trigger('hidden.bs.modal');\r\n };\r\n};"]}