1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 | 1 1 1 1 | 'use strict'; ;require.register("views/common/modal_popups/log_tail_popup", function (exports, require, module) { /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var App = require('app'); var fileUtils = require('utils/file_utils'); App.showLogTailPopup = function (content) { return App.ModalPopup.show({ classNames: ['log-tail-popup', 'wide-modal-wrapper', 'full-height-modal'], modalDialogClasses: ['modal-xlg'], header: fileUtils.fileNameFromPath(content.get('filePath')), primary: false, secondary: Em.I18n.t('common.dismiss'), secondaryClass: 'btn-success', showFooter: true, autoHeight: false, bodyClass: Em.View.extend({ templateName: require('templates/common/modal_popups/log_tail_popup'), content: content, selectedTailCount: 50, isCopyActive: false, copyContent: null, logSearchUrl: function () { var quickLink = App.QuickLinks.find().findProperty('site', 'logsearch-env'), logSearchServerHost = App.HostComponent.find().findProperty('componentName', 'LOGSEARCH_SERVER').get('hostName'), params = ''; if (quickLink) { params = 'hosts=' + encodeURIComponent(this.get('content.hostName')) + ';components=' + encodeURIComponent(this.get('content.logComponentName')) + ';query=%5B%7B"id":0,"name":"path","label":"Path","value":"' + encodeURIComponent(this.get('content.filePath')) + '","isExclude":false%7D%5D'; return quickLink.get('template').fmt('http', logSearchServerHost, quickLink.get('default_http_port')) + '/#/logs/serviceLogs;' + params; } return '#'; }.property('content'), logTailViewInstance: null, /** actions **/ openInNewTab: function openInNewTab() { var newWindow = window.open(); var newDocument = newWindow.document; newDocument.write('<pre>' + this.logsToString() + '</pre>'); newDocument.close(); }, toggleCopy: function toggleCopy() { if (!this.get('isCopyActive')) { this.initCopy(); } else { this.destroyCopy(); } }, initCopy: function initCopy() { var self = this; this.set('copyContent', this.logsToString()); this.set('isCopyActive', true); Em.run.next(function () { self.$().find('.copy-textarea').select(); }); }, destroyCopy: function destroyCopy() { this.set('copyContent', null); this.set('isCopyActive', false); }, logsToString: function logsToString() { return this.get('logTailViewInstance.logRows').map(function (i) { return i.get('logtimeFormatted') + ' ' + i.get('level') + ' ' + i.get('logMessage'); }).join('\n'); }, logTailContentView: App.LogTailView.extend({ contentBinding: "parentView.content", autoResize: true, selectedTailCountBinding: "parentView.selectedTailCount", didInsertElement: function didInsertElement() { this._super(); this.set('parentView.logTailViewInstance', this); }, resizeHandler: function resizeHandler() { if (this.get('state') === 'destroyed') return; this._super(); var newSize = $(window).height() - this.get('resizeDelta') - window.innerHeight * 0.08; this.get('parentView').$().find('.copy-textarea').css({ height: newSize + 'px' }); }, willDestroyElement: function willDestroyElement() { this._super(); this.set('parentView.logTailViewInstance', null); } }) }) }); }; }); |