mirror of
https://github.com/ysoftdevs/odc-analyzer.git
synced 2026-01-14 07:44:00 +01:00
94 lines
3.2 KiB
JavaScript
94 lines
3.2 KiB
JavaScript
function toggleTag(el){
|
|
var btn = $(el);
|
|
var tagId = parseInt(btn.attr("data-tag-id"));
|
|
var libraryId = parseInt(btn.attr("data-library-id"));
|
|
btn.attr({disabled: true});
|
|
var add = !btn.hasClass("btn-success");
|
|
var libraryTagPair = {tagId: tagId, libraryId: libraryId};
|
|
$.ajax({
|
|
url: add ? Routes.addTag : Routes.removeTag,
|
|
method: 'POST',
|
|
//dataType: 'json',
|
|
data: JSON.stringify(
|
|
add ? { libraryTagPair: libraryTagPair, contextDependent: false} : libraryTagPair
|
|
),
|
|
contentType : 'application/json',
|
|
success: function(){
|
|
if(add){
|
|
btn.addClass("btn-success");
|
|
}else{
|
|
btn.removeClass("btn-success");
|
|
}
|
|
btn.attr({disabled: false});
|
|
//alert("SUCCESS "+add);
|
|
},
|
|
error: function(){
|
|
alert("FAILED!");
|
|
btn.addClass("btn-danger");
|
|
// Can't enable the button as we can't be sure about the current state
|
|
}/*,
|
|
complete: function(a, b){
|
|
console.log("complete", a, b);
|
|
alert(["complete", a, b]);
|
|
}*/
|
|
});
|
|
}
|
|
function toggleClassified(el){
|
|
var btn = $(el);
|
|
var libraryId = parseInt(btn.attr("data-library-id"));
|
|
btn.attr({disabled: true});
|
|
var classifiedNewValue = !btn.hasClass("btn-success");
|
|
$.ajax({
|
|
url: Routes.controllers.Application.setClassified(classifiedNewValue).url,
|
|
method: 'POST',
|
|
contentType : 'application/json',
|
|
data: ""+libraryId,
|
|
success: function(){
|
|
if(classifiedNewValue){
|
|
btn.addClass("btn-success");
|
|
}else{
|
|
btn.removeClass("btn-success");
|
|
}
|
|
btn.attr({disabled: false});
|
|
},
|
|
error: function(){
|
|
alert("FAILED!");
|
|
btn.addClass("btn-danger");
|
|
}
|
|
});
|
|
}
|
|
|
|
function updatePosition(){
|
|
// document.getElementById(…) is used over $('#'+…) in order to reduce attack surface: It does not look like a good idea to pass untrusted input to “omnipotent” `$` function.
|
|
$.scrollTo(document.getElementById(location.hash.substr(1)), {offset: -$('#navbar').height()});
|
|
}
|
|
function lazyLoad(el){
|
|
var $el = $(el);
|
|
var wrapExpr = $el.attr('data-wrapper');
|
|
var targetEl = wrapExpr ? $(wrapExpr) : $el;
|
|
var url = $el.attr("data-lazyload-url");
|
|
function setUrl(newUrl){
|
|
$el.attr("data-lazyload-url", newUrl);
|
|
}
|
|
if(url){
|
|
if($el != targetEl){
|
|
$el.html(targetEl);
|
|
}
|
|
targetEl.html($('<div class="progress">')
|
|
.append(
|
|
$('<div class="progress-bar progress-bar-striped active" role="progressbar" style="width: 100%;">Loading…</div>')
|
|
)
|
|
);
|
|
targetEl.load(url, function( response, status, xhr ) {
|
|
if ( status == "error" ) {
|
|
targetEl.html("Error when loading data");
|
|
setUrl(url);
|
|
}
|
|
});
|
|
setUrl(null);
|
|
}
|
|
}
|
|
|
|
$(window).bind('hashchange', function(e) { updatePosition(); });
|
|
$(window).bind('load', function(e) { updatePosition(); });
|
|
$(window).bind('show.bs.collapse', function(e){ lazyLoad(e.target); }); |