Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
gargantext
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
humanities
gargantext
Commits
fa91f690
Commit
fa91f690
authored
Jan 27, 2016
by
Romain Loth
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[FIX] ngram groups: shorter json and better comments in terms table view
parent
5d3b6644
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
71 additions
and
48 deletions
+71
-48
ngrams.py
rest_v1_0/ngrams.py
+14
-6
NGrams_dyna_chart_and_table.js
static/js/NGrams_dyna_chart_and_table.js
+57
-42
No files found.
rest_v1_0/ngrams.py
View file @
fa91f690
...
@@ -399,12 +399,20 @@ class Group(APIView):
...
@@ -399,12 +399,20 @@ class Group(APIView):
max_deg
=
-
1
max_deg
=
-
1
mainNode
=
-
1
mainNode
=
-
1
mainNode_sinonims
=
[]
mainNode_sinonims
=
[]
for
node
in
clique
:
groups
[
"nodes"
][
node
]
=
False
if
len
(
clique
)
>
1
:
node_outdeg
=
DG
.
out_degree
(
node
)
for
node
in
clique
:
if
node_outdeg
>
max_deg
:
# just a lookup hash with *both*
max_deg
=
node_outdeg
# the mainNode and the subnodes
mainNode
=
node
groups
[
"nodes"
][
node
]
=
False
# choosing mainNode
node_outdeg
=
DG
.
out_degree
(
node
)
if
node_outdeg
>
max_deg
:
max_deg
=
node_outdeg
mainNode
=
node
# the links themselves main => [subs]
for
node
in
clique
:
for
node
in
clique
:
if
mainNode
!=
node
:
if
mainNode
!=
node
:
mainNode_sinonims
.
append
(
node
)
mainNode_sinonims
.
append
(
node
)
...
...
static/js/NGrams_dyna_chart_and_table.js
View file @
fa91f690
...
@@ -494,18 +494,18 @@ function add2group ( elem ) {
...
@@ -494,18 +494,18 @@ function add2group ( elem ) {
function
clickngram_action
(
elem
)
{
function
clickngram_action
(
elem
)
{
// local id
// local id
var
elem_id
=
$
(
elem
).
data
(
"stuff"
)
;
var
elem_id
=
$
(
elem
).
data
(
"stuff"
)
;
console
.
log
(
"click: state before: "
+
AjaxRecords
[
elem_id
].
state
)
;
//
console.log("click: state before: "+ AjaxRecords[elem_id].state) ;
// cycle the statuses (omitting status 3 = group)
// cycle the statuses (omitting status 3 = group)
AjaxRecords
[
elem_id
].
state
=
(
AjaxRecords
[
elem_id
].
state
==
(
System
[
0
][
"states"
].
length
-
2
))?
0
:(
AjaxRecords
[
elem_id
].
state
+
1
);
AjaxRecords
[
elem_id
].
state
=
(
AjaxRecords
[
elem_id
].
state
==
(
System
[
0
][
"states"
].
length
-
2
))?
0
:(
AjaxRecords
[
elem_id
].
state
+
1
);
// State <=> term color <=> checked colums
// State <=> term color <=> checked colums
console
.
log
(
"
\n\n
RECORD visible on click --- "
+
JSON
.
stringify
(
AjaxRecords
[
elem_id
]))
;
//
console.log("\n\nRECORD visible on click --- " + JSON.stringify(AjaxRecords[elem_id])) ;
var
ngramId
=
AjaxRecords
[
elem_id
].
id
;
var
ngramId
=
AjaxRecords
[
elem_id
].
id
;
console
.
log
(
"click: state after: "
+
AjaxRecords
[
elem_id
].
state
)
;
//
console.log("click: state after: "+ AjaxRecords[elem_id].state) ;
MyTable
.
data
(
'dynatable'
).
dom
.
update
();
MyTable
.
data
(
'dynatable'
).
dom
.
update
();
}
}
...
@@ -546,13 +546,13 @@ function transformContent(rec_id) {
...
@@ -546,13 +546,13 @@ function transformContent(rec_id) {
}
}
}
}
// uncomment if column tableId
// uncomment if column tableId
(here and in Main_test)
// result['rec_id'] = rec_id ;
// result['rec_id'] = rec_id ;
// uncomment if column ngramId
// uncomment if column ngramId
(here and in Main_test)
// result["ngramId"] = ngram_info["id"] ;
// result["ngramId"] = ngram_info["id"] ;
// uncomment if column state
// uncomment if column state
(here and in Main_test)
// result["state"] = AjaxRecords[rec_id].state
// result["state"] = AjaxRecords[rec_id].state
// -------------------------------------------
// -------------------------------------------
...
@@ -700,11 +700,11 @@ function SelectAll(boxType, boxElem) {
...
@@ -700,11 +700,11 @@ function SelectAll(boxType, boxElem) {
// did we already buffer original states ?
// did we already buffer original states ?
var
columnBufferExists
=
null
;
var
columnBufferExists
=
null
;
console
.
log
(
"-------------INCOMING----------------"
)
//
console.log("-------------INCOMING----------------")
console
.
log
(
boxElem
.
id
)
//
console.log(boxElem.id)
console
.
log
(
"check:"
+
$
(
boxElem
).
prop
(
"checked"
))
//
console.log("check:" + $(boxElem).prop("checked"))
console
.
log
(
"indet:"
+
$
(
boxElem
).
prop
(
'indeterminate'
))
//
console.log("indet:" + $(boxElem).prop('indeterminate'))
console
.
log
(
"data:"
+
previousColumnSelection
)
//
console.log("data:" + previousColumnSelection)
// toggle column ALL => NONE => SOME => again
// toggle column ALL => NONE => SOME => again
...
@@ -779,7 +779,7 @@ function SelectAll(boxType, boxElem) {
...
@@ -779,7 +779,7 @@ function SelectAll(boxType, boxElem) {
// and anyway the other box can't stay checked
// and anyway the other box can't stay checked
$
(
'#'
+
otherBoxId
).
prop
(
'checked'
,
false
);
$
(
'#'
+
otherBoxId
).
prop
(
'checked'
,
false
);
console
.
log
(
"data became:"
+
newColumnSelection
)
//
console.log("data became:" + newColumnSelection)
$
(
"tbody tr"
).
each
(
function
(
i
,
row
)
{
$
(
"tbody tr"
).
each
(
function
(
i
,
row
)
{
var
rec_id
=
$
(
row
).
data
(
'stuff'
);
// ids for old state system
var
rec_id
=
$
(
row
).
data
(
'stuff'
);
// ids for old state system
...
@@ -842,9 +842,9 @@ function SaveLocalChanges() {
...
@@ -842,9 +842,9 @@ function SaveLocalChanges() {
}
}
}
}
// [ = = = = For deleting subforms = = = = ]
// [ = = = = For deleting subforms = = = = ]
// see TODO Prevent empty Ngram["group"]["links"]
for
(
var
i
in
NGrams
[
"group"
].
links
)
{
for
(
var
i
in
NGrams
[
"group"
].
links
)
{
// i is ngram_id of a group mainNode
if
(
FlagsBuffer
[
"delete"
][
i
])
{
if
(
FlagsBuffer
[
"delete"
][
i
])
{
for
(
var
j
in
NGrams
[
"group"
].
links
[
i
]
)
{
for
(
var
j
in
NGrams
[
"group"
].
links
[
i
]
)
{
FlagsBuffer
[
"delete"
][
NGrams
[
"group"
].
links
[
i
][
j
]]
=
true
FlagsBuffer
[
"delete"
][
NGrams
[
"group"
].
links
[
i
][
j
]]
=
true
...
@@ -1019,13 +1019,13 @@ function Main_test( data , initial , search_filter) {
...
@@ -1019,13 +1019,13 @@ function Main_test( data , initial , search_filter) {
// Any <th> defined here will end up in the 'columns' arg of ulWriter
// Any <th> defined here will end up in the 'columns' arg of ulWriter
// ------------------------------------------------------------------
// ------------------------------------------------------------------
// uncomment for column tableId
// uncomment for column tableId
(here and in transformContent)
// div_table += "\t"+"\t"+'<th data-dynatable-column="rec_id" style="background-color:grey">local id</th>'+"\n";
// div_table += "\t"+"\t"+'<th data-dynatable-column="rec_id" style="background-color:grey">local id</th>'+"\n";
// uncomment for column ngramId
// uncomment for column ngramId
(here and in transformContent - l553)
// div_table += "\t"+"\t"+'<th data-dynatable-column="ngramId" style="background-color:grey">ngramId</th>'+"\n";
// div_table += "\t"+"\t"+'<th data-dynatable-column="ngramId" style="background-color:grey">ngramId</th>'+"\n";
// uncomment for column stateId
// uncomment for column stateId
(here and in transformContent)
// div_table += "\t"+"\t"+'<th data-dynatable-column="state" style="background-color:grey">State</th>'+"\n" ;
// div_table += "\t"+"\t"+'<th data-dynatable-column="state" style="background-color:grey">State</th>'+"\n" ;
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="name">Terms</th>'
+
"
\n
"
;
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="name">Terms</th>'
+
"
\n
"
;
...
@@ -1202,7 +1202,7 @@ function Main_test( data , initial , search_filter) {
...
@@ -1202,7 +1202,7 @@ function Main_test( data , initial , search_filter) {
.
renderlet
(
function
(
chart
)
{
.
renderlet
(
function
(
chart
)
{
chart
.
select
(
"g.y"
).
style
(
"display"
,
"none"
);
chart
.
select
(
"g.y"
).
style
(
"display"
,
"none"
);
LineChart
.
filter
(
chart
.
filter
());
LineChart
.
filter
(
chart
.
filter
());
console
.
log
(
"lalaal moveChart.focus(chartfilt);"
)
//
console.log("lalaal moveChart.focus(chartfilt);")
})
})
.
on
(
"filtered"
,
function
(
chart
)
{
.
on
(
"filtered"
,
function
(
chart
)
{
dc
.
events
.
trigger
(
function
()
{
dc
.
events
.
trigger
(
function
()
{
...
@@ -1429,10 +1429,6 @@ GET_( url[0] , function(result) {
...
@@ -1429,10 +1429,6 @@ GET_( url[0] , function(result) {
GET_
(
url
[
2
]
,
function
(
result
)
{
GET_
(
url
[
2
]
,
function
(
result
)
{
// = = = = GROUP = = = = //
// = = = = GROUP = = = = //
if
(
result
!=
false
)
{
if
(
result
!=
false
)
{
// TODO Prevent empty NGrams["group"]["links"]
// "group":{"links":{"119":[],"449":[],"674":[]...}}
// (then correct for i in links with if 'i' in links)
NGrams
[
"group"
]
=
result
NGrams
[
"group"
]
=
result
}
}
// = = = = /GROUP = = = = //
// = = = = /GROUP = = = = //
...
@@ -1453,43 +1449,59 @@ GET_( url[0] , function(result) {
...
@@ -1453,43 +1449,59 @@ GET_( url[0] , function(result) {
function
AfterAjax
()
{
function
AfterAjax
()
{
// -------------------------------------------------------------------
// -------------------------------------------------------------------
// dbg: Ngrams structure is too large
& redundant
// dbg: Ngrams structure is too large
// 1- Prevent empty groups (see TODO)
// 1- Ngrams list would be shorter in binary format than JSON
// 2- Ngrams list would be shorter in binary format than JSON
// 2- If sorted, top Ngrams could be loaded partly for 1st page show
// 3- If sorted, top Ngrams could be loaded partly for 1st page show
// 3- We could keep less ngrams altogether at indexation upstream
// 4- We could keep less ngrams altogether at indexation upstream
// console.log(JSON.stringify(NGrams))
// console.log(JSON.stringify(NGrams))
// -------------------------------------------------------------------
// -------------------------------------------------------------------
//
//
Deleting subforms from the ngrams-table, clean start baby!
// Deleting subforms from the ngrams-table, clean start baby!
if
(
Object
.
keys
(
NGrams
[
"group"
].
links
).
length
>
0
)
{
if
(
Object
.
keys
(
NGrams
[
"group"
].
links
).
length
>
0
)
{
var
_forms
=
{
"main"
:{}
,
"sub"
:{}
}
var
_forms
=
{
"main"
:{}
,
"sub"
:{}
}
// subforms inventory
for
(
var
i
in
NGrams
[
"group"
].
links
)
{
for
(
var
i
in
NGrams
[
"group"
].
links
)
{
_forms
[
"main"
][
i
]
=
true
_forms
[
"main"
][
i
]
=
true
for
(
var
j
in
NGrams
[
"group"
].
links
[
i
])
{
for
(
var
j
in
NGrams
[
"group"
].
links
[
i
])
{
// for each subform {subform_ngramid : true}
_forms
[
"sub"
][
NGrams
[
"group"
].
links
[
i
][
j
]
]
=
true
_forms
[
"sub"
][
NGrams
[
"group"
].
links
[
i
][
j
]
]
=
true
}
}
}
}
// console.log('_forms["sub"]')
// console.log( _forms["sub"] )
// ngrams_data_ will update NGrams.main (with subforms removed)
var
ngrams_data_
=
[]
var
ngrams_data_
=
[]
for
(
var
i
in
NGrams
[
"main"
].
ngrams
)
{
for
(
var
i
in
NGrams
[
"main"
].
ngrams
)
{
// FIXME is it necessary to keep NGrams["group"]["nodes"]
var
ngram_id
=
NGrams
[
"main"
].
ngrams
[
i
].
id
;
// when afterwards only using NGrams["group"]["links"]
// ex: "nodes":{"119":false,"449":false,"674":false,...}
// if ngram is subform of another
if
(
_forms
[
"sub"
][
NGrams
[
"main"
].
ngrams
[
i
].
id
])
{
if
(
_forms
[
"sub"
][
ngram_id
])
{
NGrams
[
"group"
][
"nodes"
][
NGrams
[
"main"
].
ngrams
[
i
].
id
]
=
NGrams
[
"main"
].
ngrams
[
i
]
// subform info storage into NGrams.group.nodes
}
else
{
// ---------------------------------------------
// if( _forms["main"][ NGrams["main"].ngrams[i].id ] )
// (subform goes away from new list but info preserved)
// NGrams["main"].ngrams[i].name = "*"+NGrams["main"].ngrams[i].name
// (useful if we want to see/revive subforms in future)
ngrams_data_
.
push
(
NGrams
[
"main"
].
ngrams
[
i
]
)
NGrams
[
"group"
][
"nodes"
][
ngram_id
]
=
NGrams
[
"main"
].
ngrams
[
i
]
}
}
}
// normal case
NGrams
[
"main"
].
ngrams
=
ngrams_data_
;
else
{
// we keep the info untouched in the new list
ngrams_data_
.
push
(
NGrams
[
"main"
].
ngrams
[
i
]
)
}
}
// the new list of ngrams replaces the old main
NGrams
[
"main"
].
ngrams
=
ngrams_data_
;
}
}
// console.log('NGrams["group"]["nodes"]')
// console.log( NGrams["group"]["nodes"] )
// initialize state of maplist items
// initialize state of maplist items
if
(
Object
.
keys
(
NGrams
[
"map"
]).
length
>
0
)
{
if
(
Object
.
keys
(
NGrams
[
"map"
]).
length
>
0
)
{
for
(
var
i
in
NGrams
[
"main"
].
ngrams
)
{
for
(
var
i
in
NGrams
[
"main"
].
ngrams
)
{
...
@@ -1502,6 +1514,9 @@ function AfterAjax() {
...
@@ -1502,6 +1514,9 @@ function AfterAjax() {
}
}
}
}
// console.log('NGrams["main"]')
// console.log( NGrams["main"] )
// Building the Score-Selector //NGrams["scores"]
// Building the Score-Selector //NGrams["scores"]
var
FirstScore
=
NGrams
[
"main"
].
scores
.
initial
var
FirstScore
=
NGrams
[
"main"
].
scores
.
initial
var
possible_scores
=
Object
.
keys
(
NGrams
[
"main"
].
ngrams
[
0
].
scores
);
var
possible_scores
=
Object
.
keys
(
NGrams
[
"main"
].
ngrams
[
0
].
scores
);
...
@@ -1512,10 +1527,10 @@ function AfterAjax() {
...
@@ -1512,10 +1527,10 @@ function AfterAjax() {
scores_div
+=
"
\
t"
+
'<option value="'
+
possible_scores
[
i
]
+
'">'
+
possible_scores
[
i
]
+
'</option>'
+
"
\n
"
scores_div
+=
"
\
t"
+
'<option value="'
+
possible_scores
[
i
]
+
'">'
+
possible_scores
[
i
]
+
'</option>'
+
"
\n
"
}
}
}
}
// Initializing the Charts and Table
// Initializing the Charts and Table
console
.
log
(
NGrams
[
"main"
]
)
var
result
=
Main_test
(
NGrams
[
"main"
]
,
FirstScore
,
"filter_all"
)
var
result
=
Main_test
(
NGrams
[
"main"
]
,
FirstScore
,
"filter_all"
)
console
.
log
(
result
)
console
.
log
(
result
)
// OK
// Listener for onchange Score-Selector
// Listener for onchange Score-Selector
scores_div
+=
"<select>"
+
"
\n
"
;
scores_div
+=
"<select>"
+
"
\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