mirror of
https://github.com/fluent/fluentd-ui.git
synced 2025-08-11 16:57:11 +02:00
111 lines
3.1 KiB
JavaScript
111 lines
3.1 KiB
JavaScript
/* global _ */
|
|
"use strict";
|
|
import "lodash/lodash";
|
|
import store from "../store";
|
|
|
|
const ConfigField = {
|
|
template: "#vue-config-field",
|
|
props: [
|
|
"pluginType",
|
|
"option",
|
|
"initialTextValue",
|
|
],
|
|
|
|
data: function() {
|
|
return {
|
|
selectedValue: null,
|
|
checkboxValue: null,
|
|
textValue: null,
|
|
};
|
|
},
|
|
|
|
filters: {
|
|
humanize: function(value) {
|
|
return _.capitalize(value.replace(/_/g, " "));
|
|
}
|
|
},
|
|
|
|
mounted: function() {
|
|
if (this.option.type === "enum") {
|
|
this.selectedValue = this.option.default;
|
|
} else if (this.option.type === "bool") {
|
|
this.checkboxValue = this.option.default;
|
|
} else {
|
|
this.textValue = this.initialTextValue || this.option.default;
|
|
}
|
|
|
|
if (this.option.name === "message_format") {
|
|
store.commit("parserParams/setMessageFormat", this.selectedValue);
|
|
}
|
|
if (this.option.name === "rfc5424_time_format") {
|
|
store.commit("parserParams/setRfc5424TimeFormat", this.textValue);
|
|
}
|
|
if (this.option.name === "with_priority") {
|
|
store.commit("parserParams/setWithPriority", this.checkboxValue);
|
|
}
|
|
if (this.option.name === "expression") {
|
|
store.commit("parserParams/Expression", this.textValue);
|
|
}
|
|
if (this.option.name === "timeFormat") {
|
|
store.commit("parserParams/timeFormat", this.textValue);
|
|
}
|
|
},
|
|
|
|
updated: function() {
|
|
if (this.option.name === "expression") {
|
|
this.expression = this.initialExpression;
|
|
}
|
|
if (this.option.name === "time_format") {
|
|
this.timeFormat = this.initialTimeFormat;
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
onChange: function(event) {
|
|
console.log("onChange", this.option.name, event.target.value);
|
|
if (this.option.name === "message_format") {
|
|
store.dispatch("parserParams/updateMessageFormat", event);
|
|
}
|
|
if (this.option.name === "rfc5424_time_format") {
|
|
store.dispatch("parserParams/updateRfc5424TimeFormat", event);
|
|
}
|
|
if (this.option.name === "with_priority") {
|
|
store.dispatch("parserParams/updateWithPriority", event);
|
|
}
|
|
if (this.option.name === "expression") {
|
|
store.dispatch("parserParams/updateExpression", event);
|
|
}
|
|
if (this.option.name === "timeFormat") {
|
|
store.dispatch("parserParams/updateTimeFormat", event);
|
|
}
|
|
this.$emit("change-parse-config", {});
|
|
},
|
|
labelId: function(pluginType, option) {
|
|
return `label_${this.inputId(pluginType, option)}`;
|
|
},
|
|
inputId: function(pluginType, option) {
|
|
if (pluginType === "output") {
|
|
return `setting_${option.name}`;
|
|
} else {
|
|
return `setting_${_.snakeCase(pluginType)}_0__${option.name}`;
|
|
}
|
|
},
|
|
inputName: function(pluginType, option) {
|
|
if (pluginType === "output") {
|
|
return `setting[${option.name}]`;
|
|
} else {
|
|
return `setting[${_.snakeCase(pluginType)}[0]][${option.name}]`;
|
|
}
|
|
},
|
|
checked: function(checked) {
|
|
if (checked === true || checked === "true") {
|
|
return "checked";
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
export { ConfigField as default };
|