views/mdc/assets/js/components/hidden-fields.js in voom-presenters-0.2.0 vs views/mdc/assets/js/components/hidden-fields.js in voom-presenters-2.0.0

- old
+ new

@@ -1,33 +1,44 @@ import {VBaseComponent, hookupComponents} from './base-component'; +import {dirtyableMixin} from './mixins/dirtyable'; -export function initHiddenFields() { - console.log('\tHiddenFields'); - hookupComponents('.v-hidden-field', VHiddenField, null); +export function initHiddenFields(e) { + console.debug('\tHiddenFields'); + hookupComponents(e, '.v-hidden-field', VHiddenField, null); } -export class VHiddenField extends VBaseComponent { +export class VHiddenField extends dirtyableMixin(VBaseComponent) { constructor(element, mdcComponent) { super(element, mdcComponent); + this.originalValue = this.value(); } // Called to collect data for submission prepareSubmit(params) { params.push([this.name(), this.value()]); } - name(){ + name() { return this.element.name; } - value(){ + value() { return this.element.value; } - clear(){ + clear() { this.setValue(''); } - setValue(value){ + reset() { + this.element.value = this.originalValue; + } + + setValue(value) { this.element.value = value; + } + + isDirty() { + return this.dirtyable + && this.value() !== this.originalValue; } }