update index when adding/deleting nodes/states
This commit is contained in:
parent
209d9a2763
commit
4524661fee
@ -116,10 +116,14 @@ body {
|
|||||||
/* background-color: rgb(120, 120, 120); */
|
/* background-color: rgb(120, 120, 120); */
|
||||||
}
|
}
|
||||||
|
|
||||||
#search-container .search-button svg {
|
#search-container .search-button .search-icon-lightmode {
|
||||||
stroke: rgb(117, 117, 117);
|
stroke: rgb(117, 117, 117);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#search-container .search-button .search-icon-darkmode {
|
||||||
|
stroke: rgb(138, 138, 138);
|
||||||
|
}
|
||||||
|
|
||||||
#search-results {
|
#search-results {
|
||||||
width: 400px;
|
width: 400px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@ -133,6 +137,7 @@ body {
|
|||||||
#search-result-list {
|
#search-result-list {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
padding: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#search-result-list div {
|
#search-result-list div {
|
||||||
|
|||||||
@ -129,9 +129,9 @@
|
|||||||
<div id="search-container">
|
<div id="search-container">
|
||||||
<input id="search-input" type="text" placeholder="Search" onclick="showSearchResults()" oninput="search(this.value)">
|
<input id="search-input" type="text" placeholder="Search" onclick="showSearchResults()" oninput="search(this.value)">
|
||||||
<span class="search-button">
|
<span class="search-button">
|
||||||
<svg height="18" width="18" xmlns="http://www.w3.org/2000/svg">
|
<svg id="search-icon" class="search-icon-lightmode" height="18" width="18" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="11" cy="7" r="6" stroke-width="2" fill="none" />
|
<circle cx="11" cy="7" r="6" stroke-width="2" fill="none" />
|
||||||
<polyline points="8,10 2,16" style="fill:none;stroke-width:2" stroke-linecap="round" />
|
<polyline points="6,12 2,16" style="fill:none;stroke-width:2" stroke-linecap="round" />
|
||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
15
editor.js
15
editor.js
@ -3,7 +3,6 @@ var darkMode = false;
|
|||||||
|
|
||||||
function toggleTheme() {
|
function toggleTheme() {
|
||||||
darkMode = !darkMode;
|
darkMode = !darkMode;
|
||||||
console.log('dark mode', darkMode);
|
|
||||||
|
|
||||||
var menus = [mainMenu, sidePanel, filePanel];
|
var menus = [mainMenu, sidePanel, filePanel];
|
||||||
Array.from(document.getElementsByClassName('menuitem')).forEach(item =>
|
Array.from(document.getElementsByClassName('menuitem')).forEach(item =>
|
||||||
@ -23,6 +22,8 @@ function toggleTheme() {
|
|||||||
document.getElementById('sidecontentnode')
|
document.getElementById('sidecontentnode')
|
||||||
];
|
];
|
||||||
|
|
||||||
|
var searchIcon = document.getElementById('search-icon');
|
||||||
|
|
||||||
if (darkMode) {
|
if (darkMode) {
|
||||||
menus.forEach(target => {
|
menus.forEach(target => {
|
||||||
target.classList.add('menu-darkmode');
|
target.classList.add('menu-darkmode');
|
||||||
@ -32,6 +33,8 @@ function toggleTheme() {
|
|||||||
hint.classList.add('contenttype-darkmode');
|
hint.classList.add('contenttype-darkmode');
|
||||||
hint.classList.remove('contenttype-lightmode');
|
hint.classList.remove('contenttype-lightmode');
|
||||||
});
|
});
|
||||||
|
searchIcon.classList.add('search-icon-darkmode');
|
||||||
|
searchIcon.classList.remove('search-icon-lightmode');
|
||||||
wfGraph.backgroundColor('black');
|
wfGraph.backgroundColor('black');
|
||||||
} else {
|
} else {
|
||||||
menus.forEach(target => {
|
menus.forEach(target => {
|
||||||
@ -42,6 +45,8 @@ function toggleTheme() {
|
|||||||
hint.classList.add('contenttype-lightmode');
|
hint.classList.add('contenttype-lightmode');
|
||||||
hint.classList.remove('contenttype-darkmode');
|
hint.classList.remove('contenttype-darkmode');
|
||||||
});
|
});
|
||||||
|
searchIcon.classList.add('search-icon-lightmode');
|
||||||
|
searchIcon.classList.remove('search-icon-darkmode');
|
||||||
wfGraph.backgroundColor('white');
|
wfGraph.backgroundColor('white');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,7 +194,8 @@ function search(text) {
|
|||||||
defineFocus(r, target);
|
defineFocus(r, target);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
searchResultList.style.maxHeight = parseFloat(searchResults.style.maxHeight) - searchOptions.offsetHeight - 60;
|
||||||
|
// console.log('maxh', searchResults.style.maxHeight - searchOptions.offsetHeight)
|
||||||
stateResults && format(workflow.states, stateResults, 'States');
|
stateResults && format(workflow.states, stateResults, 'States');
|
||||||
actionResults && format(workflow.actions, actionResults, 'Edges');
|
actionResults && format(workflow.actions, actionResults, 'Edges');
|
||||||
positionSubmenuBackdrop();
|
positionSubmenuBackdrop();
|
||||||
@ -384,6 +390,7 @@ const contextMenuEd = document.getElementById('ctmenued'); //Click on edge
|
|||||||
const searchContainer = document.getElementById('search-container');
|
const searchContainer = document.getElementById('search-container');
|
||||||
const searchResults = document.getElementById('search-results');
|
const searchResults = document.getElementById('search-results');
|
||||||
const searchResultList = document.getElementById('search-result-list');
|
const searchResultList = document.getElementById('search-result-list');
|
||||||
|
const searchOptions = document.getElementById('search-options')
|
||||||
// Counters for placeholder IDs of states/actions added via GUI
|
// Counters for placeholder IDs of states/actions added via GUI
|
||||||
var stateIdCounter = 0;
|
var stateIdCounter = 0;
|
||||||
var actionIdCounter = 0;
|
var actionIdCounter = 0;
|
||||||
@ -458,6 +465,7 @@ function addState() {
|
|||||||
workflow.states.push(state);
|
workflow.states.push(state);
|
||||||
updateGraph();
|
updateGraph();
|
||||||
select(state);
|
select(state);
|
||||||
|
nodeIndex.add(state.id, state.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -473,6 +481,7 @@ function connect(source, target) {
|
|||||||
workflow.actions.push(action);
|
workflow.actions.push(action);
|
||||||
updateGraph();
|
updateGraph();
|
||||||
select(action);
|
select(action);
|
||||||
|
actionIndex.add(action.id, action.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
function markEdgeTo() {
|
function markEdgeTo() {
|
||||||
@ -546,6 +555,7 @@ function generatePanelContent(selection) {
|
|||||||
*/
|
*/
|
||||||
function removeAction(action) {
|
function removeAction(action) {
|
||||||
workflow.actions.splice(workflow.actions.indexOf(action), 1);
|
workflow.actions.splice(workflow.actions.indexOf(action), 1);
|
||||||
|
actionIndex.remove(action.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -560,6 +570,7 @@ function removeState(state) {
|
|||||||
workflow.states.splice(workflow.states.indexOf(state), 1);
|
workflow.states.splice(workflow.states.indexOf(state), 1);
|
||||||
var abbreviation = state.stateData && state.stateData.abbreviation;
|
var abbreviation = state.stateData && state.stateData.abbreviation;
|
||||||
abbreviation && stateAbbreviations.splice(stateAbbreviations.indexOf(abbreviation), 1);
|
abbreviation && stateAbbreviations.splice(stateAbbreviations.indexOf(abbreviation), 1);
|
||||||
|
nodeIndex.remove(state.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
var selfLoops = {}; // All edges whose targets equal their sources.
|
var selfLoops = {}; // All edges whose targets equal their sources.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user