sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
		
		
		
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							195 lines
						
					
					
						
							6.0 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							195 lines
						
					
					
						
							6.0 KiB
						
					
					
				
								$.when( $.ready ).then(function() {
							 | 
						|
								
							 | 
						|
								    var base = (document.querySelector('base') || {}).href;
							 | 
						|
								
							 | 
						|
								    if($('.message-container').length) {
							 | 
						|
								        setTimeout(
							 | 
						|
								            function()
							 | 
						|
								            {
							 | 
						|
								                $('.message-container').fadeOut();
							 | 
						|
								            }, 3500);
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    // 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){
							 | 
						|
								            var id = $(this).data('id');
							 | 
						|
								            var dataonly = $(this).data('dataonly');
							 | 
						|
								            var increaseby = (dataonly == 1) ? 20000 : 1000;
							 | 
						|
								            var container = $(this);
							 | 
						|
								            var max_timer = 30000;
							 | 
						|
								            var timer = 5000;
							 | 
						|
								            var fun = function worker() {
							 | 
						|
								                $.ajax({
							 | 
						|
								                    url: base+'/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() {
							 | 
						|
								                    // Schedule the next request when the current one's complete
							 | 
						|
								                        livestatsRefreshTimeouts[index] = window.setTimeout(worker, timer);
							 | 
						|
								                    }
							 | 
						|
								                });
							 | 
						|
								            };
							 | 
						|
								            livestatsFuncs[index] = fun;
							 | 
						|
								            fun();
							 | 
						|
								        });
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    function readURL(input) {
							 | 
						|
								
							 | 
						|
								        if (input.files && input.files[0]) {
							 | 
						|
								            var reader = new FileReader();
							 | 
						|
								
							 | 
						|
								            reader.onload = function(e) {
							 | 
						|
								                $('#appimage img').attr('src', e.target.result);
							 | 
						|
								            };
							 | 
						|
								
							 | 
						|
								            reader.readAsDataURL(input.files[0]);
							 | 
						|
								        }
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    $('#upload').change(function() {
							 | 
						|
								        readURL(this);
							 | 
						|
								    });
							 | 
						|
								    /*$(".droppable").droppable({
							 | 
						|
								        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');
							 | 
						|
								                }
							 | 
						|
								            });
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								      });*/
							 | 
						|
								
							 | 
						|
								    $( '#sortable' ).sortable({
							 | 
						|
								        stop: function (event, ui) {
							 | 
						|
								            var idsInOrder = $('#sortable').sortable('toArray', {
							 | 
						|
								                attribute: 'data-id'
							 | 
						|
								            });
							 | 
						|
								            $.post(
							 | 
						|
								                base+'/order',
							 | 
						|
								                { order:idsInOrder }
							 | 
						|
								            );
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								    });
							 | 
						|
								    $('#sortable').sortable('disable');
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    $('#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();
							 | 
						|
								            $('.item-edit').hide();
							 | 
						|
								            $('#app').removeClass('sidebar');
							 | 
						|
								            $('#sortable').sortable('disable');
							 | 
						|
								        } else {
							 | 
						|
								            $('#sortable').sortable('enable');
							 | 
						|
								            setTimeout(function() {
							 | 
						|
								                $('.add-item').fadeIn();
							 | 
						|
								                $('.item-edit').fadeIn();
							 | 
						|
								            }, 350);
							 | 
						|
								
							 | 
						|
								        }
							 | 
						|
								    }).on('click', '#add-item, #pin-item', function(e) {
							 | 
						|
								        e.preventDefault();
							 | 
						|
								        var app = $('#app');
							 | 
						|
								        var active = (app.hasClass('sidebar'));
							 | 
						|
								        app.toggleClass('sidebar');
							 | 
						|
								
							 | 
						|
								    }).on('click', '.close-sidenav', function(e) {
							 | 
						|
								        e.preventDefault();
							 | 
						|
								        var app = $('#app');
							 | 
						|
								        app.removeClass('sidebar');
							 | 
						|
								
							 | 
						|
								    }).on('click', '#test_config', function(e) {
							 | 
						|
								        e.preventDefault();
							 | 
						|
								        var apiurl = $('#create input[name=url]').val();
							 | 
						|
								
							 | 
						|
								        var override_url = $('#create input[name="config[override_url]"]').val();
							 | 
						|
								        if(override_url.length && override_url != '') {
							 | 
						|
								            apiurl = override_url;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        var data = {};
							 | 
						|
								        data['url'] = apiurl;
							 | 
						|
								        $('.config-item').each(function(index){
							 | 
						|
								            var config = $(this).data('config');
							 | 
						|
								            data[config] = $(this).val();
							 | 
						|
								        });
							 | 
						|
								
							 | 
						|
								        $.post(base+'/test_config', { data: data }, function(data) {
							 | 
						|
								            alert(data);
							 | 
						|
								        });
							 | 
						|
								
							 | 
						|
								    });
							 | 
						|
								    $('#pinlist').on('click', 'a', function(e) {
							 | 
						|
								        e.preventDefault();
							 | 
						|
								        var current = $(this);
							 | 
						|
								        var id = current.data('id');
							 | 
						|
								        var tag = current.data('tag');
							 | 
						|
								        $.get(base+'/items/pintoggle/'+id+'/true/'+tag, function(data) {
							 | 
						|
								            var inner = $(data).filter('#sortable').html();
							 | 
						|
								            $('#sortable').html(inner);
							 | 
						|
								            current.toggleClass('active');
							 | 
						|
								        });
							 | 
						|
								    });
							 | 
						|
								
							 | 
						|
								});
							 | 
						|
								
							 |