Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
baas-ide
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
guxukai
baas-ide
Commits
b69d284d
Commit
b69d284d
authored
Apr 24, 2020
by
LianaHus
Committed by
Liana Husikyan
Apr 27, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ui fixes and run disable. cleanup
parent
c7e9bdb8
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
85 deletions
+92
-85
analysis-tab.js
src/app/tabs/analysis-tab.js
+1
-1
staticAnalysisView.js
src/app/tabs/staticanalysis/staticAnalysisView.js
+91
-76
staticAnalysisView-styles.js
...p/tabs/staticanalysis/styles/staticAnalysisView-styles.js
+0
-3
test-tab-styles.js
src/app/tabs/styles/test-tab-styles.js
+0
-5
No files found.
src/app/tabs/analysis-tab.js
View file @
b69d284d
...
@@ -42,7 +42,7 @@ class AnalysisTab extends ViewPlugin {
...
@@ -42,7 +42,7 @@ class AnalysisTab extends ViewPlugin {
})
})
this
.
registry
.
put
({
api
:
this
.
staticanalysis
,
name
:
'staticanalysis'
})
this
.
registry
.
put
({
api
:
this
.
staticanalysis
,
name
:
'staticanalysis'
})
return
yo
`<div class="p-3 pb-1" id="staticanalysisView">
${
this
.
staticanalysis
.
render
()}
</div>`
return
yo
`<div class="p
x
-3 pb-1" id="staticanalysisView">
${
this
.
staticanalysis
.
render
()}
</div>`
}
}
}
}
...
...
src/app/tabs/staticanalysis/staticAnalysisView.js
View file @
b69d284d
...
@@ -32,6 +32,7 @@ function staticAnalysisView (localRegistry, analysisModule) {
...
@@ -32,6 +32,7 @@ function staticAnalysisView (localRegistry, analysisModule) {
$
(
'#staticanalysisresult'
).
empty
()
$
(
'#staticanalysisresult'
).
empty
()
if
(
languageVersion
.
indexOf
(
'soljson'
)
!==
0
)
return
if
(
languageVersion
.
indexOf
(
'soljson'
)
!==
0
)
return
self
.
lastCompilationResult
=
data
self
.
lastCompilationResult
=
data
if
(
self
.
view
)
self
.
view
.
querySelector
(
'#staticAnalysisCurrentFile'
).
innerText
=
file
self
.
lastCompilationSource
=
source
self
.
lastCompilationSource
=
source
if
(
self
.
view
.
querySelector
(
'#autorunstaticanalysis'
).
checked
)
{
if
(
self
.
view
.
querySelector
(
'#autorunstaticanalysis'
).
checked
)
{
self
.
run
()
self
.
run
()
...
@@ -40,45 +41,50 @@ function staticAnalysisView (localRegistry, analysisModule) {
...
@@ -40,45 +41,50 @@ function staticAnalysisView (localRegistry, analysisModule) {
}
}
staticAnalysisView
.
prototype
.
render
=
function
()
{
staticAnalysisView
.
prototype
.
render
=
function
()
{
var
self
=
this
this
.
runBtn
=
yo
`<button class="btn btn-sm btn-primary" onclick="
${()
=>
{
this
.
run
()
}}
" >Run</button>`
var
view
=
yo
`
const
view = yo`
<div class="
$
{
css
.
analysis
}
">
<div class="
$
{
css
.
analysis
}
">
<div class="
${
css
.
buttons
}
">
<div class="mb-2 d-flex flex-column align-items-left">
<div class="
${
css
.
buttonsInner
}
">
<div class="mb-2 p-2 alert alert-info">
<button class="
${
css
.
buttonRun
}
btn btn-sm btn-primary" onclick="
${
function
()
{
self
.
run
()
}
}" >Run</button>
<span>For: <span id="staticAnalysisCurrentFile">No file compiled</span></span>
<div class="
${
css
.
label
}
" for="autorunstaticanalysis">
<input id="autorunstaticanalysis"
type="checkbox"
style="vertical-align:bottom"
checked="true"
>
<label class="text-nowrap pl-2 mb-0" for="autorunstaticanalysis">
Auto run
</label>
</div>
<div class="
${
css
.
label
}
" for="checkAllEntries">
<input id="checkAllEntries"
type="checkbox"
onclick="
${
function
(
event
)
{
self
.
checkAll
(
event
)
}
}"
style="vertical-align:bottom"
checked="true"
>
<label class="text-nowrap pl-2 mb-0" for="checkAllEntries">
Check/Uncheck all
</label>
</div>
</div>
</div>
</div>
<div id="staticanalysismodules" class="list-group list-group-flush">
<div class="d-flex justify-content-between">
${
this
.
modulesView
}
${
this
.
runBtn
}
<div class="
${
css
.
label
}
" for="autorunstaticanalysis">
<input id="autorunstaticanalysis"
type="checkbox"
style="vertical-align:bottom"
checked="true"
>
<label class="text-nowrap pl-2 mb-0" for="autorunstaticanalysis">
Auto run
</label>
</div>
<div class="
${
css
.
label
}
" for="checkAllEntries">
<input id="checkAllEntries"
type="checkbox"
onclick="
${(
event
)
=>
{
this
.
checkAll
(
event
)
}}
"
style="
vertical
-
align
:
bottom
"
checked="
true
"
>
<label class="
text
-
nowrap
pl
-
2
mb
-
0
" for="
checkAllEntries
">
Check/Uncheck all
</label>
</div>
</div>
</div>
<div class="
${
css
.
resultTitle
}
mx-2"><h6>Results:</h6></div>
</div>
<div class="
${
css
.
result
}
m-2" id='staticanalysisresult'></div>
<div id="
staticanalysismodules
" class="
list
-
group
list
-
group
-
flush
">
${this.modulesView}
</div>
<div class="
$
{
css
.
resultTitle
}
mx-2"><h6>Results:</h6></div>
<div class="
${
css
.
result
}
my-2" id='staticanalysisresult'></div>
</div>
</div>
`
`
if
(
!
this
.
view
)
{
if
(
!
this
.
view
)
{
this
.
view
=
view
this
.
view
=
view
}
}
this
.
correctRunBtnDisabled
()
return
view
return
view
}
}
...
@@ -86,7 +92,7 @@ staticAnalysisView.prototype.selectedModules = function () {
...
@@ -86,7 +92,7 @@ staticAnalysisView.prototype.selectedModules = function () {
if
(
!
this
.
view
)
{
if
(
!
this
.
view
)
{
return
[]
return
[]
}
}
var
selected
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]:checked'
)
const
selected
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]:checked'
)
var
toRun
=
[]
var
toRun
=
[]
for
(
var
i
=
0
;
i
<
selected
.
length
;
i
++
)
{
for
(
var
i
=
0
;
i
<
selected
.
length
;
i
++
)
{
toRun
.
push
(
selected
[
i
].
attributes
[
'index'
].
value
)
toRun
.
push
(
selected
[
i
].
attributes
[
'index'
].
value
)
...
@@ -98,16 +104,17 @@ staticAnalysisView.prototype.run = function () {
...
@@ -98,16 +104,17 @@ staticAnalysisView.prototype.run = function () {
if
(
!
this
.
view
)
{
if
(
!
this
.
view
)
{
return
return
}
}
var
selected
=
this
.
selectedModules
()
const
selected
=
this
.
selectedModules
()
var
warningContainer
=
$
(
'#staticanalysisresult'
)
const
warningContainer
=
$
(
'#staticanalysisresult'
)
warningContainer
.
empty
()
warningContainer
.
empty
()
var
self
=
this
var
self
=
this
if
(
this
.
lastCompilationResult
&&
selected
.
length
)
{
if
(
this
.
lastCompilationResult
&&
selected
.
length
)
{
var
warningCount
=
0
this
.
runBtn
.
removeAttribute
(
'disabled'
)
let
warningCount
=
0
this
.
runner
.
run
(
this
.
lastCompilationResult
,
selected
,
function
(
results
)
{
this
.
runner
.
run
(
this
.
lastCompilationResult
,
selected
,
function
(
results
)
{
results
.
map
(
function
(
result
,
i
)
{
results
.
map
(
function
(
result
,
i
)
{
result
.
report
.
map
(
function
(
item
,
i
)
{
result
.
report
.
map
(
function
(
item
,
i
)
{
var
location
=
''
let
location
=
''
if
(
item
.
location
)
{
if
(
item
.
location
)
{
var
split
=
item
.
location
.
split
(
':'
)
var
split
=
item
.
location
.
split
(
':'
)
var
file
=
split
[
2
]
var
file
=
split
[
2
]
...
@@ -122,79 +129,87 @@ staticAnalysisView.prototype.run = function () {
...
@@ -122,79 +129,87 @@ staticAnalysisView.prototype.run = function () {
location
=
Object
.
keys
(
self
.
lastCompilationResult
.
contracts
)[
file
]
+
':'
+
(
location
.
start
.
line
+
1
)
+
':'
+
(
location
.
start
.
column
+
1
)
+
':'
location
=
Object
.
keys
(
self
.
lastCompilationResult
.
contracts
)[
file
]
+
':'
+
(
location
.
start
.
line
+
1
)
+
':'
+
(
location
.
start
.
column
+
1
)
+
':'
}
}
warningCount
++
warningCount
++
var
msg
=
yo
`<span>
${
location
}
${
item
.
warning
}
${
item
.
more
?
yo
`<span><br><a href="
${
item
.
more
}
" target="blank">more</a></span>`
:
yo
`<span></span>`
}
</span>`
const
msg
=
yo
`<span>
${
location
}
${
item
.
warning
}
${
item
.
more
?
yo
`<span><br><a href="
${
item
.
more
}
" target="blank">more</a></span>`
:
yo
`<span></span>`
}
</span>`
self
.
_components
.
renderer
.
error
(
msg
,
warningContainer
,
{
type
:
'staticAnalysisWarning alert alert-warning'
,
useSpan
:
true
})
self
.
_components
.
renderer
.
error
(
msg
,
warningContainer
,
{
type
:
'staticAnalysisWarning alert alert-warning'
,
useSpan
:
true
})
})
})
})
})
self
.
event
.
trigger
(
'staticAnaysisWarning'
,
[
warningCount
])
self
.
event
.
trigger
(
'staticAnaysisWarning'
,
[
warningCount
])
})
})
}
else
{
}
else
{
this
.
runBtn
.
setAttribute
(
'disabled'
,
'disabled'
)
if
(
selected
.
length
)
{
if
(
selected
.
length
)
{
warningContainer
.
html
(
'No compiled AST available'
)
warningContainer
.
html
(
'No compiled AST available'
)
}
}
self
.
event
.
trigger
(
'staticAnaysisWarning'
,
[
-
1
])
self
.
event
.
trigger
(
'staticAnaysisWarning'
,
[
-
1
])
}
}
}
}
staticAnalysisView
.
prototype
.
checkModule
=
function
(
event
)
{
staticAnalysisView
.
prototype
.
checkModule
=
function
(
event
)
{
let
selected
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]:checked'
)
const
selected
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]:checked'
)
let
checkAll
=
this
.
view
.
querySelector
(
'[id="checkAllEntries"]'
)
const
checkAll
=
this
.
view
.
querySelector
(
'[id="checkAllEntries"]'
)
this
.
correctRunBtnDisabled
()
if
(
event
.
target
.
checked
)
{
if
(
event
.
target
.
checked
)
{
checkAll
.
checked
=
true
checkAll
.
checked
=
true
}
else
if
(
!
selected
.
length
)
{
}
else
if
(
!
selected
.
length
)
{
checkAll
.
checked
=
false
checkAll
.
checked
=
false
}
}
}
}
staticAnalysisView
.
prototype
.
correctRunBtnDisabled
=
function
()
{
const
selected
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]:checked'
)
if
(
this
.
lastCompilationResult
&&
selected
.
length
!=
0
)
{
this
.
runBtn
.
removeAttribute
(
'disabled'
)
}
else
{
this
.
runBtn
.
setAttribute
(
'disabled'
,
'disabled'
)
}
}
staticAnalysisView
.
prototype
.
checkAll
=
function
(
event
)
{
staticAnalysisView
.
prototype
.
checkAll
=
function
(
event
)
{
if
(
!
this
.
view
)
{
if
(
!
this
.
view
)
{
return
return
}
}
// checks/unchecks all
// checks/unchecks all
var
checkBoxes
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]'
)
const
checkBoxes
=
this
.
view
.
querySelectorAll
(
'[name="staticanalysismodule"]'
)
checkBoxes
.
forEach
((
checkbox
)
=>
{
checkbox
.
checked
=
event
.
target
.
checked
})
checkBoxes
.
forEach
((
checkbox
)
=>
{
checkbox
.
checked
=
event
.
target
.
checked
})
this
.
correctRunBtnDisabled
()
}
}
staticAnalysisView
.
prototype
.
renderModules
=
function
()
{
staticAnalysisView
.
prototype
.
renderModules
=
function
()
{
var
self
=
this
const
groupedModules
=
utils
.
groupBy
(
preProcessModules
(
this
.
runner
.
modules
()),
'categoryId'
)
var
groupedModules
=
utils
.
groupBy
(
preProcessModules
(
self
.
runner
.
modules
()),
'categoryId'
)
const
moduleEntries
=
Object
.
keys
(
groupedModules
).
map
((
categoryId
,
i
)
=>
{
const
moduleEntries
=
Object
.
keys
(
groupedModules
).
map
((
categoryId
,
i
)
=>
{
var
category
=
groupedModules
[
categoryId
]
const
category
=
groupedModules
[
categoryId
]
var
entriesDom
=
category
.
map
((
item
,
i
)
=>
{
const
entriesDom
=
category
.
map
((
item
,
i
)
=>
{
return
yo
`
<div class="form-check">
<input id="staticanalysismodule_
${
categoryId
}
_
${
i
}
"
type="checkbox"
class="form-check-input staticAnalysisItem"
name="staticanalysismodule"
index=
${
item
.
_index
}
checked="true"
style="vertical-align:bottom"
onclick="
${
function
(
event
)
{
self
.
checkModule
(
event
)
}
}"
>
<label for="staticanalysismodule_
${
categoryId
}
_
${
i
}
" class="form-check-label mb-1">
<p class="mb-0 font-weight-bold text-capitalize">
${
item
.
name
}
</p>
${
item
.
description
}
</label>
</div>
`
})
return
yo
`
return
yo
`
<div class="
${
css
.
block
}
">
<div class="form-check">
<input type="radio" name="accordion" class="w-100 d-none card" id="heading
${
categoryId
}
"/>
<input id="staticanalysismodule_
${
categoryId
}
_
${
i
}
"
<label for="heading
${
categoryId
}
" style="cursor: pointer;" class="h6 card-header font-weight-bold border-bottom px-1 py-2 w-100">
type="checkbox"
<span>
${
category
[
0
].
categoryDisplayName
}
</span>
class="form-check-input staticAnalysisItem"
</label>
name="staticanalysismodule"
<div class="w-100 d-block px-2 py-1
${
css
.
entries
}
">
index=
${
item
.
_index
}
${
entriesDom
}
checked="true"
</div>
style="vertical-align:bottom"
</>
onclick="
${(
event
)
=>
this
.
checkModule
(
event
)
}
"
>
<label for="staticanalysismodule_
${
categoryId
}
_
${
i
}
" class="form-check-label mb-1">
<p class="mb-0 font-weight-bold text-capitalize">
${
item
.
name
}
</p>
${
item
.
description
}
</label>
</div>
`
`
})
})
return
yo
`
return
yo
`
<div class="accordion" id="accordionModules">
<div class="
${
css
.
block
}
">
${
moduleEntries
}
<input type="radio" name="accordion" class="w-100 d-none card" id="heading
${
categoryId
}
"/>
</div>`
<label for="heading
${
categoryId
}
" style="cursor: pointer;" class="h6 card-header font-weight-bold border-bottom px-1 py-2 w-100">
<span>
${
category
[
0
].
categoryDisplayName
}
</span>
</label>
<div class="w-100 d-block px-2 py-1
${
css
.
entries
}
">
${
entriesDom
}
</div>
</>
`
})
return
yo
`
<div class="accordion" id="accordionModules">
${
moduleEntries
}
</div>`
}
}
module
.
exports
=
staticAnalysisView
module
.
exports
=
staticAnalysisView
...
...
src/app/tabs/staticanalysis/styles/staticAnalysisView-styles.js
View file @
b69d284d
...
@@ -21,9 +21,6 @@ var css = csjs`
...
@@ -21,9 +21,6 @@ var css = csjs`
align-items: center;
align-items: center;
justify-content: space-around;
justify-content: space-around;
}
}
.buttonRun {
margin-right: 1%;
}
.label {
.label {
display: flex;
display: flex;
align-items: center;
align-items: center;
...
...
src/app/tabs/styles/test-tab-styles.js
View file @
b69d284d
...
@@ -39,11 +39,6 @@ var css = csjs`
...
@@ -39,11 +39,6 @@ var css = csjs`
}
}
.testFailureSummary {
.testFailureSummary {
}
}
.buttons {
margin: 5%;
display: flex;
align-items: center;
}
.title {
.title {
font-size: 1.1em;
font-size: 1.1em;
font-weight: bold;
font-weight: bold;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment