tm20 selection [ready for rene]

This commit is contained in:
gauthiier
2019-12-09 13:45:24 +01:00
parent 46a0cc8c0b
commit abea0f0597
17 changed files with 3421 additions and 1238 deletions
+1
View File
@@ -0,0 +1 @@
.c3 svg{font:10px sans-serif;-webkit-tap-highlight-color:transparent}.c3 line,.c3 path{fill:none;stroke:#000}.c3 text{-webkit-user-select:none;-moz-user-select:none;user-select:none}.c3-bars path,.c3-event-rect,.c3-legend-item-tile,.c3-xgrid-focus,.c3-ygrid{shape-rendering:crispEdges}.c3-chart-arc path{stroke:#fff}.c3-chart-arc text{fill:#fff;font-size:13px}.c3-grid line{stroke:#aaa}.c3-grid text{fill:#aaa}.c3-xgrid,.c3-ygrid{stroke-dasharray:3 3}.c3-text.c3-empty{fill:grey;font-size:2em}.c3-line{stroke-width:1px}.c3-circle._expanded_{stroke-width:1px;stroke:#fff}.c3-selected-circle{fill:#fff;stroke-width:2px}.c3-bar{stroke-width:0}.c3-bar._expanded_{fill-opacity:1;fill-opacity:.75}.c3-target.c3-focused{opacity:1}.c3-target.c3-focused path.c3-line,.c3-target.c3-focused path.c3-step{stroke-width:2px}.c3-target.c3-defocused{opacity:.3!important}.c3-region{fill:#4682b4;fill-opacity:.1}.c3-brush .extent{fill-opacity:.1}.c3-legend-item{font-size:12px}.c3-legend-item-hidden{opacity:.15}.c3-legend-background{opacity:.75;fill:#fff;stroke:#d3d3d3;stroke-width:1}.c3-title{font:14px sans-serif}.c3-tooltip-container{z-index:10}.c3-tooltip{border-collapse:collapse;border-spacing:0;background-color:#fff;empty-cells:show;-webkit-box-shadow:7px 7px 12px -9px #777;-moz-box-shadow:7px 7px 12px -9px #777;box-shadow:7px 7px 12px -9px #777;opacity:.9}.c3-tooltip tr{border:1px solid #ccc}.c3-tooltip th{background-color:#aaa;font-size:14px;padding:2px 5px;text-align:left;color:#fff}.c3-tooltip td{font-size:13px;padding:3px 6px;background-color:#fff;border-left:1px dotted #999}.c3-tooltip td>span{display:inline-block;width:10px;height:10px;margin-right:6px}.c3-tooltip td.value{text-align:right}.c3-area{stroke-width:0;opacity:.2}.c3-chart-arcs-title{dominant-baseline:middle;font-size:1.3em}.c3-chart-arcs .c3-chart-arcs-background{fill:#e0e0e0;stroke:none}.c3-chart-arcs .c3-chart-arcs-gauge-unit{fill:#000;font-size:16px}.c3-chart-arcs .c3-chart-arcs-gauge-max{fill:#777}.c3-chart-arcs .c3-chart-arcs-gauge-min{fill:#777}.c3-chart-arc .c3-gauge-value{fill:#000}.c3-chart-arc.c3-target g path{opacity:1}.c3-chart-arc.c3-target.c3-focused g path{opacity:1}
+1
View File
File diff suppressed because one or more lines are too long
+5
View File
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

+8
View File
@@ -13,4 +13,12 @@ input[type="text"] {
button {
margin-top: 2em;
}
aaa:hover {
background-color: blue;
}
bb {
background-color: green;
}
+198
View File
@@ -0,0 +1,198 @@
$(document).ready(function(){
$('#loading').hide()
$('#info').click( function() {
console.log("click");
$('#info-search').toggle();
});
$('#search').submit(function(e) {
e.preventDefault();
args = $(this).serialize();
$('#graph').empty();
$('#results').empty();
console.log('/search?'+ args)
$('#loading').show()
$.get('/search?'+ args, function(data) {
$('#loading').hide()
console.log(data);
// $('#graph').empty();
// $('#results').empty();
$.each(data.result, function(i, item) {
search_result_archive(item, data.tags);
});
graph(data);
});
});
});
function search_result_archive(a, tags) {
// aaa = '<aaa class="aaa">[net.art]</aaa> <aaa class="aaa">[net history]</aaa> <aaa class="aaa">[end2end]</aaa>'
aaa = ''
for(let t of tags) {
aaa += '<aaa class="aaa">[' + t + ']</aaa> '
}
$('<div/>', {
id: a.archive,
class: "archive",
}).appendTo('#results');
$('#' + a.archive).append("<h3>" + a.archive + "</h3>");
$.each(a.results, function(i, r) {
$('<ul/>', {
id: r.thread + "-" + a.archive,
text: r.thread.replace('_', ' ')
}).appendTo('#' + a.archive);
let hits = "<ul>";
$.each(r.hits, function(j, h){
// console.log(h)
let hit = '<li><a href="' + h.url+ '" target="_blank">' + h.subject + '</a> -- <i>' + h.author_name + '</i>';
if (h.hasOwnProperty('sel')) {
hit += ' <bb class="bb">[' + h.sel + ']</bb>'
} else {
hit += ' <aa class="aa" data-list="' + a.archive + '" data-url="' + h.url + '"> (+) ' + aaa + '</aa></li>';
}
hits += hit;
});
hits += "</ul>";
$('#' + r.thread + "-" + a.archive).append(hits);
});
$(".aa").click(function(e) {
e.stopImmediatePropagation();
$(this).children().toggle();
});
$(".aaa").hide();
$(".aaa").click(function(e) {
e.stopImmediatePropagation();
let p = $(this).parent();
console.log("click : " + p.data("list") + " -- " + p.data("url") + " -- " + $(this).text());
tag = $(this).text().replace('[','').replace(']', '');
// collect (url, tags, list)
args = 'url=' + encodeURIComponent(p.data("url")) + '&tags=' + encodeURIComponent(tag) + '&list=' + encodeURIComponent(p.data("list"))
$.get('/collect?'+ args, function(data) {
console.log(data)
$.each(data.commited, function(i, r) {
aa = $('aa[data-url="'+r+'"]')
p = aa.parent();
aa.remove();
p.append(' <bb class="bb">[' + data.tag + ']</bb>')
});
});
});
}
var min_month = new Date(1995, 9);
var max_month = new Date();
function diff_months(d1, d2) {
var months;
months = (d2.getFullYear() - d1.getFullYear()) * 12;
months -= d1.getMonth();
months += d2.getMonth();
return months <= 0 ? 0 : months;
}
function format(date) {
var month_names = [
"Jan", "Feb", "Mar",
"Apr", "May", "Jun", "Jul",
"Aug", "Sep", "Oct",
"Nov", "Dec"
];
return month_names[date.getMonth()] + ' ' + date.getFullYear();
}
function graph(data) {
var d = diff_months(min_month, max_month);
var vec = new Array();
for(let ar of data.result) {
let ar_vec = new Array(d + 1).fill(0);
ar_vec[0] = ar.archive;
for(let r of ar.results) {
let date = new Date(Date.parse(r.thread.replace("_", " 1, "))); // this may blow...
let index = diff_months(min_month, date);
ar_vec[index + 1] = r.nbr_hits;
}
vec.push(ar_vec);
}
var x_axis = new Array(d);
for (let i = 0; i < d; i++) {
let d = new Date(min_month.getFullYear(), min_month.getMonth());
d.setMonth(d.getMonth() + i);
x_axis[i] = format(d);
}
// console.log(vec);
var chart = c3.generate({
bindto: '#graph',
data: {
columns: vec,
type: 'bar'
},
axis: {
x: {
type: 'category',
categories: x_axis,
tick: {
culling: {
max: 15
},
multiline:false
}
}
},
bar: {
width: {
ratio: 0.8
}
}
});
}