Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
clinicaltrials
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
david Chavalarias
clinicaltrials
Commits
846d1d9f
Commit
846d1d9f
authored
Jun 06, 2017
by
Romain Loth
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
simplify fulltext searchinput handler and fix small bug with previous selections union
parent
b9c0efe3
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
92 deletions
+10
-92
Tinaweb.js
tinawebJS/Tinaweb.js
+6
-90
sigmaUtils.js
tinawebJS/sigmaUtils.js
+4
-2
No files found.
tinawebJS/Tinaweb.js
View file @
846d1d9f
...
@@ -70,7 +70,8 @@ function SelectionEngine() {
...
@@ -70,7 +70,8 @@ function SelectionEngine() {
// we assume string is normalized
// we assume string is normalized
this
.
search_n_select
=
function
(
string
)
{
this
.
search_n_select
=
function
(
string
)
{
// alert("search is happening !")
let
previousSelections
=
selections
cancelSelection
(
false
,
{
norender
:
true
});
cancelSelection
(
false
,
{
norender
:
true
});
if
(
typeof
string
!=
"string"
)
{
if
(
typeof
string
!=
"string"
)
{
...
@@ -90,7 +91,7 @@ function SelectionEngine() {
...
@@ -90,7 +91,7 @@ function SelectionEngine() {
}
}
var
targeted
=
this
.
SelectorEngine
(
{
var
targeted
=
this
.
SelectorEngine
(
{
addvalue
:
TW
.
gui
.
checkBox
,
addvalue
:
TW
.
gui
.
checkBox
,
prevsels
:
s
elections
,
prevsels
:
previousS
elections
,
currsels
:
coincd
currsels
:
coincd
}
)
}
)
...
@@ -550,20 +551,7 @@ var TinaWebJS = function ( sigmacanvas ) {
...
@@ -550,20 +551,7 @@ var TinaWebJS = function ( sigmacanvas ) {
// ----------------------->8---------------------
// ----------------------->8---------------------
});
});
// is_open flag for keydown choice
// Search by click on the search button, independently from autocomplete
$
(
'#searchinput'
).
bind
(
'autocompleteopen'
,
function
(
event
,
ui
)
{
$
(
this
).
data
(
'is_open'
,
true
);
});
$
(
'#searchinput'
).
bind
(
'autocompleteclose'
,
function
(
event
,
ui
)
{
$
(
this
).
data
(
'is_open'
,
false
);
});
// default search value now handled through input/@placeholder
// $("#searchinput").focus(function () { });
// $("#searchinput").blur(function () { });
// i click on the search button, independently from autocomplete
$
(
"#searchbutton"
).
click
(
function
()
{
$
(
"#searchbutton"
).
click
(
function
()
{
var
query
=
normalizeString
(
$
(
"#searchinput"
).
val
())
var
query
=
normalizeString
(
$
(
"#searchinput"
).
val
())
// console.log('===\nyour query was: "'+query+'"');
// console.log('===\nyour query was: "'+query+'"');
...
@@ -577,85 +565,13 @@ var TinaWebJS = function ( sigmacanvas ) {
...
@@ -577,85 +565,13 @@ var TinaWebJS = function ( sigmacanvas ) {
// ------------------------------------------------
// ------------------------------------------------
});
});
// Search by pressing ENTER, independently from autocomplete
// i've a list of coincidences and i press enter like a boss >:D
// external usage: partialGraph, SelectorEngine() , MultipleSelection2()
$
(
"#searchinput"
).
keydown
(
function
(
e
)
{
$
(
"#searchinput"
).
keydown
(
function
(
e
)
{
if
(
e
.
keyCode
==
13
&&
$
(
"input#searchinput"
).
data
(
'is_open'
)
===
true
)
{
if
(
e
.
keyCode
==
13
)
{
// Search has several results and you pressed ENTER
if
(
!
is_empty
(
matches
))
{
var
coincidences
=
[]
for
(
j
=
0
;
j
<
matches
.
length
;
j
++
){
coincidences
.
push
(
matches
[
j
].
id
)
}
setTimeout
(
function
(){
targeted
=
selInst
.
SelectorEngine
(
{
addvalue
:
TW
.
gui
.
checkBox
,
clicktype
:
"double"
,
prevsels
:
selections
,
currsels
:
coincidences
}
)
// tricky stuff for simulating a multiple selection D:
// ... to be improved in the future ...
var
prev_cursor_size
=
TW
.
gui
.
circleSize
;
if
(
targeted
.
length
>
0
)
{
TW
.
gui
.
circleSize
=
(
TW
.
gui
.
circleSize
==
0
)?
1
:
TW
.
gui
.
circleSize
;
cancelSelection
(
false
);
this
.
selInst
.
MultipleSelection2
({
nodes
:
targeted
});
TW
.
gui
.
circleSize
=
prev_cursor_size
;
}
$
(
"input#searchinput"
).
val
(
""
);
$
(
"input#searchinput"
).
autocomplete
(
"close"
);
},
30
)
//$("input#searchinput").trigger('autocompleteclose');
}
// alert("matches[].id\n" + JSON.stringify(matches.map(function(n) {return n.id})))
}
else
if
(
e
.
keyCode
==
13
&&
$
(
"input#searchinput"
).
data
(
'is_open'
)
!==
true
)
{
// pressed down [ENTER] but with no autocomplete
// it really means "do search_and_select()"
// (but we know the results will be empty)
// (we still do it for the side effects: events, cleaning)
var
query
=
normalizeString
(
$
(
"#searchinput"
).
val
())
var
query
=
normalizeString
(
$
(
"#searchinput"
).
val
())
selInst
.
search_n_select
(
query
)
selInst
.
search_n_select
(
query
)
}
}
});
});
// i was navigating (with the up|down) sur the coincidences-list and i pressed enter!
// external usage: partialGraph, SelectorEngine() , MultipleSelection2()
$
(
"#searchinput"
).
keyup
(
function
(
e
)
{
if
(
e
.
keyCode
==
13
&&
$
(
"input#searchinput"
).
data
(
'is_open'
)
!==
true
)
{
var
targeted
=
[]
;
var
exfnd
=
exactfind
(
$
(
"#searchinput"
).
val
()
)
if
(
exfnd
!=
null
)
{
console
.
log
(
"search KEY UP"
);
setTimeout
(
function
()
{
targeted
=
selInst
.
SelectorEngine
(
{
addvalue
:
TW
.
gui
.
checkBox
,
clicktype
:
"double"
,
prevsels
:
selections
,
currsels
:[
exfnd
.
id
]
}
)
if
(
targeted
.
length
>
0
)
{
cancelSelection
(
false
);
selInst
.
MultipleSelection2
({
nodes
:
targeted
});
}
$
(
"input#searchinput"
).
val
(
""
);
$
(
"input#searchinput"
).
autocomplete
(
"close"
);
},
30
)
}
}
});
}
}
// to init handlers for tina GUI environment (run once on page load)
// to init handlers for tina GUI environment (run once on page load)
...
...
tinawebJS/sigmaUtils.js
View file @
846d1d9f
...
@@ -648,7 +648,7 @@ function getNodesByAtt(att) {
...
@@ -648,7 +648,7 @@ function getNodesByAtt(att) {
});
});
}
}
//
new sigma.js
//
fulltext search handler for #searchinput
function
find
(
lquery
){
function
find
(
lquery
){
var
results
=
[];
var
results
=
[];
if
(
typeof
lquery
==
'string'
&&
lquery
.
length
>
0
)
{
if
(
typeof
lquery
==
'string'
&&
lquery
.
length
>
0
)
{
...
@@ -659,7 +659,9 @@ function find(lquery){
...
@@ -659,7 +659,9 @@ function find(lquery){
var
n
=
nds
[
i
];
var
n
=
nds
[
i
];
if
(
!
n
.
hidden
){
if
(
!
n
.
hidden
){
var
possiblematch
=
n
.
label
.
toLowerCase
()
var
possiblematch
=
n
.
label
.
toLowerCase
()
// string.indexOf(substring) faster than search/match
// ------------------
// substring search
// ------------------
if
(
possiblematch
.
indexOf
(
lquery
)
!==-
1
)
{
if
(
possiblematch
.
indexOf
(
lquery
)
!==-
1
)
{
results
.
push
(
n
);
results
.
push
(
n
);
}
}
...
...
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