Commit b3faf308 authored by delanoe's avatar delanoe

Merge branch 'refactoring' into refactoring-ngrams

parents 7a141a02 1dbdb391
......@@ -161,3 +161,9 @@
.float-right {
float: right;
}
.favactive {
/* yellow */
color: #FFF50D;
text-shadow: -1px 0 #777777, 0 1px #777777, 1px 0 #777777, 0 -1px #777777;
}
......@@ -8,7 +8,7 @@
// dataLoading = signal pour afficher wait
$scope.dataLoading = true ;
console.log("annotations.document.DocController.DocumentHttpService.get():before")
$rootScope.documentResource = DocumentHttpService.get(
......@@ -52,12 +52,64 @@
}]);
annotationsAppDocument.controller('DocFavoriteController',
['$scope', '$rootScope', 'DocumentHttpService',
function ($scope, $rootScope, DocumentHttpService) {
['$scope', '$rootScope', 'MainApiFavoritesHttpService',
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) {
console.log($scope.isFavorite)
// console.log($scope)
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);
......@@ -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);
......@@ -58,9 +58,9 @@
<div class="list-selector">
<h5>Select lists</h5>
<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>
<!-- to disallow unchecking MapList add this into <option> element: ng-disabled="{[{ item.label == 'MapList' }]}" -->
</select>
......@@ -73,7 +73,7 @@
</div>
<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)">
<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>
<!--<nav>
<ul class="pager">
......@@ -129,6 +129,7 @@
/* Constants required for annotations app JS to work */
window.STATIC_URL = "{% static '' %}";
window.ANNOTATION_API_URL = "{{ api_url }}";
window.GARG_ROOT_URL = "{{ garg_url }}";
window.NODES_API_URL = "{{ nodes_api_url }}";
</script>
<script src="{% static 'annotations/main.js' %}"></script>
......
......@@ -5,13 +5,14 @@ from annotations import views
# /!\ urls patterns here are *without* the trailing slash
urlpatterns = [
# json:title,id,authors,journal,
# GET [DocumentHttpService]
# json:title,id,authors,journal,
# publication_date
# abstract_text,full_text
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)
# 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
......
......@@ -30,6 +30,7 @@ def main(request, project_id, corpus_id, document_id):
return render_to_response('annotations/main.html', {
# TODO use reverse()
'api_url': urljoin(request.get_host(), '/annotations/'),
'garg_url': request.get_host(),
'nodes_api_url': urljoin(request.get_host(), '/api/'),
}, context_instance=RequestContext(request))
......
......@@ -26,7 +26,7 @@ from annotations.views import main as annotations_main_view
import graphExplorer.urls
# Module Scrapers
import scrapers.urls
import moissonneurs.urls
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'^projects/(\d+)/corpora/(\d+)/documents/(\d+)/$', annotations_main_view)
# Module Scrapers
, url(r'^scrapers/' , include( scrapers.urls ) )
# Module Scrapers (Moissonneurs in French)
, url(r'^moissonneurs/' , include( moissonneurs.urls ) )
]
This diff is collapsed.
......@@ -15,7 +15,7 @@ from gargantext.util.http import JsonHttpResponse
from gargantext.util.scheduling import scheduled
from gargantext.util.toolchain import parse_extract_indexhyperdata
from scrapers.util import Scraper
from moissonneurs.util import Scraper
......
......@@ -26,7 +26,7 @@ from gargantext.util.http import JsonHttpResponse
from gargantext.util.scheduling import scheduled
from gargantext.util.toolchain import parse_extract_indexhyperdata
from scrapers.util import Scraper
from moissonneurs.util import Scraper
......
......@@ -7,7 +7,7 @@
#
# Scrapers == getting data from external databases
# moissonneurs == getting data from external databases
# Available databases :
......@@ -18,19 +18,19 @@
from django.conf.urls import url
import scrapers.pubmed as pubmed
import scrapers.istex as istex
import moissonneurs.pubmed as pubmed
import moissonneurs.istex as istex
# TODO
#import scrapers.cern as cern
#import moissonneurs.cern as cern
# TODO
#import scrapers.hal as hal
#import scrapers.revuesOrg as revuesOrg
#import moissonneurs.hal as hal
#import moissonneurs.revuesOrg as revuesOrg
# TODO ?
# REST API for the scrapers
# REST API for the moissonneurs
# /!\ urls patterns here are *without* the trailing slash
urlpatterns = [ url(r'^pubmed/query$' , pubmed.query )
......
......@@ -143,6 +143,7 @@ var RecDict={};
var AjaxRecords = []
var Garbage = {}
var countByTitles = {} // useful for title duplicates
var favorites = {}
function getRecord(rec_id) {
return MyTable.data('dynatable').settings.dataset.originalRecords[rec_id];
......@@ -153,6 +154,39 @@ function getRecords() {
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) {
// pr("\t\ttransformContent2: "+rec_id)
var elem = AjaxRecords[rec_id];
......@@ -162,12 +196,14 @@ function transformContent2(rec_id) {
result["id"] = elem["id"]
result["date"] = '<strike>'+elem["date"]+'</strike>'
result["docurl"] = '<strike>'+elem["docurl"]+'</strike>'
result["isFavorite"] = favstatusToStar(rec_id, elem["isFavorite"], boolStrike=true)
result["rawtitle"] = elem["rawtitle"]
result["del"] = '<input id='+rec_id+' onclick="overRide(this)" type="checkbox" checked/>'
} else {
result["id"] = elem["id"]
result["date"] = elem["date"]
result["docurl"] = elem["docurl"]
result["isFavorite"] = favstatusToStar(rec_id, elem["isFavorite"])
result["rawtitle"] = elem["rawtitle"]
result["del"] = '<input id='+rec_id+' onclick="overRide(this)" type="checkbox"/>'
}
......@@ -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"+'<th data-dynatable-column="docurl">'+"\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"+'<span class="glyphicon glyphicon-trash"></span>'+"\n"
div_table += "\t"+"\t"+'</th>'+"\n"
......@@ -445,7 +484,7 @@ function Main_test(Data) {
},
inputs: {
// our own search which differentiates title vs abstract queries
queries: $('#doubleSearch, #dupFilter')
queries: $('#doubleSearch, #docFilter')
},
writers: {
_rowWriter: ulWriter
......@@ -495,14 +534,16 @@ function Main_test(Data) {
}
// MyTable.data('dynatable').process();
// also append another bound filter for duplicates
// also append another bound filter for duplicates/favorites
MyTable.data('dynatable').queries
.functions['dupFilter'] = function(record,selected) {
return (selected == 'filter_all')||(countByTitles[record.rawtitle] > 1)
.functions['docFilter'] = function(record,opt) {
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'
MyTable.data('dynatable').settings.dataset.queries['dupFilter'] = 'filter_all'
MyTable.data('dynatable').settings.dataset.queries['docFilter'] = 'filter_all'
MyTable.data('dynatable').sorts.functions["rawtitleSort"] = function testSort (rec1,rec2) {
......@@ -531,20 +572,20 @@ function Main_test(Data) {
var dupFlag = false ;
$("#div-table").on("dynatable:queries:added", function(e, qname, qval) {
if (!dupFlag && qname == 'dupFilter' && qval == "filter_dupl") {
MyTable.data('dynatable').queries.remove('dupFilter')
if (!dupFlag && qname == 'docFilter' && qval == "filter_dupl") {
MyTable.data('dynatable').queries.remove('docFilter')
// to avoid recursion when we'll call this filter again in 4 lines
dupFlag = true ;
// sort alphabetically **before** duplicates filter
MyTable.data('dynatable').sorts.clear();
MyTable.data('dynatable').sorts.add('rawtitle', -1) // -1 <==> DESC (ASC doesn't work well ?)
MyTable.data('dynatable').queries.add('dupFilter', 'filter_dupl')
MyTable.data('dynatable').queries.add('docFilter', 'filter_dupl')
MyTable.data('dynatable').process();
}
});
$("#div-table").on("dynatable:queries:removed", function(e, qname) {
if (qname == 'dupFilter') {
if (qname == 'docFilter') {
dupFlag = false ;
}
});
......@@ -556,36 +597,53 @@ $.ajax({
url: '/api/nodes?types[]=DOCUMENT&pagination_limit=-1&parent_id='
+ corpus_id
+'&fields[]=parent_id&fields[]=id&fields[]=name&fields[]=typename&fields[]=hyperdata',
success: function(data){
$("#content_loader").remove();
$.each(data.records, function(i, record){
var orig_id = parseInt(record.id);
var arr_id = parseInt(i)
RecDict[orig_id] = arr_id;
record.rawtitle = record.name;
// 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;
});
success: function(maindata){
// unfortunately favorites info is in a separate request (other nodes)
$.ajax({
url: 'http://localhost:8000/api/nodes/'+corpus_id+'/favorites',
success: function(favdata){
// initialize favs lookup
for (var i in favdata['favdocs']) {
doc_id = favdata['favdocs'][i]
favorites[doc_id] = true ;
}
// initialize CountByTitle census
for (var i in data.records) {
ourTitle = data.records[i]['rawtitle'] ;
if (countByTitles.hasOwnProperty(ourTitle)) {
countByTitles[ourTitle] ++ ;
}
else {
countByTitles[ourTitle] = 1 ;
}
}
AjaxRecords = data.records; // backup-ing in global variable!
// now process the nodes data from 1st request
$.each(maindata.records, function(i, record){
var orig_id = parseInt(record.id);
var arr_id = parseInt(i)
RecDict[orig_id] = arr_id;
record.rawtitle = record.name;
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 )
},
});
},
});
......@@ -290,7 +290,7 @@ function Main_test( data , initial) {
var div_table = '<p align="right">'+"\n"
div_table += '<table id="my-ajax-table" class="table table-bordered table-hover">'+"\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 id="score_column_id" data-dynatable-sorts="score" data-dynatable-column="score">Score</th>'+"\n"
div_table += "\t"+"\t"+'</th>'+"\n"
......
......@@ -59,9 +59,12 @@
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
Publications by source
</h4>
<h2 class="panel-title">
<center>
<span class="glyphicon glyphicon-hand-down" aria-hidden="true"></span>
Publications by source
</center>
</h2>
</div>
......
......@@ -55,12 +55,15 @@
<div class="panel panel-default">
<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
<!-- <button title='run test function' onclick="doATest()">
TEST
</button> -->
</a>
</center>
</h2>
<!-- see in javascript function queries.functions['my_state_filter'] -->
<div class="pull-left" style="margin-top:1.85em;">
......
......@@ -54,9 +54,12 @@
<div class="jumbotron">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
Publications by title
</h4>
<h2 class="panel-title">
<center>
<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 -->
<div class="pull-left" style="margin-top:1.85em; font-size: 16px;">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
......@@ -70,9 +73,10 @@
<input title="Search in Abstracts" id="searchAB" name="searchAB" type="checkbox">AB
</span>&nbsp;&nbsp;
<span class="glyphicon glyphicon-filter" aria-hidden="true"></span>
<select id="dupFilter" name="dupFilter">
<select id="docFilter" name="docFilter">
<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>
</div>
</div>
......
......@@ -111,14 +111,26 @@
</a>
<i class="caret"></i>
<ul class="dropdown-menu">
<li>
<a tabindex="-1"
data-url="/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&amp;field2=ngrams&amp;distance=conditional&amp;bridgeness=5" onclick='gotoexplorer(this)' >With conditional distance </a>
</li>
<li>
<a tabindex="-1"
data-url="/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&amp;field2=ngrams&amp;distance=distributional&amp;bridgeness=5" onclick='gotoexplorer(this)' >With distributional distance</a>
</li>
{% if view != "graph" %}
<li>
<a tabindex="-1"
data-url="/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&amp;field2=ngrams&amp;distance=conditional&amp;bridgeness=5" onclick='gotoexplorer(this)' >With conditional distance </a>
</li>
<li>
<a tabindex="-1"
data-url="/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&amp;field2=ngrams&amp;distance=distributional&amp;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&amp;field2=ngrams&amp;distance=conditional&amp;bridgeness=5" >With conditional distance </a>
</li>
<li>
<a tabindex="-1"
href="/projects/{{project.id}}/corpora/{{ corpus.id }}/explorer?field1=ngrams&amp;field2=ngrams&amp;distance=distributional&amp;bridgeness=5">With distributional distance</a>
</li>
{% endif %}
</ul>
</li>
{% endif %}
......@@ -138,52 +150,42 @@
<div class="jumbotron" style="margin-bottom:0">
<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="col-md-4">
{% if project %}
<h3><a href="/projects/{{project.id}}">
<div class="col-md-3">
<h3>
<a href="/projects/{{project.id}}">
<span class="glyphicon glyphicon-book" aria-hidden="true"></span>
{{ project.name }}
{{ project.name | truncatechars:15}}
</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>
{% endif %}
</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 class="col-md-4">
<br>
<!-- <a class="btn btn-default" role="button" href="/project/{{project.id}}/corpus/{{corpus.id}}/{{view}}/update">Update</a> -->
<!--
<a class="btn btn-default" role="button" href="/project/{{project.id}}/corpus/{{ corpus.id }}/corpus.csv">Download</a>
<a type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom"
data-content='
<ul>
<li> Rename </li>
<li> Add new documents </li>
<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> -->
<h3>
<span class="glyphicon glyphicon-calendar" aria-hidden="true"></span> {{ corpus.date }}
</h3>
<h3>
<span class="glyphicon glyphicon-user" aria-hidden="true"></span>
Author(s):
</h3>
<h4>
{{ user.username | truncatechars:15}}
</h4>
</div>
</div>
</div>
</div>
</div>
{% else %}
......
......@@ -78,6 +78,7 @@
<div id="project_{{project.id}}" class="row">
<h3>
<div class="col-md-1 content"></div>
<div class="col-md-5 content">
<a
href="/projects/{{ project.id }}">
......
......@@ -73,6 +73,7 @@
{% for key, corpora in list_corpora.items %}
<h2>
<div class="row">
<div class="col-md-1 content"></div>
<span class="glyphicon glyphicon-cd" aria-hidden="true"></span>
{{ key }}
</h2>
......@@ -80,6 +81,7 @@
<div id="corpus_{{corpus.id}}">
<div class="row">
<h4>
<div class="col-md-1 content"></div>
<div class="col-md-5 content">
<a href="/projects/{{project.id}}/corpora/{{corpus.id}}">
<span class="glyphicon glyphicon-file" aria-hidden="true"></span>
......@@ -109,7 +111,7 @@
</button>
</div>
<div class="col-md-5 content">
<div class="col-md-4 content">
{% for state in corpus.hyperdata.statuses %}
{% ifequal state.action "ngrams_extraction" %}
{% if state.complete %}
......@@ -293,7 +295,7 @@
$.ajax({
// contentType: "application/json",
url: window.location.origin+"/scrapers/pubmed/save/"+projectid,
url: window.location.origin+"/moissonneurs/pubmed/save/"+projectid,
data: pubmedifiedQuery,
type: 'POST',
beforeSend: function(xhr) {
......@@ -365,7 +367,7 @@
if(theType=="Pubmed (XML format)") {
$.ajax({
// contentType: "application/json",
url: window.location.origin+"/scrapers/pubmed/query",
url: window.location.origin+"/moissonneurs/pubmed/query",
data: formData,
type: 'POST',
beforeSend: function(xhr) {
......@@ -403,10 +405,10 @@
}
if(theType=="ISTex") {
console.log(window.location.origin+"scrapers/istex/query")
console.log(window.location.origin+"moissonneurs/istex/query")
$.ajax({
// contentType: "application/json",
url: window.location.origin+"/scrapers/istex/query",
url: window.location.origin+"/moissonneurs/istex/query",
data: formData,
type: 'POST',
beforeSend: function(xhr) {
......@@ -537,7 +539,7 @@
$.ajax({
// contentType: "application/json",
url: window.location.origin+"/scrapers/istex/save/"+projectid,
url: window.location.origin+"/moissonneurs/istex/save/"+projectid,
data: postQuery,
type: 'POST',
beforeSend: function(xhr) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment