diff --git a/lib/logging/addon/components/logging/new-edit/component.js b/lib/logging/addon/components/logging/new-edit/component.js index 6f9374c95..d9176e930 100644 --- a/lib/logging/addon/components/logging/new-edit/component.js +++ b/lib/logging/addon/components/logging/new-edit/component.js @@ -9,6 +9,7 @@ import parseUri from 'shared/utils/parse-uri'; import { resolve } from 'rsvp'; import { next, later } from '@ember/runloop'; import C from 'ui/utils/constants'; +import { on } from '@ember/object/evented'; const INVALID_PREFIX_CHAR = ['\\', '/', '*', '?', '"', '<', '>', '|', ` `, ',', '#']; @@ -32,11 +33,6 @@ export default Component.extend(NewOrEdit, { cluster: reads('scope.currentCluster'), project: reads('scope.currentProject'), clusterTargetType: reads('clusterLogging.targetType'), - originalModelTargetType: reads('originalModel.targetType'), - - didReceiveAttrs() { - this.initCustomContent() - }, actions: { test() { @@ -112,27 +108,13 @@ export default Component.extend(NewOrEdit, { }), pasteOrUploadChange: observer('pasteOrUpload', function() { - const { fileObj, deepStrs = [] } = get(this, 'parseValue') + const { fileObj, deepStrs = [] } = this.parseValue(get(this, 'customContent')) const preTargetType = get(this, 'preTargetType') if (!get(this, 'pasteOrUpload')) { const type = fileObj['@type'] - let targetType = type + const targetType = this.fileToFormType(type) - switch (type) { - case 'splunk_hec': - targetType = 'splunk' - break; - case 'remote_syslog': - targetType = 'syslog' - break; - case 'kafka_buffered': - targetType = 'kafka' - break; - case 'forward': - targetType = 'fluentForwarder' - break; - } set(this, 'targetType', targetType) } else { let type = preTargetType @@ -191,9 +173,13 @@ export default Component.extend(NewOrEdit, { && !get(this, 'pasteOrUpload'); }), - parseValue: computed('customContent', function() { + pageChange: on('init', observer('originalModel.customTargetConfig.content', function() { + this.initCustomContent() + })), + + parseValue(value) { let fileObj = {} - const removeMacth = get(this, 'customContent').replace(/.*.*(\r\n|\n|\r) {2}/ig, '').replace(/(\r\n|\n|\r).*<\/match.*>/ig, '') + const removeMacth = value.replace(/.*.*(\r\n|\n|\r) {2}/ig, '').replace(/(\r\n|\n|\r).*<\/match.*>/ig, '') const deepStrs = removeMacth.match(/<(.|\r\n|\n|\r)*<\/.*>/ig, '') || [] const removedDeep = removeMacth.replace(/<(.|\r\n|\n|\r)*<\/.*>/ig, '') @@ -212,7 +198,7 @@ export default Component.extend(NewOrEdit, { fileObj, deepStrs } - }), + }, willSave() { const { @@ -240,7 +226,7 @@ export default Component.extend(NewOrEdit, { const errors = set(this, 'errors', []) if (get(this, 'pasteOrUpload')) { - const { fileObj } = get(this, 'parseValue') + const { fileObj } = this.parseValue(get(this, 'customContent')) const targetType = fileObj['@type'] const types = Object.keys(C.LOGGING_TPYE_TO_CONFIG) || [] @@ -360,13 +346,21 @@ export default Component.extend(NewOrEdit, { }, initCustomContent() { - if (get(this, 'originalModelTargetType') === 'customTarget') { + if (get(this, 'originalModel.targetType') === 'customTarget') { + const { fileObj } = this.parseValue(get(this, 'originalModel.customTargetConfig.content')) + const type = fileObj['@type'] + let preTargetType = this.fileToFormType(type) + setProperties(this, { pasteOrUpload: true, - customContent: `\n ${ get(this, 'model.customTargetConfig.content') }\n`, + customContent: `\n ${ get(this, 'originalModel.customTargetConfig.content') }\n`, + preTargetType, }) } else { - set(this, 'customContent', get(this, 'model.customTarget.config.content')) + setProperties(this, { + pasteOrUpload: false, + customContent: get(this, 'model.customTarget.config.content'), + }) } }, @@ -547,4 +541,25 @@ export default Component.extend(NewOrEdit, { return errors }, + + fileToFormType(type) { + let formType = type + + switch (type) { + case 'splunk_hec': + formType = 'splunk' + break; + case 'remote_syslog': + formType = 'syslog' + break; + case 'kafka_buffered': + formType = 'kafka' + break; + case 'forward': + formType = 'fluentForwarder' + break; + } + + return formType + }, }); diff --git a/lib/logging/addon/components/logging/new-edit/template.hbs b/lib/logging/addon/components/logging/new-edit/template.hbs index 7e79fffb2..93c4c1ac4 100644 --- a/lib/logging/addon/components/logging/new-edit/template.hbs +++ b/lib/logging/addon/components/logging/new-edit/template.hbs @@ -25,7 +25,7 @@ {{#if (not-eq targetType "none")}}
    - {{#if pasteOrUpload}} + {{#if (eq targetType "customTarget")}}
  • @@ -38,7 +38,7 @@
{{/if}} -{{#if pasteOrUpload}} +{{#if (eq targetType "customTarget")}}
{{logging/input-logging-config showDownload=false