$(function(){ // add switches to title bar $('#title') .append("") .append(""); // tablesorter options $('#tblPackages').tablesorter({ sortList: [[0,0]], widgets: ['saveSort', 'filter', 'stickyHeaders'], widgetOptions: { stickyHeaders_filteredToTop: true, filter_hideEmpty: true, filter_liveSearch: true, filter_saveFilters: true, filter_reset: '.reset', filter_functions: { '.filter-version': true, '.filter-downloaded': true, '.filter-installed': true } } }); // "uninstall package" switch and cookie $('#uninstallpkg') .switchButton({ labels_placement: 'left', on_label: 'unInstall On', off_label: 'unInstall Off', checked: $.cookie('nerdpack_packages_uninstall') == '--uninstall' }) .change(function () { $.cookie('nerdpack_packages_uninstall', $('#uninstallpkg')[0].checked ? '--uninstall' : '', { expires: 3650 }); }); // "delete package" switch and cookie $('#deletepkg') .switchButton({ labels_placement: 'left', on_label: 'delete On', off_label: 'delete Off', checked: $.cookie('nerdpack_packages_delete') == '--delete' }) .change(function () { $.cookie('nerdpack_packages_delete', $('#deletepkg')[0].checked ? '--delete' : '', { expires: 3650 }); }); // select all packages switch $('#checkall') .switchButton({ labels_placement: 'right', on_label: 'Select All', off_label: 'Select All', checked: $.cookie('nerdpack_checkall') == 'yes' }) .change(function () { var myval = $(this)[0].checked; $.cookie('nerdpack_checkall', myval ? 'yes' : 'no', { expires: 3650 }); $('#tblPackages tbody td:visible .pkgcheckbox').switchButton({checked: myval}); }); // set cookie on apply button press $('#btnApply').click(function() { checkDepends(); var Arg2 = (typeof $.cookie('nerdpack_packages_uninstall') === 'undefined') ? '' : '&arg2='+$.cookie('nerdpack_packages_uninstall'); var Arg3 = (typeof $.cookie('nerdpack_packages_delete') === 'undefined') ? '' : '&arg3='+$.cookie('nerdpack_packages_delete'); $.post('/update.php', $('#package_form').serializeArray(), function() { openBox('/plugins/NerdPack/scripts/packagemanager&arg1=--download'+ Arg2 + Arg3, 'Package Manager', 600, 900, true); } ); }); packageQuery(); }); //list all available packages in a table function packageQuery(force) { $('#tblPackages tbody').html("
Please wait, retrieving plugin information ..."); $.getJSON('/plugins/NerdPack/include/PackageQuery.php', {force: force}, function(data) { $('#tblPackages tbody').empty(); var Ready; var Count = 0; var len = data.packages.length, i = 0; for (i; i < len; i++) { var Update; if (data.packages[i].downloadeq == data.packages[i].downloaded && data.packages[i].installeq == data.packages[i].installed){ Update = " up-to-date "; }else{ Update = " update ready "; Ready = true; } var Downloaded = data.packages[i].downloaded; if (data.packages[i].downloadeq != data.packages[i].downloaded) Downloaded = 'old'; var Installed = data.packages[i].installed; if (data.packages[i].installeq != data.packages[i].installed) Installed = 'old'; var Checked = ""; if (data.packages[i].config=="yes"){ Checked = "checked"; Count++; } $('#tblPackages tbody').append(""+ ""+data.packages[i].name+""+ // package name ""+Update+""+ // package status ""+data.packages[i].size+""+ // package size ""+Downloaded+""+ // package downloaded ""+Installed+""+ // package installed ""+data.packages[i].plugins+""+ // package dependents ""+ ""+ ""); } if (Ready) $('#btnApply').prop('disabled', false); // attach switch buttons to every package checkbox all at once $('.pkgcheckbox') .switchButton({ labels_placement: 'right', on_label: 'On', off_label: 'Off' }) .change(function() { $(this).parent().parent().find('.pkgvalue').val(this.checked ? "yes": "no"); if (this.checked) checkDepends(); $('#btnApply').prop("disabled", false); }); // restore filters var lastSearch = $('#tblPackages')[0].config.lastSearch; $('#tblPackages').trigger('update') .trigger('search', [lastSearch]); if (data.empty == true && Count > 0) { swal({title:'Downloaded Packages Missing!',text:'You either changed unRAID versions or deleted your downloaded packages. Click the Apply button below to download and install your selected packages.',type:'warning',closeOnConfirm: true,},function() { $('#btnApply').prop('disabled', false); $('html, body').animate({ scrollTop: $("#btnApply").offset().top }, 2000); }); } }); } function checkDepends() { if ($('#screen')[0].checked) { $('#utempter').switchButton({checked: true}); $('#utempter', '.pkgvalue').val('yes'); } if ($('#iotop')[0].checked) { $('#python').switchButton({checked: true}); $('#python', '.pkgvalue').val('yes'); } }