diff --git a/src/multiParamManager.js b/src/multiParamManager.js index 08cb124cb9..5e9e7cab4f 100644 --- a/src/multiParamManager.js +++ b/src/multiParamManager.js @@ -20,16 +20,51 @@ class MultiParamManager { this.clickCallBack = clickCallBack this.inputs = inputs this.title = title + this.basicInputField + this.multiFields } switchMethodViewOn () { this.contractActionsContainerSingle.style.display = 'none' this.contractActionsContainerMulti.style.display = 'flex' + // fill in the inputs + this.makeMultiVal() } switchMethodViewOff () { this.contractActionsContainerSingle.style.display = 'flex' this.contractActionsContainerMulti.style.display = 'none' + this.basicInputField.value = this.getMultiValsString() + } + getMultiValsString () { + var valArray = this.multiFields.querySelectorAll('input') + var ret = '' + for (var k = 0; k < valArray.length; k++) { + var el = valArray[k] + if (ret !== '') ret += ',' + ret += el.value + } + return ret + } + + emptyInputs () { + var valArray = this.multiFields.querySelectorAll('input') + for (var k = 0; k < valArray.length; k++) { + valArray[k].value = '' + } + this.basicInputField.value = '' + } + + makeMultiVal () { + var inputString = this.basicInputField.value + console.log(inputString) + var inputStringArray = inputString.split(',') + // !! the split here will mess up a value with a comma in it !! + // do we not make a split if its a , inside a []? + var multiInputs = this.multiFields.querySelectorAll('input') + for (var k = 0; k < multiInputs.length; k++) { + multiInputs[k].value = inputStringArray[k] + } } createMultiFields () { @@ -52,28 +87,31 @@ class MultiParamManager { title = '(fallback)' } - var basicInputField = yo`` - basicInputField.setAttribute('placeholder', this.inputs) - basicInputField.setAttribute('title', this.inputs) + this.basicInputField = yo`` + this.basicInputField.setAttribute('placeholder', this.inputs) + this.basicInputField.setAttribute('title', this.inputs) var onClick = (domEl) => { - this.clickCallBack(this.funABI.inputs, basicInputField.value) + this.clickCallBack(this.funABI.inputs, this.basicInputField.value) + this.emptyInputs() } this.contractActionsContainerSingle = yo`