kjhh
parent
de86d94bf0
commit
101b4e4075
Binary file not shown.
|
@ -2,8 +2,8 @@
|
||||||
<!DOCTYPE PLUGIN [
|
<!DOCTYPE PLUGIN [
|
||||||
<!ENTITY name "community.applications">
|
<!ENTITY name "community.applications">
|
||||||
<!ENTITY author "Andrew Zawadzki">
|
<!ENTITY author "Andrew Zawadzki">
|
||||||
<!ENTITY version "2024.11.27">
|
<!ENTITY version "2024.11.29">
|
||||||
<!ENTITY md5 "4525f48c9a7dd43f0e5abcb028c26c95">
|
<!ENTITY md5 "d41d6a0ef89fa2c234a8d9171d275971">
|
||||||
<!ENTITY launch "Apps">
|
<!ENTITY launch "Apps">
|
||||||
<!ENTITY plugdir "/usr/local/emhttp/plugins/&name;">
|
<!ENTITY plugdir "/usr/local/emhttp/plugins/&name;">
|
||||||
<!ENTITY github "Squidly271/community.applications">
|
<!ENTITY github "Squidly271/community.applications">
|
||||||
|
@ -13,6 +13,10 @@
|
||||||
<PLUGIN name="&name;" author="&author;" version="&version;" launch="&launch;" pluginURL="&pluginURL;" min="6.12.0" support="https://forums.unraid.net/topic/38582-plug-in-community-applications" icon="users">
|
<PLUGIN name="&name;" author="&author;" version="&version;" launch="&launch;" pluginURL="&pluginURL;" min="6.12.0" support="https://forums.unraid.net/topic/38582-plug-in-community-applications" icon="users">
|
||||||
|
|
||||||
<CHANGES>
|
<CHANGES>
|
||||||
|
###2924,11,29
|
||||||
|
- Fixed: Attempting to visit the support forum (or project) where there was only the single option (ie: Card said "Support Forum" instead of "Support" with a dropdown would fail
|
||||||
|
- Added: Ability to "whitelist" 3rd party external links
|
||||||
|
|
||||||
###2024.11.27
|
###2024.11.27
|
||||||
- Fixed: Code unnecessary with Unraid 7.x was being executed
|
- Fixed: Code unnecessary with Unraid 7.x was being executed
|
||||||
|
|
||||||
|
|
|
@ -190,59 +190,73 @@ var wheelActive = false;
|
||||||
var ca_done_override = false;
|
var ca_done_override = false;
|
||||||
|
|
||||||
// handle 3rd party links on older versions of OS
|
// handle 3rd party links on older versions of OS
|
||||||
<? if ( version_compare($unRaidSettings['version'],"6.12.999","<") ):?>
|
<? if ( version_compare($unRaidSettings['version'],"7.0.0-rc1","<") ):?>
|
||||||
var gui_pages_available = [];
|
var gui_pages_available = [];
|
||||||
<?
|
<?
|
||||||
$gui_pages = glob("/usr/local/emhttp/plugins/*/*.page");
|
$gui_pages = glob("/usr/local/emhttp/plugins/*/*.page");
|
||||||
array_walk($gui_pages,function($value,$key){ ?>
|
array_walk($gui_pages,function($value,$key){ ?>
|
||||||
gui_pages_available.push('<?=basename($value,".page")?>'); <?
|
gui_pages_available.push('<?=basename($value,".page")?>'); <?
|
||||||
});
|
});
|
||||||
?>
|
?>
|
||||||
|
|
||||||
function isValidURL(url) {
|
function isValidURL(url) {
|
||||||
try {
|
try {
|
||||||
new URL(url);
|
var ret = new URL(url);
|
||||||
return true;
|
return ret;
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
function checkURL(href,target="") {
|
}
|
||||||
if ( href ) {
|
|
||||||
if ( href.match('https?://[^\.]*.(my)?unraid.net/') || href.indexOf("https://unraid.net/") == 0 || href == "https://unraid.net" || href.indexOf("http://lime-technology.com") == 0) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (href !== "#" && href.indexOf("javascript") !== 0) {
|
$('body').on("click","a,.ca_href", function(e) {
|
||||||
if ( ! isValidURL(href) ) {
|
if ($(this).hasClass("ca_href") ) {
|
||||||
if ( href.indexOf("/") == 0 ) { // all internal links start with "/"
|
var ca_href = true;
|
||||||
return true;
|
var href=$(this).attr("data-href");
|
||||||
}
|
var target=$(this).attr("data-target");
|
||||||
var baseURLpage = href.split("/");
|
} else {
|
||||||
if ( gui_pages_available.includes(baseURLpage[0]) ) {
|
var ca_href = false;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( $(this).hasClass("localURL") ) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$('body').on("click","a", function(e) {
|
|
||||||
var href = $(this).attr("href");
|
var href = $(this).attr("href");
|
||||||
var target = $(this).attr("target");
|
var target = $(this).attr("target");
|
||||||
if ( !href )
|
}
|
||||||
return;
|
if ( href ) {
|
||||||
href = href.trim();
|
href = href.trim();
|
||||||
if ( ! checkURL(href,target) ) {
|
if ( href.match('https?://[^\.]*.(my)?unraid.net/') || href.indexOf("https://unraid.net/") == 0 || href == "https://unraid.net" || href.indexOf("http://lime-technology.com") == 0) {
|
||||||
|
if ( ca_href ) {
|
||||||
|
window.open(href,target);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (href !== "#" && href.indexOf("javascript") !== 0) {
|
||||||
|
var dom = isValidURL(href);
|
||||||
|
if ( dom == false ) {
|
||||||
|
if ( href.indexOf("/") == 0 ) { // all internal links start with "/"
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var baseURLpage = href.split("/");
|
||||||
|
if ( gui_pages_available.includes(baseURLpage[0]) ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( $(this).hasClass("localURL") ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
var domainsAllowed = JSON.parse($.cookie("allowedDomains"));
|
||||||
|
} catch(e) {
|
||||||
|
var domainsAllowed = new Object();
|
||||||
|
}
|
||||||
|
$.cookie("allowedDomains",JSON.stringify(domainsAllowed),{expires:3650}); // rewrite cookie to further extend expiration by 400 days
|
||||||
|
|
||||||
|
if ( domainsAllowed[dom.hostname] ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
swal({
|
swal({
|
||||||
title: "<?=_('External Link')?>",
|
title: "<?=_('External Link')?>",
|
||||||
text: "<span title='"+href+"'><?=_('Clicking OK will take you to a 3rd party website not associated with Limetech')?><br><br><b>"+href+"</span>",
|
text: "<span title='"+href+"'><?=_('Clicking OK will take you to a 3rd party website not associated with Limetech')?><br><br><b>"+href+"<br><br><input id='Link_Always_Allow' type='checkbox'></input><?=_('Always Allow')?> "+dom.hostname+"</span>",
|
||||||
html: true,
|
html: true,
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
showCancelButton: true,
|
showCancelButton: true,
|
||||||
|
@ -251,6 +265,10 @@ var ca_done_override = false;
|
||||||
confirmButtonText: "<?=_('OK')?>"
|
confirmButtonText: "<?=_('OK')?>"
|
||||||
},function(isConfirm) {
|
},function(isConfirm) {
|
||||||
if (isConfirm) {
|
if (isConfirm) {
|
||||||
|
if ( $("#Link_Always_Allow").is(":checked") ) {
|
||||||
|
domainsAllowed[dom.hostname] = true;
|
||||||
|
$.cookie("allowedDomains",JSON.stringify(domainsAllowed),{expires:3650});
|
||||||
|
}
|
||||||
var popupOpen = window.open(href,target);
|
var popupOpen = window.open(href,target);
|
||||||
if ( !popupOpen || popupOpen.closed || typeof popupOpen == "undefined" ) {
|
if ( !popupOpen || popupOpen.closed || typeof popupOpen == "undefined" ) {
|
||||||
var popupWarning = addBannerWarning("<?=_('Popup Blocked.');?>");
|
var popupWarning = addBannerWarning("<?=_('Popup Blocked.');?>");
|
||||||
|
@ -260,8 +278,9 @@ var ca_done_override = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else return;
|
}
|
||||||
});
|
}
|
||||||
|
});
|
||||||
<?endif;?>
|
<?endif;?>
|
||||||
|
|
||||||
$(function(){
|
$(function(){
|
||||||
|
@ -420,38 +439,6 @@ $(function(){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
$('.mainArea').on("click",".ca_href",function(e) {
|
|
||||||
var href = $(this).attr("data-href");
|
|
||||||
var target = $(this).attr("data-target");
|
|
||||||
if ( ! target ) target = "_blank";
|
|
||||||
if ( checkURL(href,target) ) {
|
|
||||||
window.open(href,target);
|
|
||||||
} else {
|
|
||||||
e.preventDefault();
|
|
||||||
swal({
|
|
||||||
title: "<?=_('External Link')?>",
|
|
||||||
text: "<span title='"+href+"'><?=_('Clicking OK will take you to a 3rd party website not associated with Limetech')?><br><br><b>"+href+"</span>",
|
|
||||||
html: true,
|
|
||||||
type: 'warning',
|
|
||||||
showCancelButton: true,
|
|
||||||
showConfirmButton: true,
|
|
||||||
cancelButtonText: "<?=_('Cancel')?>",
|
|
||||||
confirmButtonText: "<?=_('OK')?>"
|
|
||||||
},function(isConfirm) {
|
|
||||||
if (isConfirm) {
|
|
||||||
var popupOpen = window.open(href,target);
|
|
||||||
if ( !popupOpen || popupOpen.closed || typeof popupOpen == "undefined" ) {
|
|
||||||
var popupWarning = addBannerWarning("<?=_('Popup Blocked.');?>");
|
|
||||||
setTimeout(function() {
|
|
||||||
removeBannerWarning(popupWarning);}
|
|
||||||
,10000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
$('body').on("click",".dockerUpdate",function() {
|
$('body').on("click",".dockerUpdate",function() {
|
||||||
var container = $(this).attr("data-name");
|
var container = $(this).attr("data-name");
|
||||||
updateDocker(container);
|
updateDocker(container);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
6e475bfc6d951a441e6b31403fa1a241 ./Apps.page
|
61eb082eb073f58ec1d750af5b7ab9d1 ./Apps.page
|
||||||
2defe45163697e40c813a57ae9a50231 ./CA_notices.page
|
2defe45163697e40c813a57ae9a50231 ./CA_notices.page
|
||||||
c12622d8281346d37398e96cbb6b8b69 ./ca_settings.page
|
c12622d8281346d37398e96cbb6b8b69 ./ca_settings.page
|
||||||
01ed7990078dee7cecfeda9a4e49377e ./default.cfg
|
01ed7990078dee7cecfeda9a4e49377e ./default.cfg
|
||||||
|
|
Loading…
Reference in New Issue