diff options
author | Haben Amare <haben.amare@outlook.com> | 2020-05-25 14:59:32 +0000 |
---|---|---|
committer | Haben Amare <haben.amare@outlook.com> | 2020-05-25 22:02:51 +0000 |
commit | 3cf6ed916f4fd4c8e6e826ed4af1c2dd4c965110 (patch) | |
tree | 11b18e394d6cde20fbe8c69584ac0c87118a7940 /client/components/sidebar/sidebarCustomFields.js | |
parent | 351d9d0c9577c9d543d543bc12a51388b0141324 (diff) | |
download | wekan-3cf6ed916f4fd4c8e6e826ed4af1c2dd4c965110.tar.gz wekan-3cf6ed916f4fd4c8e6e826ed4af1c2dd4c965110.tar.bz2 wekan-3cf6ed916f4fd4c8e6e826ed4af1c2dd4c965110.zip |
add the 'currency' custom field type
Diffstat (limited to 'client/components/sidebar/sidebarCustomFields.js')
-rw-r--r-- | client/components/sidebar/sidebarCustomFields.js | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/client/components/sidebar/sidebarCustomFields.js b/client/components/sidebar/sidebarCustomFields.js index 92e93641..41aecea4 100644 --- a/client/components/sidebar/sidebarCustomFields.js +++ b/client/components/sidebar/sidebarCustomFields.js @@ -16,12 +16,26 @@ BlazeComponent.extendComponent({ }).register('customFieldsSidebar'); const CreateCustomFieldPopup = BlazeComponent.extendComponent({ - _types: ['text', 'number', 'date', 'dropdown'], + _types: ['text', 'number', 'date', 'dropdown', 'currency'], + + _defaultCurrencySymbols: [ + { symbol: '$' }, + { symbol: '€' }, + { symbol: '£' }, + { symbol: '¥' }, + ], onCreated() { this.type = new ReactiveVar( this.data().type ? this.data().type : this._types[0], ); + + this.currencySymbol = new ReactiveVar( + this.data().settings && this.data().settings.currencySymbol + ? this.data().settings.currencySymbol + : this._defaultCurrencySymbols[0].symbol, + ); + this.dropdownItems = new ReactiveVar( this.data().settings && this.data().settings.dropdownItems ? this.data().settings.dropdownItems @@ -44,6 +58,18 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({ return this.type.get() !== type; }, + getCurrencySymbols() { + const currentSymbol = this.currencySymbol.get(); + + return this._defaultCurrencySymbols.map(({ symbol }) => { + return { + name: symbol, + value: symbol, + selected: symbol === currentSymbol, + }; + }); + }, + getDropdownItems() { const items = this.dropdownItems.get(); Array.from(this.findAll('.js-field-settings-dropdown input')).forEach( @@ -62,6 +88,11 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({ getSettings() { const settings = {}; switch (this.type.get()) { + case 'currency': { + const currencySymbol = this.currencySymbol.get(); + settings.currencySymbol = currencySymbol; + break; + } case 'dropdown': { const dropdownItems = this.getDropdownItems().filter( item => !!item.name.trim(), @@ -80,6 +111,10 @@ const CreateCustomFieldPopup = BlazeComponent.extendComponent({ const value = evt.target.value; this.type.set(value); }, + 'change .js-field-currency'(evt) { + const value = evt.target.value; + this.currencySymbol.set(value); + }, 'keydown .js-dropdown-item.last'(evt) { if (evt.target.value.trim() && evt.keyCode === 13) { const items = this.getDropdownItems(); |