Fixed: Don't allow CA to update itself from the card or from sidebar (only from banner) -> crashes CA
Fixed: Race condition (sort order wouldn't always be correct when going anywhere from Home -> Show More
This commit is contained in:
Squidly271 2022-01-15 12:54:20 -05:00
parent 79c87b5226
commit 7ae16f3957
4 changed files with 154 additions and 24 deletions

Binary file not shown.

View File

@ -243,8 +243,22 @@ $(function(){
$("#searchBox").keydown(function(e) {
if (e.which === 13) {
searchBoxAwesomplete.close();
checkSortOrder();
doSearch();
// this is the check sort order function
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
doSearch();
});
} else {
doSearch();
}
}
});
@ -302,16 +316,42 @@ $(function(){
$('body').on("click",".ca_repoSearch,.ca_repoSearchPopUp",function() {
closeSidebar();
var repo = $(this).data("repository");
checkSortOrder();
doSearch(false,repo);
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
doSearch(false,repo);
});
} else {
doSearch(false,repo);
}
});
$('.favouriteRepo').on("click",function() {
if ( $(this).hasClass("caMenuDisabled") )
return;
var repo = $(this).attr("data-repository");
checkSortOrder();
doSearch(false,repo);
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
doSearch(false,repo);
});
} else {
doSearch(false,repo);
}
});
$('body').on("click",".templateSearch",function() {
@ -410,10 +450,25 @@ $(function(){
if ( ! data.searchFlag ) {
$("#searchBox").val("");
}
checkSortOrder();
showSortIcons();
scrollToTop();
changeCategory(menu,false);
// This is the checkSortOrder function to prevent a race condition
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
changeCategory(menu,false);
});
} else {
changeCategory(menu,false);
}
});
$('.menuItems').on("mouseover",".caMenuItem",function() {
@ -516,11 +571,7 @@ $(function(){
var sortOrder = new Object();
sortOrder.sortBy = sortBy;
sortOrder.sortDir = sortDir;
$(".sortIcons").each(function() {
if ( $(this).data("sortby") == sortBy && $(this).data("sortdir") == sortDir ) {
$(this).addClass("enabledIcon").addClass("startupMore");
}
});
$(".sortIcons").addClass("startupMore");
}
$("#CategoryLine").html($(this).data("des"));
scrollToTop();
@ -541,8 +592,21 @@ $(function(){
$(".clearSearch").click(function() {
if ( $(this).hasClass("caMenuEnabled") ) {
checkSortOrder();
doSearch(true);
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
doSearch(true);
});
} else {
doSearch(true);
}
}
});
@ -726,7 +790,24 @@ function setToolTip() {
}
function showSpecialCategory(button) {
checkSortOrder();
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
showSpecials(button)
});
} else {
showSpecials(button);
}
}
function showSpecials(button) {
showSortIcons();
$(".caMenuItem").removeClass("selectedMenu");
$(".multi_installDiv").hide();
@ -944,7 +1025,22 @@ function populateAutoComplete() {
}
function awesompleteSearch() {
doSearch(false);
// this is the check sort order function
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
doSearch(false);
});
} else {
doSearch(false);
}
}
@ -1038,7 +1134,6 @@ function showModeration(script,title) {
}
function previousApps(installed,dontClear=false,filter="") {
checkSortOrder();
clearCategory();
setPageOne();
data.docker = "";
@ -1046,7 +1141,25 @@ function previousApps(installed,dontClear=false,filter="") {
clearSearchBox();
$(".dockerSearch").hide();
showSortIcons();
// this is the checkSortOrder function running to prevent a race condition
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
getPrevApps(installed,filter,dontClear);
});
} else {
getPrevApps(installed,filter,dontClear);
}
}
function getPrevApps(installed,filter,dontClear) {
post({action:'previous_apps',installed:installed,filter:filter},function(result) {
if ( installed ) {
$(".multi_installDiv").hide();
@ -1220,7 +1333,24 @@ function clearCategory() {
}
function pinnedApps() {
checkSortOrder();
var sortButton = false;
$(".sortIcons").each(function() {
if ($(this).hasClass("enabledIcon") && ( ! $(this).hasClass("startupMore") ) ) {
sortButton = true;
}
});
if ( !sortButton) {
$(".sortIcons").removeClass("enabledIcon").removeClass("startupMore");
post({action:"defaultSortOrder"},function(data) {
$("#defaultSort").addClass("enabledIcon");
pins();
});
} else {
pins();
}
}
function pins() {
setPageOne();
data.docker = "";
clearSearchBox();

View File

@ -1,4 +1,4 @@
3692dc60d8516210f74936cef99f5880 ./Apps.page
2ed256f96d4bc9460ff5d2f6c417b179 ./Apps.page
4e55f7483b661af21a25b677179baffe ./CA_notices.page
c7c6da0a4a4a7ac33f387ea178319bae ./ca_settings.page
ed2883d6c44c19304c431079596a1731 ./default.cfg
@ -21,4 +21,4 @@ a1401a0bed89c182b69f0c7508282c1f ./scripts/pluginInstall.php
34554a56611dfe625889c82afd5138de ./scripts/updatePluginSupport.php
b9af1449b8201afb0866cc53f279cd63 ./skins/Narrow/css.php
7d827147dc8ede3d518b2cacae1d385b ./skins/Narrow/skin.html
028147b7da9a8de60ffa802949dd0754 ./skins/Narrow/skin.php
6d3a8beb447e1890e6a0c7c8223a1b7f ./skins/Narrow/skin.php

View File

@ -163,7 +163,7 @@ function my_display_apps($file,$pageNumber=1,$selectedApps=false,$startup=false)
} else {
$pluginName = basename($template['PluginURL']);
if ( file_exists("/var/log/plugins/$pluginName") ) {
if ( plugin("version","/var/log/plugins/$pluginName") != $template['pluginVersion'] ) {
if ( plugin("version","/var/log/plugins/$pluginName") != $template['pluginVersion'] && $template['Name'] !== "Community Applications" ) {
@copy($caPaths['pluginTempDownload'],"/tmp/plugins/$pluginName");
$actionsContext[] = array("icon"=>"ca_fa-update","text"=>tr("Update"),"action"=>"installPlugin('$pluginName',true);");
}
@ -553,7 +553,7 @@ function getPopupDescriptionSkin($appNumber) {
} else {
if ( file_exists("/var/log/plugins/$pluginName") ) {
$template['installedVersion'] = plugin("version","/var/log/plugins/$pluginName");
if ( $template['installedVersion'] != $template['pluginVersion'] ) {
if ( $template['installedVersion'] != $template['pluginVersion'] && $template['Name'] !== "Community Applications") {
@copy($caPaths['pluginTempDownload'],"/tmp/plugins/$pluginName");
$actionsContext[] = array("icon"=>"ca_fa-update","text"=>tr("Update"),"action"=>"installPlugin('$pluginName',true);");
}