Heimdall/resources/assets/js/app.js

194 lines
5.9 KiB
JavaScript
Raw Normal View History

2018-02-01 14:45:59 +00:00
$.when( $.ready ).then(function() {
2018-02-03 15:46:14 +00:00
if($('.message-container').length) {
setTimeout(
2018-06-13 14:46:03 +00:00
function()
{
$('.message-container').fadeOut();
}, 3500);
2018-02-08 15:50:53 +00:00
}
2018-02-03 15:46:14 +00:00
// from https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API
// Set the name of the hidden property and the change event for visibility
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
var livestatsRefreshTimeouts = [];
var livestatsFuncs = [];
var livestatsContainers = $('.livestats-container');
function stopLivestatsRefresh() {
for (var timeoutId of livestatsRefreshTimeouts) {
window.clearTimeout(timeoutId);
}
}
function startLivestatsRefresh() {
for (var fun of livestatsFuncs) {
fun();
}
}
if (livestatsContainers.length > 0) {
if (typeof document.addEventListener === "undefined" || hidden === undefined) {
console.log("This browser does not support visibilityChange");
} else {
document.addEventListener(visibilityChange, function() {
if (document[hidden]) {
stopLivestatsRefresh();
} else {
startLivestatsRefresh();
}
}, false);
}
livestatsContainers.each(function(index){
2018-02-08 15:50:53 +00:00
var id = $(this).data('id');
2018-02-08 23:45:37 +00:00
var dataonly = $(this).data('dataonly');
var increaseby = (dataonly == 1) ? 20000 : 1000;
2018-02-08 15:50:53 +00:00
var container = $(this);
var max_timer = 30000;
var timer = 5000;
var fun = function worker() {
2018-02-08 18:53:52 +00:00
$.ajax({
2018-06-13 14:46:03 +00:00
url: '/get_stats/'+id,
dataType: 'json',
success: function(data) {
container.html(data.html);
if(data.status == 'active') timer = increaseby;
else {
if(timer < max_timer) timer += 2000;
}
},
complete: function() {
2018-02-08 18:53:52 +00:00
// Schedule the next request when the current one's complete
livestatsRefreshTimeouts[index] = window.setTimeout(worker, timer);
2018-06-13 14:46:03 +00:00
}
2018-02-08 18:53:52 +00:00
});
};
livestatsFuncs[index] = fun;
fun();
2018-02-08 15:50:53 +00:00
});
2018-02-03 15:46:14 +00:00
}
function readURL(input) {
if (input.files && input.files[0]) {
2018-06-13 14:46:03 +00:00
var reader = new FileReader();
reader.onload = function(e) {
$('#appimage img').attr('src', e.target.result);
};
reader.readAsDataURL(input.files[0]);
}
2018-06-13 14:46:03 +00:00
}
2018-06-13 14:46:03 +00:00
$('#upload').change(function() {
readURL(this);
2018-06-13 14:46:03 +00:00
});
/*$(".droppable").droppable({
2018-02-17 20:37:23 +00:00
tolerance: "intersect",
drop: function( event, ui ) {
var tag = $( this ).data('id');
var item = $( ui.draggable ).data('id');
$.get('tag/add/'+tag+'/'+item, function(data) {
if(data == 1) {
$( ui.draggable ).remove();
} else {
alert('not added');
}
});
2018-06-13 14:46:03 +00:00
2018-02-17 20:37:23 +00:00
}
});*/
2018-06-13 14:46:03 +00:00
$( '#sortable' ).sortable({
stop: function (event, ui) {
2018-06-13 14:46:03 +00:00
var idsInOrder = $('#sortable').sortable('toArray', {
attribute: 'data-id'
});
$.post(
'/order',
{ order:idsInOrder }
);
}
2018-06-13 14:46:03 +00:00
});
2018-06-13 14:46:03 +00:00
$('#sortable').sortable('disable');
2018-02-16 15:15:22 +00:00
2018-02-01 19:55:03 +00:00
$('#app').on('click', '#config-button', function(e) {
e.preventDefault();
var app = $('#app');
var active = (app.hasClass('header'));
app.toggleClass('header');
if(active) {
$('.add-item').hide();
2018-02-05 15:02:18 +00:00
$('.item-edit').hide();
2018-02-01 19:55:03 +00:00
$('#app').removeClass('sidebar');
2018-06-13 14:46:03 +00:00
$('#sortable').sortable('disable');
2018-02-01 19:55:03 +00:00
} else {
2018-06-13 14:46:03 +00:00
$('#sortable').sortable('enable');
setTimeout(function() {
$('.add-item').fadeIn();
$('.item-edit').fadeIn();
}, 350);
2018-02-01 19:55:03 +00:00
}
2018-02-03 15:46:14 +00:00
}).on('click', '#add-item, #pin-item', function(e) {
2018-02-01 19:55:03 +00:00
e.preventDefault();
var app = $('#app');
var active = (app.hasClass('sidebar'));
app.toggleClass('sidebar');
2018-06-13 14:46:03 +00:00
2018-02-03 15:46:14 +00:00
}).on('click', '.close-sidenav', function(e) {
e.preventDefault();
var app = $('#app');
app.removeClass('sidebar');
2018-06-13 14:46:03 +00:00
}).on('click', '#test_config', function(e) {
e.preventDefault();
var apiurl = $('#create input[name=url]').val();
2018-06-13 14:41:15 +00:00
2018-06-17 20:54:16 +00:00
var override_url = $('#create input[name="config[override_url]"]').val();
2018-06-13 14:41:15 +00:00
if(override_url.length && override_url != '') {
apiurl = override_url;
}
2018-06-13 14:46:03 +00:00
var data = {};
data['url'] = apiurl;
2018-10-28 10:59:59 +00:00
$('.config-item').each(function(index){
var config = $(this).data('config');
data[config] = $(this).val();
2018-06-13 14:46:03 +00:00
});
2018-06-17 21:07:26 +00:00
$.post('/test_config', { data: data }, function(data) {
2018-06-13 14:46:03 +00:00
alert(data);
});
2018-02-01 19:55:03 +00:00
});
$('#pinlist').on('click', 'a', function(e) {
e.preventDefault();
var current = $(this);
var id = current.data('id');
var tag = current.data('tag');
$.get('/items/pintoggle/'+id+'/true/'+tag, function(data) {
var inner = $(data).filter('#sortable').html();
$('#sortable').html(inner);
current.toggleClass('active');
});
});
2018-06-13 14:46:03 +00:00
});