Commit 82dffdf7 authored by serapath's avatar serapath

CompileTab: refactor element contractNames

parent 62b6dde8
...@@ -24,7 +24,8 @@ module.exports = class CompileTab { ...@@ -24,7 +24,8 @@ module.exports = class CompileTab {
warnCompilationSlow: null, warnCompilationSlow: null,
compileIcon: null, compileIcon: null,
compileContainer: null, compileContainer: null,
errorContainer: null errorContainer: null,
contractNames: null
} }
self.data = { self.data = {
autoCompile: self._opts.config.get('autoCompile'), autoCompile: self._opts.config.get('autoCompile'),
...@@ -141,10 +142,10 @@ module.exports = class CompileTab { ...@@ -141,10 +142,10 @@ module.exports = class CompileTab {
</div> </div>
</div>` </div>`
self._view.errorContainer = yo`<div class='error'></div>` self._view.errorContainer = yo`<div class='error'></div>`
var contractNames = yo`<select class="${css.contractNames}" disabled></select>` self._view.contractNames = yo`<select class="${css.contractNames}" disabled></select>`
var contractEl = yo` var contractEl = yo`
<div class="${css.container}"> <div class="${css.container}">
${contractNames} ${self._view.contractNames}
<div class="${css.contractButtons}"> <div class="${css.contractButtons}">
<div title="Display Contract Details" class="${css.details}" onclick=${details}>Details</div> <div title="Display Contract Details" class="${css.details}" onclick=${details}>Details</div>
<div title="Publish on Swarm" class="${css.publish}" onclick=${publish}>Publish on Swarm</div> <div title="Publish on Swarm" class="${css.publish}" onclick=${publish}>Publish on Swarm</div>
...@@ -159,22 +160,22 @@ module.exports = class CompileTab { ...@@ -159,22 +160,22 @@ module.exports = class CompileTab {
function updateAutoCompile (event) { self._opts.config.set('autoCompile', self._view.autoCompile.checked) } function updateAutoCompile (event) { self._opts.config.set('autoCompile', self._view.autoCompile.checked) }
function compile (event) { self._api.runCompiler() } function compile (event) { self._api.runCompiler() }
function getContractNames (success, data) { function getContractNames (success, data) {
contractNames.innerHTML = '' self._view.contractNames.innerHTML = ''
if (success) { if (success) {
contractNames.removeAttribute('disabled') self._view.contractNames.removeAttribute('disabled')
opts.compiler.visitContracts((contract) => { opts.compiler.visitContracts((contract) => {
self.data.contractsDetails[contract.name] = parseContracts(contract.name, contract.object, opts.compiler.getSource(contract.file)) self.data.contractsDetails[contract.name] = parseContracts(contract.name, contract.object, opts.compiler.getSource(contract.file))
var contractName = yo`<option>${contract.name}</option>` var contractName = yo`<option>${contract.name}</option>`
contractNames.appendChild(contractName) self._view.contractNames.appendChild(contractName)
}) })
self._api.resetDapp(self.data.contractsDetails) self._api.resetDapp(self.data.contractsDetails)
} else { } else {
contractNames.setAttribute('disabled', true) self._view.contractNames.setAttribute('disabled', true)
self._api.resetDapp({}) self._api.resetDapp({})
} }
} }
function details () { function details () {
var select = contractNames var select = self._view.contractNames
if (select.children.length > 0 && select.selectedIndex >= 0) { if (select.children.length > 0 && select.selectedIndex >= 0) {
var contractName = select.children[select.selectedIndex].innerHTML var contractName = select.children[select.selectedIndex].innerHTML
var contractProperties = self.data.contractsDetails[contractName] var contractProperties = self.data.contractsDetails[contractName]
...@@ -251,7 +252,7 @@ module.exports = class CompileTab { ...@@ -251,7 +252,7 @@ module.exports = class CompileTab {
return value return value
} }
function publish () { function publish () {
var selectContractNames = document.querySelector(`.${css.contractNames.classNames[0]}`) var selectContractNames = self._view.contractNames
if (selectContractNames.children.length > 0 && selectContractNames.selectedIndex >= 0) { if (selectContractNames.children.length > 0 && selectContractNames.selectedIndex >= 0) {
var contract = self.data.contractsDetails[selectContractNames.children[selectContractNames.selectedIndex].innerHTML] var contract = self.data.contractsDetails[selectContractNames.children[selectContractNames.selectedIndex].innerHTML]
if (contract.metadata === undefined || contract.metadata.length === 0) { if (contract.metadata === undefined || contract.metadata.length === 0) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment