|
@@ -2,6 +2,7 @@ import moment from 'moment/min/moment-with-locales';
|
|
|
import { TAPi18n } from '/imports/i18n';
|
|
|
import { DatePicker } from '/client/lib/datepicker';
|
|
|
import Cards from '/models/cards';
|
|
|
+import { CustomFieldStringTemplate } from '/client/lib/customFields'
|
|
|
|
|
|
Template.cardCustomFieldsPopup.helpers({
|
|
|
hasCustomField() {
|
|
@@ -245,38 +246,17 @@ CardCustomField.register('cardCustomField');
|
|
|
}.register('cardCustomField-dropdown'));
|
|
|
|
|
|
// cardCustomField-stringtemplate
|
|
|
-(class extends CardCustomField {
|
|
|
+class CardCustomFieldStringTemplate extends CardCustomField {
|
|
|
onCreated() {
|
|
|
super.onCreated();
|
|
|
|
|
|
- this.stringtemplateFormat = this.data().definition.settings.stringtemplateFormat;
|
|
|
- this.stringtemplateSeparator = this.data().definition.settings.stringtemplateSeparator;
|
|
|
+ this.customField = new CustomFieldStringTemplate(this.data().definition);
|
|
|
|
|
|
this.stringtemplateItems = new ReactiveVar(this.data().value ?? []);
|
|
|
}
|
|
|
|
|
|
formattedValue() {
|
|
|
- const ret = (this.data().value ?? [])
|
|
|
- .filter(value => !!value.trim())
|
|
|
- .map(value => {
|
|
|
- let _ret = this.stringtemplateFormat.replace(/[%$]\{.+?\}/g, function(_match) {
|
|
|
- let __ret;
|
|
|
- if (_match.match(/%\{value\}/i)) {
|
|
|
- __ret = value;
|
|
|
- } else {
|
|
|
- _match = _match.replace(/^\$/, "");
|
|
|
- try {
|
|
|
- const _json = JSON.parse(_match);
|
|
|
- __ret = value.replace(new RegExp(_json.regex, _json.flags), _json.replace);
|
|
|
- } catch (err) {
|
|
|
- console.error(err);
|
|
|
- }
|
|
|
- }
|
|
|
- return __ret;
|
|
|
- });
|
|
|
- return _ret;
|
|
|
- })
|
|
|
- .join(this.stringtemplateSeparator ?? '');
|
|
|
+ const ret = this.customField.getFormattedValue(this.data().value);
|
|
|
return ret;
|
|
|
}
|
|
|
|
|
@@ -348,4 +328,5 @@ CardCustomField.register('cardCustomField');
|
|
|
},
|
|
|
];
|
|
|
}
|
|
|
-}.register('cardCustomField-stringtemplate'));
|
|
|
+}
|
|
|
+CardCustomFieldStringTemplate.register('cardCustomField-stringtemplate');
|