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
d18bd9ce
Commit
d18bd9ce
authored
May 10, 2016
by
delanoe
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'refactoring' into refactoring-ngrams
parents
f525e222
33904b8b
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
461 additions
and
186 deletions
+461
-186
app.css
annotations/static/annotations/app.css
+6
-0
document.js
annotations/static/annotations/document.js
+56
-4
http.js
annotations/static/annotations/http.js
+45
-0
main.html
annotations/templates/annotations/main.html
+4
-3
urls.py
annotations/urls.py
+5
-4
views.py
annotations/views.py
+1
-0
settings.py
gargantext/settings.py
+1
-1
urls.py
gargantext/urls.py
+3
-3
nodes.py
gargantext/views/api/nodes.py
+160
-64
__init__.py
moissonneurs/__init__.py
+0
-0
istex.py
moissonneurs/istex.py
+1
-1
pubmed.py
moissonneurs/pubmed.py
+1
-1
urls.py
moissonneurs/urls.py
+7
-7
util.py
moissonneurs/util.py
+0
-0
Docs_dyna_chart_and_table.js
static/js/gargantext/Docs_dyna_chart_and_table.js
+94
-36
Journals_dyna_chart_and_table.js
static/js/gargantext/Journals_dyna_chart_and_table.js
+1
-1
journals.html
templates/pages/corpora/journals.html
+6
-3
terms.html
templates/pages/corpora/terms.html
+5
-2
titles.html
templates/pages/corpora/titles.html
+9
-5
menu.html
templates/pages/menu.html
+47
-45
overview.html
templates/pages/projects/overview.html
+1
-0
project.html
templates/pages/projects/project.html
+8
-6
No files found.
annotations/static/annotations/app.css
View file @
d18bd9ce
...
@@ -161,3 +161,9 @@
...
@@ -161,3 +161,9 @@
.float-right
{
.float-right
{
float
:
right
;
float
:
right
;
}
}
.favactive
{
/* yellow */
color
:
#FFF50D
;
text-shadow
:
-1px
0
#777777
,
0
1px
#777777
,
1px
0
#777777
,
0
-1px
#777777
;
}
annotations/static/annotations/document.js
View file @
d18bd9ce
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
// dataLoading = signal pour afficher wait
// dataLoading = signal pour afficher wait
$scope
.
dataLoading
=
true
;
$scope
.
dataLoading
=
true
;
console
.
log
(
"annotations.document.DocController.DocumentHttpService.get():before"
)
console
.
log
(
"annotations.document.DocController.DocumentHttpService.get():before"
)
$rootScope
.
documentResource
=
DocumentHttpService
.
get
(
$rootScope
.
documentResource
=
DocumentHttpService
.
get
(
...
@@ -52,12 +52,64 @@
...
@@ -52,12 +52,64 @@
}]);
}]);
annotationsAppDocument
.
controller
(
'DocFavoriteController'
,
annotationsAppDocument
.
controller
(
'DocFavoriteController'
,
[
'$scope'
,
'$rootScope'
,
'DocumentHttpService'
,
[
'$scope'
,
'$rootScope'
,
'MainApiFavoritesHttpService'
,
function
(
$scope
,
$rootScope
,
DocumentHttpService
)
{
function
(
$scope
,
$rootScope
,
MainApiFavoritesHttpService
)
{
$scope
.
isFavorite
=
false
;
MainApiFavoritesHttpService
.
get
(
{
'corpusId'
:
$rootScope
.
corpusId
,
'docId'
:
$rootScope
.
docId
},
function
(
data
)
{
if
(
data
[
'favdocs'
].
length
>
0
&&
data
[
'favdocs'
][
0
]
==
$scope
.
docId
)
{
$scope
.
isFavorite
=
true
;
}
else
{
$scope
.
isFavorite
=
false
;
}
},
function
(
data
)
{
console
.
error
(
"unable to check if document belongs to favorites"
);
$scope
.
isFavorite
=
false
;
}
)
;
$scope
.
onStarClick
=
function
(
$event
)
{
$scope
.
onStarClick
=
function
(
$event
)
{
console
.
log
(
$scope
.
isFavorite
)
// console.log($scope)
console
.
log
(
"TODO"
);
console
.
log
(
"TODO"
);
var
myAction
;
if
(
!
$scope
.
isFavorite
)
{
// PUT api/nodes/574/favorites?docs=576
myAction
=
MainApiFavoritesHttpService
.
put
}
else
{
// DELETE api/nodes/574/favorites?docs=576
myAction
=
MainApiFavoritesHttpService
.
delete
}
// (1) do the action
myAction
(
{
'corpusId'
:
$rootScope
.
corpusId
,
'docId'
:
$rootScope
.
docId
},
// success
function
(
data
)
{
// (2) toggle status and refresh
$scope
.
isFavorite
=
!
$scope
.
isFavorite
$rootScope
.
refreshDisplay
();
},
// failure
function
(
data
)
{
console
.
error
(
"unable to change favorite status"
);
}
);
};
};
$scope
.
isFavorite
=
false
;
}]);
}]);
})(
window
);
})(
window
);
annotations/static/annotations/http.js
View file @
d18bd9ce
...
@@ -122,4 +122,49 @@
...
@@ -122,4 +122,49 @@
}
}
);
);
});
});
/*
* MainApiFavoritesHttpService: Check/Add/Del Document in favorites
* ============================
* route: api/nodes/574/favorites?docs=576
* /!\ for this route we reach out of this annotation module
* and send directly to the gargantext api route for favs
* (cross origin request with http protocol scheme)
* ------
*
* exemple:
* --------
* {
* "favdocs": [576] // <== if doc is among favs
* "missing": [] // <== if doc is not in favs
* }
*
*/
http
.
factory
(
'MainApiFavoritesHttpService'
,
function
(
$resource
)
{
return
$resource
(
// adding explicit "http://" b/c this a cross origin request
'http://'
+
window
.
GARG_ROOT_URL
+
"/api/nodes/:corpusId/favorites?docs=:docId"
,
{
corpusId
:
'@corpusId'
,
docId
:
'@docId'
},
{
get
:
{
method
:
'GET'
,
params
:
{
corpusId
:
'@corpusId'
,
docId
:
'@docId'
}
},
put
:
{
method
:
'PUT'
,
params
:
{
corpusId
:
'@corpusId'
,
docId
:
'@docId'
}
},
delete
:
{
method
:
'DELETE'
,
params
:
{
corpusId
:
'@corpusId'
,
docId
:
'@docId'
}
}
}
);
});
})(
window
);
})(
window
);
annotations/templates/annotations/main.html
View file @
d18bd9ce
...
@@ -58,9 +58,9 @@
...
@@ -58,9 +58,9 @@
<div
class=
"list-selector"
>
<div
class=
"list-selector"
>
<h5>
Select lists
</h5>
<h5>
Select lists
</h5>
<select
class=
"selectpicker"
multiple
ng-change=
"activeListsChange()"
ng-model=
"lists"
ng-controller=
"ActiveListsController"
>
<select
class=
"selectpicker"
multiple
ng-change=
"activeListsChange()"
ng-model=
"lists"
ng-controller=
"ActiveListsController"
>
<option
ng-repeat=
"item in allListsSelect"
id=
"list---{[{item.id}]}"
>
{[{item.label}]}
</option>
<option
ng-repeat=
"item in allListsSelect"
id=
"list---{[{item.id}]}"
>
{[{item.label}]}
</option>
<!-- to disallow unchecking MapList add this into <option> element: ng-disabled="{[{ item.label == 'MapList' }]}" -->
<!-- to disallow unchecking MapList add this into <option> element: ng-disabled="{[{ item.label == 'MapList' }]}" -->
</select>
</select>
...
@@ -73,7 +73,7 @@
...
@@ -73,7 +73,7 @@
</div>
</div>
<div
class=
"col-md-2 col-xs-2 clearfix"
>
<div
class=
"col-md-2 col-xs-2 clearfix"
>
<button
ng-controller=
"DocFavoriteController"
type=
"button"
class=
"btn btn-default float-right"
ng-click=
"onStarClick($event)"
>
<button
ng-controller=
"DocFavoriteController"
type=
"button"
class=
"btn btn-default float-right"
ng-click=
"onStarClick($event)"
>
<span
class=
"glyphicon"
ng-class=
"{'glyphicon-star-empty': isFavorite == false, 'glyphicon-star': isFavorite == true}"
></span>
<span
class=
"glyphicon"
ng-class=
"{'glyphicon-star-empty': isFavorite == false, 'glyphicon-star
favactive
': isFavorite == true}"
></span>
</button>
</button>
<!--<nav>
<!--<nav>
<ul class="pager">
<ul class="pager">
...
@@ -129,6 +129,7 @@
...
@@ -129,6 +129,7 @@
/* Constants required for annotations app JS to work */
/* Constants required for annotations app JS to work */
window
.
STATIC_URL
=
"{% static '' %}"
;
window
.
STATIC_URL
=
"{% static '' %}"
;
window
.
ANNOTATION_API_URL
=
"{{ api_url }}"
;
window
.
ANNOTATION_API_URL
=
"{{ api_url }}"
;
window
.
GARG_ROOT_URL
=
"{{ garg_url }}"
;
window
.
NODES_API_URL
=
"{{ nodes_api_url }}"
;
window
.
NODES_API_URL
=
"{{ nodes_api_url }}"
;
</script>
</script>
<script
src=
"{% static 'annotations/main.js' %}"
></script>
<script
src=
"{% static 'annotations/main.js' %}"
></script>
...
...
annotations/urls.py
View file @
d18bd9ce
...
@@ -5,13 +5,14 @@ from annotations import views
...
@@ -5,13 +5,14 @@ from annotations import views
# /!\ urls patterns here are *without* the trailing slash
# /!\ urls patterns here are *without* the trailing slash
urlpatterns
=
[
urlpatterns
=
[
# json:title,id,authors,journal,
# GET [DocumentHttpService]
# json:title,id,authors,journal,
# publication_date
# publication_date
# abstract_text,full_text
# abstract_text,full_text
url
(
r'^documents/(?P<doc_id>[0-9]+)$'
,
views
.
Document
.
as_view
()),
# document view
url
(
r'^documents/(?P<doc_id>[0-9]+)$'
,
views
.
Document
.
as_view
()),
# document view
# GET
:
# GET
[NgramListHttpService]
# was : lists ∩ document (ngram_ids intersection if connected to list node_id and doc node_id)
# was : lists ∩ document (ngram_ids intersection if connected to list node_id and doc node_id)
# fixed 2016-01: just lists (because document doesn't get updated by POST create cf. ngram.lists.DocNgram filter commented)
# fixed 2016-01: just lists (because document doesn't get updated by POST create cf. ngram.lists.DocNgram filter commented)
url
(
r'^corpora/(?P<corpus_id>[0-9]+)/documents/(?P<doc_id>[0-9]+)$'
,
views
.
NgramList
.
as_view
()),
# the list associated with an ngram
url
(
r'^corpora/(?P<corpus_id>[0-9]+)/documents/(?P<doc_id>[0-9]+)$'
,
views
.
NgramList
.
as_view
()),
# the list associated with an ngram
...
...
annotations/views.py
View file @
d18bd9ce
...
@@ -30,6 +30,7 @@ def main(request, project_id, corpus_id, document_id):
...
@@ -30,6 +30,7 @@ def main(request, project_id, corpus_id, document_id):
return
render_to_response
(
'annotations/main.html'
,
{
return
render_to_response
(
'annotations/main.html'
,
{
# TODO use reverse()
# TODO use reverse()
'api_url'
:
urljoin
(
request
.
get_host
(),
'/annotations/'
),
'api_url'
:
urljoin
(
request
.
get_host
(),
'/annotations/'
),
'garg_url'
:
request
.
get_host
(),
'nodes_api_url'
:
urljoin
(
request
.
get_host
(),
'/api/'
),
'nodes_api_url'
:
urljoin
(
request
.
get_host
(),
'/api/'
),
},
context_instance
=
RequestContext
(
request
))
},
context_instance
=
RequestContext
(
request
))
...
...
gargantext/settings.py
View file @
d18bd9ce
...
@@ -51,7 +51,7 @@ INSTALLED_APPS = [
...
@@ -51,7 +51,7 @@ INSTALLED_APPS = [
'djcelery'
,
'djcelery'
,
'annotations'
,
'annotations'
,
'graphExplorer'
,
'graphExplorer'
,
'
scrape
rs'
,
'
moissonneu
rs'
,
]
]
MIDDLEWARE_CLASSES
=
[
MIDDLEWARE_CLASSES
=
[
...
...
gargantext/urls.py
View file @
d18bd9ce
...
@@ -26,7 +26,7 @@ from annotations.views import main as annotations_main_view
...
@@ -26,7 +26,7 @@ from annotations.views import main as annotations_main_view
import
graphExplorer.urls
import
graphExplorer.urls
# Module Scrapers
# Module Scrapers
import
scrape
rs.urls
import
moissonneu
rs.urls
urlpatterns
=
[
url
(
r'^admin/'
,
admin
.
site
.
urls
)
urlpatterns
=
[
url
(
r'^admin/'
,
admin
.
site
.
urls
)
...
@@ -43,6 +43,6 @@ urlpatterns = [ url(r'^admin/' , admin.site.urls )
...
@@ -43,6 +43,6 @@ urlpatterns = [ url(r'^admin/' , admin.site.urls )
,
url
(
r'^annotations/'
,
include
(
annotations_urls
)
)
,
url
(
r'^annotations/'
,
include
(
annotations_urls
)
)
,
url
(
r'^projects/(\d+)/corpora/(\d+)/documents/(\d+)/$'
,
annotations_main_view
)
,
url
(
r'^projects/(\d+)/corpora/(\d+)/documents/(\d+)/$'
,
annotations_main_view
)
# Module Scrapers
# Module Scrapers
(Moissonneurs in French)
,
url
(
r'^
scrapers/'
,
include
(
scrape
rs
.
urls
)
)
,
url
(
r'^
moissonneurs/'
,
include
(
moissonneu
rs
.
urls
)
)
]
]
gargantext/views/api/nodes.py
View file @
d18bd9ce
This diff is collapsed.
Click to expand it.
scrape
rs/__init__.py
→
moissonneu
rs/__init__.py
View file @
d18bd9ce
File moved
scrape
rs/istex.py
→
moissonneu
rs/istex.py
View file @
d18bd9ce
...
@@ -15,7 +15,7 @@ from gargantext.util.http import JsonHttpResponse
...
@@ -15,7 +15,7 @@ from gargantext.util.http import JsonHttpResponse
from
gargantext.util.scheduling
import
scheduled
from
gargantext.util.scheduling
import
scheduled
from
gargantext.util.toolchain
import
parse_extract_indexhyperdata
from
gargantext.util.toolchain
import
parse_extract_indexhyperdata
from
scrape
rs.util
import
Scraper
from
moissonneu
rs.util
import
Scraper
...
...
scrape
rs/pubmed.py
→
moissonneu
rs/pubmed.py
View file @
d18bd9ce
...
@@ -26,7 +26,7 @@ from gargantext.util.http import JsonHttpResponse
...
@@ -26,7 +26,7 @@ from gargantext.util.http import JsonHttpResponse
from
gargantext.util.scheduling
import
scheduled
from
gargantext.util.scheduling
import
scheduled
from
gargantext.util.toolchain
import
parse_extract_indexhyperdata
from
gargantext.util.toolchain
import
parse_extract_indexhyperdata
from
scrape
rs.util
import
Scraper
from
moissonneu
rs.util
import
Scraper
...
...
scrape
rs/urls.py
→
moissonneu
rs/urls.py
View file @
d18bd9ce
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
#
#
#
Scrape
rs == getting data from external databases
#
moissonneu
rs == getting data from external databases
# Available databases :
# Available databases :
...
@@ -18,19 +18,19 @@
...
@@ -18,19 +18,19 @@
from
django.conf.urls
import
url
from
django.conf.urls
import
url
import
scrape
rs.pubmed
as
pubmed
import
moissonneu
rs.pubmed
as
pubmed
import
scrape
rs.istex
as
istex
import
moissonneu
rs.istex
as
istex
# TODO
# TODO
#import
scrape
rs.cern as cern
#import
moissonneu
rs.cern as cern
# TODO
# TODO
#import
scrape
rs.hal as hal
#import
moissonneu
rs.hal as hal
#import
scrape
rs.revuesOrg as revuesOrg
#import
moissonneu
rs.revuesOrg as revuesOrg
# TODO ?
# TODO ?
# REST API for the
scrape
rs
# REST API for the
moissonneu
rs
# /!\ urls patterns here are *without* the trailing slash
# /!\ urls patterns here are *without* the trailing slash
urlpatterns
=
[
url
(
r'^pubmed/query$'
,
pubmed
.
query
)
urlpatterns
=
[
url
(
r'^pubmed/query$'
,
pubmed
.
query
)
...
...
scrape
rs/util.py
→
moissonneu
rs/util.py
View file @
d18bd9ce
File moved
static/js/gargantext/Docs_dyna_chart_and_table.js
View file @
d18bd9ce
...
@@ -143,6 +143,7 @@ var RecDict={};
...
@@ -143,6 +143,7 @@ var RecDict={};
var
AjaxRecords
=
[]
var
AjaxRecords
=
[]
var
Garbage
=
{}
var
Garbage
=
{}
var
countByTitles
=
{}
// useful for title duplicates
var
countByTitles
=
{}
// useful for title duplicates
var
favorites
=
{}
function
getRecord
(
rec_id
)
{
function
getRecord
(
rec_id
)
{
return
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
originalRecords
[
rec_id
];
return
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
originalRecords
[
rec_id
];
...
@@ -153,6 +154,39 @@ function getRecords() {
...
@@ -153,6 +154,39 @@ function getRecords() {
return
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
originalRecords
;
return
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
originalRecords
;
}
}
function
favstatusToStar
(
rec_id
,
boolFavstatus
,
boolStrike
=
false
){
var
starStr
=
boolFavstatus
?
"glyphicon-star"
:
"glyphicon-star-empty"
;
var
styleStr
=
boolStrike
?
"style='text-decoration:line-through'"
:
""
;
var
htmlStr
=
"<span class='glyphicon "
+
starStr
+
"' "
+
styleStr
;
htmlStr
+=
" onclick='toggleFavstatus("
+
rec_id
+
")'"
;
htmlStr
+=
">"
;
htmlStr
+=
"</span>"
;
return
htmlStr
}
function
toggleFavstatus
(
rec_id
)
{
var
doc_id
=
AjaxRecords
[
rec_id
][
"id"
]
var
statusBefore
=
AjaxRecords
[
rec_id
][
"isFavorite"
]
var
myHttpAction
=
statusBefore
?
'DELETE'
:
'PUT'
$
.
ajax
({
url
:
'http://localhost:8000/api/nodes/'
+
corpus_id
+
'/favorites?docs='
+
doc_id
,
type
:
myHttpAction
,
beforeSend
:
function
(
xhr
)
{
xhr
.
setRequestHeader
(
"X-CSRFToken"
,
getCookie
(
"csrftoken"
));
},
success
:
function
(
favdata
)
{
// it's been toggled in the DB so we toggle locally
if
(
statusBefore
)
delete
favorites
[
doc_id
]
else
favorites
[
doc_id
]
=
true
AjaxRecords
[
rec_id
][
"isFavorite"
]
=
!
statusBefore
;
// and we reprocess table directly (no need for new ajax of other recs)
MyTable
.
data
(
'dynatable'
).
process
();
},
});
}
function
transformContent2
(
rec_id
)
{
function
transformContent2
(
rec_id
)
{
// pr("\t\ttransformContent2: "+rec_id)
// pr("\t\ttransformContent2: "+rec_id)
var
elem
=
AjaxRecords
[
rec_id
];
var
elem
=
AjaxRecords
[
rec_id
];
...
@@ -162,12 +196,14 @@ function transformContent2(rec_id) {
...
@@ -162,12 +196,14 @@ function transformContent2(rec_id) {
result
[
"id"
]
=
elem
[
"id"
]
result
[
"id"
]
=
elem
[
"id"
]
result
[
"date"
]
=
'<strike>'
+
elem
[
"date"
]
+
'</strike>'
result
[
"date"
]
=
'<strike>'
+
elem
[
"date"
]
+
'</strike>'
result
[
"docurl"
]
=
'<strike>'
+
elem
[
"docurl"
]
+
'</strike>'
result
[
"docurl"
]
=
'<strike>'
+
elem
[
"docurl"
]
+
'</strike>'
result
[
"isFavorite"
]
=
favstatusToStar
(
rec_id
,
elem
[
"isFavorite"
],
boolStrike
=
true
)
result
[
"rawtitle"
]
=
elem
[
"rawtitle"
]
result
[
"rawtitle"
]
=
elem
[
"rawtitle"
]
result
[
"del"
]
=
'<input id='
+
rec_id
+
' onclick="overRide(this)" type="checkbox" checked/>'
result
[
"del"
]
=
'<input id='
+
rec_id
+
' onclick="overRide(this)" type="checkbox" checked/>'
}
else
{
}
else
{
result
[
"id"
]
=
elem
[
"id"
]
result
[
"id"
]
=
elem
[
"id"
]
result
[
"date"
]
=
elem
[
"date"
]
result
[
"date"
]
=
elem
[
"date"
]
result
[
"docurl"
]
=
elem
[
"docurl"
]
result
[
"docurl"
]
=
elem
[
"docurl"
]
result
[
"isFavorite"
]
=
favstatusToStar
(
rec_id
,
elem
[
"isFavorite"
])
result
[
"rawtitle"
]
=
elem
[
"rawtitle"
]
result
[
"rawtitle"
]
=
elem
[
"rawtitle"
]
result
[
"del"
]
=
'<input id='
+
rec_id
+
' onclick="overRide(this)" type="checkbox"/>'
result
[
"del"
]
=
'<input id='
+
rec_id
+
' onclick="overRide(this)" type="checkbox"/>'
}
}
...
@@ -269,6 +305,9 @@ function Main_test(Data) {
...
@@ -269,6 +305,9 @@ function Main_test(Data) {
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-calendar"></span> Date</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-calendar"></span> Date</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="docurl">'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="docurl">'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-text-size"></span> Title</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-text-size"></span> Title</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="isFavorite">'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-star"></span>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="del" data-dynatable-no-sort="true">'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="del" data-dynatable-no-sort="true">'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-trash"></span>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<span class="glyphicon glyphicon-trash"></span>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'</th>'
+
"
\n
"
...
@@ -445,7 +484,7 @@ function Main_test(Data) {
...
@@ -445,7 +484,7 @@ function Main_test(Data) {
},
},
inputs
:
{
inputs
:
{
// our own search which differentiates title vs abstract queries
// our own search which differentiates title vs abstract queries
queries
:
$
(
'#doubleSearch, #d
up
Filter'
)
queries
:
$
(
'#doubleSearch, #d
oc
Filter'
)
},
},
writers
:
{
writers
:
{
_rowWriter
:
ulWriter
_rowWriter
:
ulWriter
...
@@ -495,14 +534,16 @@ function Main_test(Data) {
...
@@ -495,14 +534,16 @@ function Main_test(Data) {
}
}
// MyTable.data('dynatable').process();
// MyTable.data('dynatable').process();
// also append another bound filter for duplicates
// also append another bound filter for duplicates
/favorites
MyTable
.
data
(
'dynatable'
).
queries
MyTable
.
data
(
'dynatable'
).
queries
.
functions
[
'dupFilter'
]
=
function
(
record
,
selected
)
{
.
functions
[
'docFilter'
]
=
function
(
record
,
opt
)
{
return
(
selected
==
'filter_all'
)
||
(
countByTitles
[
record
.
rawtitle
]
>
1
)
if
(
opt
==
'filter_all'
)
return
true
else
if
(
opt
==
'filter_favs'
)
return
favorites
[
record
.
id
]
else
if
(
opt
==
'filter_dupl'
)
return
(
countByTitles
[
record
.
rawtitle
]
>
1
)
}
}
// and set this filter's initial status to 'filter_all'
// and set this filter's initial status to 'filter_all'
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
queries
[
'd
up
Filter'
]
=
'filter_all'
MyTable
.
data
(
'dynatable'
).
settings
.
dataset
.
queries
[
'd
oc
Filter'
]
=
'filter_all'
MyTable
.
data
(
'dynatable'
).
sorts
.
functions
[
"rawtitleSort"
]
=
function
testSort
(
rec1
,
rec2
)
{
MyTable
.
data
(
'dynatable'
).
sorts
.
functions
[
"rawtitleSort"
]
=
function
testSort
(
rec1
,
rec2
)
{
...
@@ -531,20 +572,20 @@ function Main_test(Data) {
...
@@ -531,20 +572,20 @@ function Main_test(Data) {
var
dupFlag
=
false
;
var
dupFlag
=
false
;
$
(
"#div-table"
).
on
(
"dynatable:queries:added"
,
function
(
e
,
qname
,
qval
)
{
$
(
"#div-table"
).
on
(
"dynatable:queries:added"
,
function
(
e
,
qname
,
qval
)
{
if
(
!
dupFlag
&&
qname
==
'd
up
Filter'
&&
qval
==
"filter_dupl"
)
{
if
(
!
dupFlag
&&
qname
==
'd
oc
Filter'
&&
qval
==
"filter_dupl"
)
{
MyTable
.
data
(
'dynatable'
).
queries
.
remove
(
'd
up
Filter'
)
MyTable
.
data
(
'dynatable'
).
queries
.
remove
(
'd
oc
Filter'
)
// to avoid recursion when we'll call this filter again in 4 lines
// to avoid recursion when we'll call this filter again in 4 lines
dupFlag
=
true
;
dupFlag
=
true
;
// sort alphabetically **before** duplicates filter
// sort alphabetically **before** duplicates filter
MyTable
.
data
(
'dynatable'
).
sorts
.
clear
();
MyTable
.
data
(
'dynatable'
).
sorts
.
clear
();
MyTable
.
data
(
'dynatable'
).
sorts
.
add
(
'rawtitle'
,
-
1
)
// -1 <==> DESC (ASC doesn't work well ?)
MyTable
.
data
(
'dynatable'
).
sorts
.
add
(
'rawtitle'
,
-
1
)
// -1 <==> DESC (ASC doesn't work well ?)
MyTable
.
data
(
'dynatable'
).
queries
.
add
(
'd
up
Filter'
,
'filter_dupl'
)
MyTable
.
data
(
'dynatable'
).
queries
.
add
(
'd
oc
Filter'
,
'filter_dupl'
)
MyTable
.
data
(
'dynatable'
).
process
();
MyTable
.
data
(
'dynatable'
).
process
();
}
}
});
});
$
(
"#div-table"
).
on
(
"dynatable:queries:removed"
,
function
(
e
,
qname
)
{
$
(
"#div-table"
).
on
(
"dynatable:queries:removed"
,
function
(
e
,
qname
)
{
if
(
qname
==
'd
up
Filter'
)
{
if
(
qname
==
'd
oc
Filter'
)
{
dupFlag
=
false
;
dupFlag
=
false
;
}
}
});
});
...
@@ -556,36 +597,53 @@ $.ajax({
...
@@ -556,36 +597,53 @@ $.ajax({
url
:
'/api/nodes?types[]=DOCUMENT&pagination_limit=-1&parent_id='
url
:
'/api/nodes?types[]=DOCUMENT&pagination_limit=-1&parent_id='
+
corpus_id
+
corpus_id
+
'&fields[]=parent_id&fields[]=id&fields[]=name&fields[]=typename&fields[]=hyperdata'
,
+
'&fields[]=parent_id&fields[]=id&fields[]=name&fields[]=typename&fields[]=hyperdata'
,
success
:
function
(
data
){
success
:
function
(
maindata
){
$
(
"#content_loader"
).
remove
();
// unfortunately favorites info is in a separate request (other nodes)
$
.
each
(
data
.
records
,
function
(
i
,
record
){
$
.
ajax
({
var
orig_id
=
parseInt
(
record
.
id
);
url
:
'http://localhost:8000/api/nodes/'
+
corpus_id
+
'/favorites'
,
var
arr_id
=
parseInt
(
i
)
success
:
function
(
favdata
){
RecDict
[
orig_id
]
=
arr_id
;
// initialize favs lookup
record
.
rawtitle
=
record
.
name
;
for
(
var
i
in
favdata
[
'favdocs'
])
{
doc_id
=
favdata
[
'favdocs'
][
i
]
// trick to have a clickable title in docurl slot, but could be done in transformContent2
favorites
[
doc_id
]
=
true
;
record
.
docurl
=
'<a target="_blank" href="/projects/'
+
project_id
+
'/corpora/'
+
corpus_id
+
'/documents/'
+
record
.
id
+
'">'
+
record
.
name
+
'</a>'
;
}
record
.
date
=
get_node_date
(
record
);
record
.
del
=
false
;
});
// initialize CountByTitle census
// now process the nodes data from 1st request
for
(
var
i
in
data
.
records
)
{
$
.
each
(
maindata
.
records
,
function
(
i
,
record
){
ourTitle
=
data
.
records
[
i
][
'rawtitle'
]
;
var
orig_id
=
parseInt
(
record
.
id
);
if
(
countByTitles
.
hasOwnProperty
(
ourTitle
))
{
var
arr_id
=
parseInt
(
i
)
countByTitles
[
ourTitle
]
++
;
RecDict
[
orig_id
]
=
arr_id
;
}
record
.
rawtitle
=
record
.
name
;
else
{
countByTitles
[
ourTitle
]
=
1
;
}
}
AjaxRecords
=
data
.
records
;
// backup-ing in global variable!
var
result
=
Main_test
(
data
.
records
)
record
.
isFavorite
=
false
;
if
(
favorites
[
orig_id
])
{
record
.
isFavorite
=
true
;
}
$
(
"#content_loader"
).
remove
()
// trick to have a clickable title in docurl slot, but could be done in transformContent2
record
.
docurl
=
'<a target="_blank" href="/projects/'
+
project_id
+
'/corpora/'
+
corpus_id
+
'/documents/'
+
record
.
id
+
'">'
+
record
.
name
+
'</a>'
;
record
.
date
=
get_node_date
(
record
);
record
.
del
=
false
;
});
console
.
log
(
result
)
// initialize CountByTitle census
for
(
var
i
in
maindata
.
records
)
{
ourTitle
=
maindata
.
records
[
i
][
'rawtitle'
]
;
if
(
countByTitles
.
hasOwnProperty
(
ourTitle
))
{
countByTitles
[
ourTitle
]
++
;
}
else
{
countByTitles
[
ourTitle
]
=
1
;
}
}
AjaxRecords
=
maindata
.
records
;
// backup-ing in global variable!
$
(
"#content_loader"
).
remove
();
var
result
=
Main_test
(
maindata
.
records
)
console
.
log
(
result
)
},
});
},
},
});
});
static/js/gargantext/Journals_dyna_chart_and_table.js
View file @
d18bd9ce
...
@@ -290,7 +290,7 @@ function Main_test( data , initial) {
...
@@ -290,7 +290,7 @@ function Main_test( data , initial) {
var
div_table
=
'<p align="right">'
+
"
\n
"
var
div_table
=
'<p align="right">'
+
"
\n
"
div_table
+=
'<table id="my-ajax-table" class="table table-bordered table-hover">'
+
"
\n
"
div_table
+=
'<table id="my-ajax-table" class="table table-bordered table-hover">'
+
"
\n
"
div_table
+=
"
\
t"
+
'<thead>'
+
"
\n
"
div_table
+=
"
\
t"
+
'<thead>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="name">Title</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="name">
<span class="glyphicon glyphicon-text-size"></span>
Title</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="score" data-dynatable-sorts="score">No. Pubs</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'<th data-dynatable-column="score" data-dynatable-sorts="score">No. Pubs</th>'
+
"
\n
"
// div_table += "\t"+"\t"+'<th id="score_column_id" data-dynatable-sorts="score" data-dynatable-column="score">Score</th>'+"\n"
// div_table += "\t"+"\t"+'<th id="score_column_id" data-dynatable-sorts="score" data-dynatable-column="score">Score</th>'+"\n"
div_table
+=
"
\
t"
+
"
\
t"
+
'</th>'
+
"
\n
"
div_table
+=
"
\
t"
+
"
\
t"
+
'</th>'
+
"
\n
"
...
...
templates/pages/corpora/journals.html
View file @
d18bd9ce
...
@@ -59,9 +59,12 @@
...
@@ -59,9 +59,12 @@
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<h4
class=
"panel-title"
>
<h2
class=
"panel-title"
>
Publications by source
<center>
</h4>
<span
class=
"glyphicon glyphicon-hand-down"
aria-hidden=
"true"
></span>
Publications by source
</center>
</h2>
</div>
</div>
...
...
templates/pages/corpora/terms.html
View file @
d18bd9ce
...
@@ -55,12 +55,15 @@
...
@@ -55,12 +55,15 @@
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<h4
class=
"panel-title"
>
<h2
class=
"panel-title"
>
<center>
<span
class=
"glyphicon glyphicon-hand-down"
aria-hidden=
"true"
></span>
Extracted terms
Extracted terms
<!-- <button title='run test function' onclick="doATest()">
<!-- <button title='run test function' onclick="doATest()">
TEST
TEST
</button> -->
</button> -->
</a>
</center>
</h2>
<!-- see in javascript function queries.functions['my_state_filter'] -->
<!-- see in javascript function queries.functions['my_state_filter'] -->
<div
class=
"pull-left"
style=
"margin-top:1.85em;"
>
<div
class=
"pull-left"
style=
"margin-top:1.85em;"
>
...
...
templates/pages/corpora/titles.html
View file @
d18bd9ce
...
@@ -54,9 +54,12 @@
...
@@ -54,9 +54,12 @@
<div
class=
"jumbotron"
>
<div
class=
"jumbotron"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel panel-default"
>
<div
class=
"panel-heading"
>
<div
class=
"panel-heading"
>
<h4
class=
"panel-title"
>
<h2
class=
"panel-title"
>
Publications by title
<center>
</h4>
<span
class=
"glyphicon glyphicon-hand-down"
aria-hidden=
"true"
></span>
Publications by title
</center>
</h2>
<!-- search box with custom function in Docs_dyna_chart_and_tables.js -->
<!-- search box with custom function in Docs_dyna_chart_and_tables.js -->
<div
class=
"pull-left"
style=
"margin-top:1.85em; font-size: 16px;"
>
<div
class=
"pull-left"
style=
"margin-top:1.85em; font-size: 16px;"
>
<span
class=
"glyphicon glyphicon-search"
aria-hidden=
"true"
></span>
<span
class=
"glyphicon glyphicon-search"
aria-hidden=
"true"
></span>
...
@@ -70,9 +73,10 @@
...
@@ -70,9 +73,10 @@
<input
title=
"Search in Abstracts"
id=
"searchAB"
name=
"searchAB"
type=
"checkbox"
>
AB
<input
title=
"Search in Abstracts"
id=
"searchAB"
name=
"searchAB"
type=
"checkbox"
>
AB
</span>
</span>
<span
class=
"glyphicon glyphicon-filter"
aria-hidden=
"true"
></span>
<span
class=
"glyphicon glyphicon-filter"
aria-hidden=
"true"
></span>
<select
id=
"d
upFilter"
name=
"dup
Filter"
>
<select
id=
"d
ocFilter"
name=
"doc
Filter"
>
<option
value=
"filter_all"
>
All
</option>
<option
value=
"filter_all"
>
All
</option>
<option
value=
"filter_dupl"
>
Duplicates by Title
</option>
<option
value=
"filter_favs"
>
Favorite documents
</option>
<option
value=
"filter_dupl"
>
Duplicates by title
</option>
</select>
</select>
</div>
</div>
</div>
</div>
...
...
templates/pages/menu.html
View file @
d18bd9ce
...
@@ -111,14 +111,26 @@
...
@@ -111,14 +111,26 @@
</a>
</a>
<i
class=
"caret"
></i>
<i
class=
"caret"
></i>
<ul
class=
"dropdown-menu"
>
<ul
class=
"dropdown-menu"
>
<li>
{% if view != "graph" %}
<a
tabindex=
"-1"
<li>
data-url=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=conditional&bridgeness=5"
onclick=
'gotoexplorer(this)'
>
With conditional distance
</a>
<a
tabindex=
"-1"
</li>
data-url=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=conditional&bridgeness=5"
onclick=
'gotoexplorer(this)'
>
With conditional distance
</a>
<li>
</li>
<a
tabindex=
"-1"
<li>
data-url=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=distributional&bridgeness=5"
onclick=
'gotoexplorer(this)'
>
With distributional distance
</a>
<a
tabindex=
"-1"
</li>
data-url=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=distributional&bridgeness=5"
onclick=
'gotoexplorer(this)'
>
With distributional distance
</a>
</li>
{% else %}
<li>
<a
tabindex=
"-1"
href=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=conditional&bridgeness=5"
>
With conditional distance
</a>
</li>
<li>
<a
tabindex=
"-1"
href=
"/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&field2=ngrams&distance=distributional&bridgeness=5"
>
With distributional distance
</a>
</li>
{% endif %}
</ul>
</ul>
</li>
</li>
{% endif %}
{% endif %}
...
@@ -138,52 +150,42 @@
...
@@ -138,52 +150,42 @@
<div
class=
"jumbotron"
style=
"margin-bottom:0"
>
<div
class=
"jumbotron"
style=
"margin-bottom:0"
>
<br>
<br>
<br>
<br>
<!--
<a type="button" class="btn btn-default
href="/projects/{{project.id}}/corpora/{{ corpus.id }}/">Export corpus</a>
--!>
<!-- <li class="divider"></li> --!>
<div
class=
"row"
>
<div
class=
"row"
>
<div class="col-md-
4
">
<div
class=
"col-md-
3
"
>
{% if project %}
<h3>
<h3>
<a href="/projects/{{project.id}}">
<a
href=
"/projects/{{project.id}}"
>
<span
class=
"glyphicon glyphicon-book"
aria-hidden=
"true"
></span>
<span
class=
"glyphicon glyphicon-book"
aria-hidden=
"true"
></span>
{{ project.name }}
{{ project.name
| truncatechars:15
}}
</a>
</a>
<br>
<span class="glyphicon glyphicon-cd" aria-hidden="true"></span>
{{ resourcename | truncatechars:20 }}
<br>
<span class="glyphicon glyphicon-file" aria-hidden="true"></span>
{{ corpus.name }}
<br>
<span class="glyphicon glyphicon-calendar" aria-hidden="true"></span>
{{ corpus.date }}
</h3>
</h3>
{% endif %}
</div>
</div>
<div class="col-md-4">
<div
class=
"col-md-5"
>
<h3>
<span
class=
"glyphicon glyphicon-cd"
aria-hidden=
"true"
></span>
{{ resourcename | truncatechars:20 }}
</h3>
<h3>
<span
class=
"glyphicon glyphicon-file"
aria-hidden=
"true"
></span>
{{ corpus.name | truncatechars:20 }}
<a
class=
"btn btn-default"
role=
"button"
href=
"/api/nodes?parent_id={{corpus.id}}&types[]=DOCUMENT&pagination_limit=100000&formated=csv"
>
<span
class=
"glyphicon glyphicon-download"
aria-hidden=
"true"
></span>
</a>
</h3>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
<br>
<h3>
<!-- <a class="btn btn-default" role="button" href="/project/{{project.id}}/corpus/{{corpus.id}}/{{view}}/update">Update</a> -->
<span
class=
"glyphicon glyphicon-calendar"
aria-hidden=
"true"
></span>
{{ corpus.date }}
<!--
</h3>
<a class="btn btn-default" role="button" href="/project/{{project.id}}/corpus/{{ corpus.id }}/corpus.csv">Download</a>
<h3>
<span
class=
"glyphicon glyphicon-user"
aria-hidden=
"true"
></span>
<a type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom"
Author(s):
data-content='
</h3>
<ul>
<h4>
<li> Rename </li>
{{ user.username | truncatechars:15}}
<li> Add new documents </li>
</h4>
<li><a href="/delete/{{corpus.id}}">Delete</a></li>
</ul>
'>Manage</a>
-->
<!-- <a class="btn btn-primary btn-lg" role="button" href="/admin/documents/corpus/{{ corpus.id }}/">Add documents</a></p> -->
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% else %}
{% else %}
...
...
templates/pages/projects/overview.html
View file @
d18bd9ce
...
@@ -78,6 +78,7 @@
...
@@ -78,6 +78,7 @@
<div
id=
"project_{{project.id}}"
class=
"row"
>
<div
id=
"project_{{project.id}}"
class=
"row"
>
<h3>
<h3>
<div
class=
"col-md-1 content"
></div>
<div
class=
"col-md-5 content"
>
<div
class=
"col-md-5 content"
>
<a
<a
href=
"/projects/{{ project.id }}"
>
href=
"/projects/{{ project.id }}"
>
...
...
templates/pages/projects/project.html
View file @
d18bd9ce
...
@@ -73,6 +73,7 @@
...
@@ -73,6 +73,7 @@
{% for key, corpora in list_corpora.items %}
{% for key, corpora in list_corpora.items %}
<h2>
<h2>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-md-1 content"
></div>
<span
class=
"glyphicon glyphicon-cd"
aria-hidden=
"true"
></span>
<span
class=
"glyphicon glyphicon-cd"
aria-hidden=
"true"
></span>
{{ key }}
{{ key }}
</h2>
</h2>
...
@@ -80,6 +81,7 @@
...
@@ -80,6 +81,7 @@
<div
id=
"corpus_{{corpus.id}}"
>
<div
id=
"corpus_{{corpus.id}}"
>
<div
class=
"row"
>
<div
class=
"row"
>
<h4>
<h4>
<div
class=
"col-md-1 content"
></div>
<div
class=
"col-md-5 content"
>
<div
class=
"col-md-5 content"
>
<a
href=
"/projects/{{project.id}}/corpora/{{corpus.id}}"
>
<a
href=
"/projects/{{project.id}}/corpora/{{corpus.id}}"
>
<span
class=
"glyphicon glyphicon-file"
aria-hidden=
"true"
></span>
<span
class=
"glyphicon glyphicon-file"
aria-hidden=
"true"
></span>
...
@@ -109,7 +111,7 @@
...
@@ -109,7 +111,7 @@
</button>
</button>
</div>
</div>
<div
class=
"col-md-
5
content"
>
<div
class=
"col-md-
4
content"
>
{% for state in corpus.hyperdata.statuses %}
{% for state in corpus.hyperdata.statuses %}
{% ifequal state.action "ngrams_extraction" %}
{% ifequal state.action "ngrams_extraction" %}
{% if state.complete %}
{% if state.complete %}
...
@@ -293,7 +295,7 @@
...
@@ -293,7 +295,7 @@
$
.
ajax
({
$
.
ajax
({
// contentType: "application/json",
// contentType: "application/json",
url
:
window
.
location
.
origin
+
"/
scrape
rs/pubmed/save/"
+
projectid
,
url
:
window
.
location
.
origin
+
"/
moissonneu
rs/pubmed/save/"
+
projectid
,
data
:
pubmedifiedQuery
,
data
:
pubmedifiedQuery
,
type
:
'POST'
,
type
:
'POST'
,
beforeSend
:
function
(
xhr
)
{
beforeSend
:
function
(
xhr
)
{
...
@@ -365,7 +367,7 @@
...
@@ -365,7 +367,7 @@
if
(
theType
==
"Pubmed (XML format)"
)
{
if
(
theType
==
"Pubmed (XML format)"
)
{
$
.
ajax
({
$
.
ajax
({
// contentType: "application/json",
// contentType: "application/json",
url
:
window
.
location
.
origin
+
"/
scrape
rs/pubmed/query"
,
url
:
window
.
location
.
origin
+
"/
moissonneu
rs/pubmed/query"
,
data
:
formData
,
data
:
formData
,
type
:
'POST'
,
type
:
'POST'
,
beforeSend
:
function
(
xhr
)
{
beforeSend
:
function
(
xhr
)
{
...
@@ -403,10 +405,10 @@
...
@@ -403,10 +405,10 @@
}
}
if
(
theType
==
"ISTex"
)
{
if
(
theType
==
"ISTex"
)
{
console
.
log
(
window
.
location
.
origin
+
"
scrape
rs/istex/query"
)
console
.
log
(
window
.
location
.
origin
+
"
moissonneu
rs/istex/query"
)
$
.
ajax
({
$
.
ajax
({
// contentType: "application/json",
// contentType: "application/json",
url
:
window
.
location
.
origin
+
"/
scrape
rs/istex/query"
,
url
:
window
.
location
.
origin
+
"/
moissonneu
rs/istex/query"
,
data
:
formData
,
data
:
formData
,
type
:
'POST'
,
type
:
'POST'
,
beforeSend
:
function
(
xhr
)
{
beforeSend
:
function
(
xhr
)
{
...
@@ -537,7 +539,7 @@
...
@@ -537,7 +539,7 @@
$
.
ajax
({
$
.
ajax
({
// contentType: "application/json",
// contentType: "application/json",
url
:
window
.
location
.
origin
+
"/
scrape
rs/istex/save/"
+
projectid
,
url
:
window
.
location
.
origin
+
"/
moissonneu
rs/istex/save/"
+
projectid
,
data
:
postQuery
,
data
:
postQuery
,
type
:
'POST'
,
type
:
'POST'
,
beforeSend
:
function
(
xhr
)
{
beforeSend
:
function
(
xhr
)
{
...
...
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