CompileTab: more minor refactorings

pull/3094/head
serapath 7 years ago
parent 1fec2b1ea4
commit 07f1156b61
  1. 35
      src/app/tabs/compile-tab.js

@ -136,28 +136,14 @@ module.exports = class CompileTab {
${warnCompilationSlow} ${warnCompilationSlow}
</div> </div>
</div>` </div>`
function updateAutoCompile (event) { self._opts.config.set('autoCompile', self._view.autoCompile.checked) }
function compile (event) { self._api.runCompiler() }
// compileContainer.querySelector('#compile').addEventListener('click', () => {
// self._api.runCompiler()
// })
// var autoCompileInput = compileContainer.querySelector('#autoCompile')
// var autoCompile = false
// if (opts.config.exists('autoCompile')) {
// autoCompile = opts.config.get('autoCompile')
// }
// opts.config.set('autoCompile', autoCompile)
// self._view.autoCompile.addEventListener('change', function () {
//
// })
var errorContainer = yo`<div class='error'></div>` var errorContainer = yo`<div class='error'></div>`
var contractsDetails = {} var contractNames = yo`<select class="${css.contractNames}" disabled></select>`
var contractEl = yo` var contractEl = yo`
<div class="${css.container}"> <div class="${css.container}">
<select class="${css.contractNames}" disabled></select> ${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>
</div> </div>
</div>` </div>`
var el = yo` var el = yo`
@ -166,27 +152,28 @@ module.exports = class CompileTab {
${contractEl} ${contractEl}
${errorContainer} ${errorContainer}
</div>` </div>`
function updateAutoCompile (event) { self._opts.config.set('autoCompile', self._view.autoCompile.checked) }
function compile (event) { self._api.runCompiler() }
function getContractNames (success, data) { function getContractNames (success, data) {
var contractNames = document.querySelector(`.${css.contractNames.classNames[0]}`)
contractNames.innerHTML = '' contractNames.innerHTML = ''
if (success) { if (success) {
contractNames.removeAttribute('disabled') contractNames.removeAttribute('disabled')
opts.compiler.visitContracts((contract) => { opts.compiler.visitContracts((contract) => {
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) contractNames.appendChild(contractName)
}) })
self._api.resetDapp(contractsDetails) self._api.resetDapp(self.data.contractsDetails)
} else { } else {
contractNames.setAttribute('disabled', true) contractNames.setAttribute('disabled', true)
self._api.resetDapp({}) self._api.resetDapp({})
} }
} }
function details () { function details () {
var select = contractEl.querySelector('select') var select = 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 = contractsDetails[contractName] var contractProperties = self.data.contractsDetails[contractName]
var log = yo`<div class="${css.detailsJSON}"></div>` var log = yo`<div class="${css.detailsJSON}"></div>`
Object.keys(contractProperties).map(propertyName => { Object.keys(contractProperties).map(propertyName => {
var copyDetails = yo`<span class="${css.copyDetails}"> var copyDetails = yo`<span class="${css.copyDetails}">
@ -262,7 +249,7 @@ module.exports = class CompileTab {
function publish () { function publish () {
var selectContractNames = document.querySelector(`.${css.contractNames.classNames[0]}`) var selectContractNames = document.querySelector(`.${css.contractNames.classNames[0]}`)
if (selectContractNames.children.length > 0 && selectContractNames.selectedIndex >= 0) { if (selectContractNames.children.length > 0 && selectContractNames.selectedIndex >= 0) {
var contract = 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) {
modalDialogCustom.alert('This contract does not implement all functions and thus cannot be published.') modalDialogCustom.alert('This contract does not implement all functions and thus cannot be published.')
} else { } else {

Loading…
Cancel
Save