* ability to select/unselect all metacodes in custom set with keyboard shortcut * select all button * nicer all/none buttons
This commit is contained in:
parent
529dec09a3
commit
a6c1c0c730
4 changed files with 92 additions and 26 deletions
|
@ -2311,6 +2311,9 @@ and it won't be important on password protected instances */
|
||||||
}
|
}
|
||||||
/* switch metacode set */
|
/* switch metacode set */
|
||||||
|
|
||||||
|
#switchMetacodes > p {
|
||||||
|
margin: 16px 0 16px 0;
|
||||||
|
}
|
||||||
#metacodeSwitchTabs {
|
#metacodeSwitchTabs {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-size: 17px;
|
font-size: 17px;
|
||||||
|
@ -2318,28 +2321,43 @@ and it won't be important on password protected instances */
|
||||||
border: none;
|
border: none;
|
||||||
background: none;
|
background: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
|
||||||
#metacodeSwitchTabs .setDesc {
|
.setDesc,
|
||||||
|
.selectAll,
|
||||||
|
.selectNone {
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
font-family: 'din-medium', helvetica, sans-serif;
|
font-family: 'din-medium', helvetica, sans-serif;
|
||||||
color: #424242;
|
color: #424242;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
text-align: justify;
|
text-align: justify;
|
||||||
padding-right: 16px;
|
padding-right: 16px;
|
||||||
}
|
display: inline-block;
|
||||||
#switchMetacodes > p {
|
}
|
||||||
margin: 16px 0 16px 0;
|
|
||||||
}
|
.selectAll,
|
||||||
#metacodeSwitchTabs > ul {
|
.selectNone {
|
||||||
|
float: right;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover,
|
||||||
|
&.selected {
|
||||||
|
color: #00bcd4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
& > ul {
|
||||||
width: 130px;
|
width: 130px;
|
||||||
}
|
|
||||||
#metacodeSwitchTabs > ul li {
|
li {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
#metacodeSwitchTabs li.ui-state-active a {
|
}
|
||||||
|
|
||||||
|
li.ui-state-active a {
|
||||||
color: #00BCD4;
|
color: #00BCD4;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.metacodeSwitchTab {
|
.metacodeSwitchTab {
|
||||||
max-height: 300px;
|
max-height: 300px;
|
||||||
|
|
|
@ -91,7 +91,9 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<div id="metacodeSwitchTabsCustom">
|
<div id="metacodeSwitchTabsCustom">
|
||||||
<p class="setDesc">Choose Your Metacodes</p>
|
<div class="setDesc">Choose Your Metacodes</div>
|
||||||
|
<div class="selectNone">NONE</div>
|
||||||
|
<div class="selectAll">ALL</div>
|
||||||
<% @list = '' %>
|
<% @list = '' %>
|
||||||
<% metacodesInUse = user_metacodes() %>
|
<% metacodesInUse = user_metacodes() %>
|
||||||
<% Metacode.order("name").all.each_with_index do |m, index| %>
|
<% Metacode.order("name").all.each_with_index do |m, index| %>
|
||||||
|
|
|
@ -28,6 +28,8 @@ const Create = {
|
||||||
}).addClass('ui-tabs-vertical ui-helper-clearfix')
|
}).addClass('ui-tabs-vertical ui-helper-clearfix')
|
||||||
$('#metacodeSwitchTabs .ui-tabs-nav li').removeClass('ui-corner-top').addClass('ui-corner-left')
|
$('#metacodeSwitchTabs .ui-tabs-nav li').removeClass('ui-corner-top').addClass('ui-corner-left')
|
||||||
$('.customMetacodeList li').click(self.toggleMetacodeSelected) // within the custom metacode set tab
|
$('.customMetacodeList li').click(self.toggleMetacodeSelected) // within the custom metacode set tab
|
||||||
|
$('.selectAll').click(self.metacodeSelectorSelectAll)
|
||||||
|
$('.selectNone').click(self.metacodeSelectorSelectNone)
|
||||||
},
|
},
|
||||||
toggleMetacodeSelected: function() {
|
toggleMetacodeSelected: function() {
|
||||||
var self = Create
|
var self = Create
|
||||||
|
@ -43,6 +45,46 @@ const Create = {
|
||||||
self.newSelectedMetacodes.push($(this).attr('id'))
|
self.newSelectedMetacodes.push($(this).attr('id'))
|
||||||
self.newSelectedMetacodeNames.push($(this).attr('data-name'))
|
self.newSelectedMetacodeNames.push($(this).attr('data-name'))
|
||||||
}
|
}
|
||||||
|
self.updateSelectAllColors()
|
||||||
|
},
|
||||||
|
updateSelectAllColors: function() {
|
||||||
|
$('.selectAll, .selectNone').removeClass('selected')
|
||||||
|
if (Create.metacodeSelectorAreAllSelected()) {
|
||||||
|
$('.selectAll').addClass('selected')
|
||||||
|
} else if (Create.metacodeSelectorAreNoneSelected()) {
|
||||||
|
$('.selectNone').addClass('selected')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
metacodeSelectorSelectAll: function() {
|
||||||
|
$('.customMetacodeList li.toggledOff').each(Create.toggleMetacodeSelected)
|
||||||
|
Create.updateSelectAllColors()
|
||||||
|
},
|
||||||
|
metacodeSelectorSelectNone: function() {
|
||||||
|
$('.customMetacodeList li').not('.toggledOff').each(Create.toggleMetacodeSelected)
|
||||||
|
Create.updateSelectAllColors()
|
||||||
|
},
|
||||||
|
metacodeSelectorAreAllSelected: function() {
|
||||||
|
return $('.customMetacodeList li').toArray()
|
||||||
|
.map(li => !$(li).is('.toggledOff')) // note the ! on this line
|
||||||
|
.reduce((curr, prev) => curr && prev)
|
||||||
|
},
|
||||||
|
metacodeSelectorAreNoneSelected: function() {
|
||||||
|
return $('.customMetacodeList li').toArray()
|
||||||
|
.map(li => $(li).is('.toggledOff'))
|
||||||
|
.reduce((curr, prev) => curr && prev)
|
||||||
|
},
|
||||||
|
metacodeSelectorToggleSelectAll: function() {
|
||||||
|
// should be called when Create.isSwitchingSet is true and .customMetacodeList is visible
|
||||||
|
if (!Create.isSwitchingSet) return
|
||||||
|
if (!$('.customMetacodeList').is(':visible')) return
|
||||||
|
|
||||||
|
// If all are selected, then select none. Otherwise, select all.
|
||||||
|
if (Create.metacodeSelectorAreAllSelected()) {
|
||||||
|
Create.metacodeSelectorSelectNone()
|
||||||
|
} else {
|
||||||
|
// if some, but not all, are selected, it still runs this function
|
||||||
|
Create.metacodeSelectorSelectAll()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
updateMetacodeSet: function(set, index, custom) {
|
updateMetacodeSet: function(set, index, custom) {
|
||||||
if (custom && Create.newSelectedMetacodes.length === 0) {
|
if (custom && Create.newSelectedMetacodes.length === 0) {
|
||||||
|
@ -114,7 +156,6 @@ const Create = {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
cancelMetacodeSetSwitch: function() {
|
cancelMetacodeSetSwitch: function() {
|
||||||
var self = Create
|
var self = Create
|
||||||
self.isSwitchingSet = false
|
self.isSwitchingSet = false
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* global $ */
|
/* global $ */
|
||||||
|
|
||||||
import Active from './Active'
|
import Active from './Active'
|
||||||
|
import Create from './Create'
|
||||||
import Control from './Control'
|
import Control from './Control'
|
||||||
import DataModel from './DataModel'
|
import DataModel from './DataModel'
|
||||||
import JIT from './JIT'
|
import JIT from './JIT'
|
||||||
|
@ -35,7 +36,11 @@ const Listeners = {
|
||||||
Control.deleteSelected()
|
Control.deleteSelected()
|
||||||
break
|
break
|
||||||
case 65: // if a or A is pressed
|
case 65: // if a or A is pressed
|
||||||
if ((e.ctrlKey || e.metaKey) && onCanvas) {
|
if (Create.isSwitchingSet && e.ctrlKey || e.metaKey) {
|
||||||
|
Create.metacodeSelectorToggleSelectAll()
|
||||||
|
e.preventDefault()
|
||||||
|
break
|
||||||
|
} else if ((e.ctrlKey || e.metaKey) && onCanvas) {
|
||||||
const nodesCount = Object.keys(Visualize.mGraph.graph.nodes).length
|
const nodesCount = Object.keys(Visualize.mGraph.graph.nodes).length
|
||||||
const selectedNodesCount = Selected.Nodes.length
|
const selectedNodesCount = Selected.Nodes.length
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
Loading…
Add table
Reference in a new issue