Ver código fonte

add param to settingsArray to only include homepage info and not settings

CauseFX 5 anos atrás
pai
commit
47e0856455

+ 2 - 2
api/functions/homepage-functions.php

@@ -16,7 +16,7 @@ trait HomepageFunctions
 		$list = $this->getHomepageSettingsList();
 		$combined = [];
 		foreach ($list as $item) {
-			$combined[] = $this->$item();
+			$combined[] = $this->$item(true);
 		}
 		return $combined;
 	}
@@ -95,4 +95,4 @@ trait HomepageFunctions
 		}
 		return true;
 	}
-}
+}

+ 9 - 2
api/homepage/calendar.php

@@ -2,13 +2,19 @@
 
 trait CalendarHomepageItem
 {
-	public function calendarSettingsArray()
+	public function calendarSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'iCal',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/calendar.png',
 			'category' => 'HOMEPAGE',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -92,6 +98,7 @@ trait CalendarHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function calendarHomepagePermissions($key = null)

+ 9 - 2
api/homepage/couchpotato.php

@@ -3,13 +3,19 @@
 trait CouchPotatoHomepageItem
 {
 	
-	public function couchPotatoSettingsArray()
+	public function couchPotatoSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'CouchPotato',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/couchpotato.png',
 			'category' => 'PVR',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -88,6 +94,7 @@ trait CouchPotatoHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function couchPotatoHomepagePermissions($key = null)

+ 9 - 2
api/homepage/deluge.php

@@ -2,13 +2,19 @@
 
 trait DelugeHomepageItem
 {
-	public function delugeSettingsArray()
+	public function delugeSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Deluge',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/deluge.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'custom' => '
 				<div class="row">
@@ -103,6 +109,7 @@ trait DelugeHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionDeluge()

+ 9 - 2
api/homepage/emby.php

@@ -2,13 +2,19 @@
 
 trait EmbyHomepageItem
 {
-	public function embySettingsArray()
+	public function embySettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Emby',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/emby.png',
 			'category' => 'Media Server',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -167,6 +173,7 @@ trait EmbyHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionEmby()

+ 9 - 2
api/homepage/healthchecks.php

@@ -2,13 +2,19 @@
 
 trait HealthChecksHomepageItem
 {
-	public function healthChecksSettingsArray()
+	public function healthChecksSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'HealthChecks',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/healthchecks.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -60,6 +66,7 @@ trait HealthChecksHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function healthChecksHomepagePermissions($key = null)

+ 22 - 4
api/homepage/html.php

@@ -2,13 +2,19 @@
 
 trait HTMLHomepageItem
 {
-	public function htmlOneSettingsArray()
+	public function htmlOneSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'CustomHTML-1',
 			'enabled' => strpos('personal,business', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/custom1.png',
 			'category' => 'Custom',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -42,11 +48,22 @@ trait HTMLHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
-	public function htmlTwoSettingsArray()
+	public function htmlTwoSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
+			'name' => 'CustomHTML-2',
+			'enabled' => strpos('personal,business', $this->config['license']) !== false,
+			'image' => 'plugins/images/tabs/custom2.png',
+			'category' => 'Custom',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'name' => 'CustomHTML-2',
 			'enabled' => strpos('personal,business', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/custom2.png',
@@ -84,6 +101,7 @@ trait HTMLHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function htmlHomepagePermissions($key = null)

+ 19 - 12
api/homepage/jackett.php

@@ -2,13 +2,19 @@
 
 trait JackettHomepageItem
 {
-	public function jackettSettingsArray()
+	public function jackettSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Jackett',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/jackett.png',
 			'category' => 'Utility',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -42,16 +48,17 @@ trait JackettHomepageItem
 					)
 				),
 				'Options' => array(
-				    array(
-                	    'type' => 'switch',
-                		'name' => 'homepageJackettBackholeDownload',
-                		'label' => 'Prefer black hole download',
-                		'help' => 'Prefer black hole download link instead of direct/magnet download',
-                		'value' => $this->config['homepageJackettBackholeDownload']
-                	)
-                ),
+					array(
+						'type' => 'switch',
+						'name' => 'homepageJackettBackholeDownload',
+						'label' => 'Prefer black hole download',
+						'help' => 'Prefer black hole download link instead of direct/magnet download',
+						'value' => $this->config['homepageJackettBackholeDownload']
+					)
+				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function jackettHomepagePermissions($key = null)
@@ -124,7 +131,7 @@ trait JackettHomepageItem
 		$this->setAPIResponse('success', null, 200, $api);
 		return $api;
 	}
-
+	
 	public function performJackettBackHoleDownload($url = null)
 	{
 		if (!$this->homepageItemPermissions($this->jackettHomepagePermissions('main'), true)) {
@@ -161,4 +168,4 @@ trait JackettHomepageItem
 		}
 		return $api;
 	}
-}
+}

+ 9 - 2
api/homepage/jdownloader.php

@@ -2,13 +2,19 @@
 
 trait JDownloaderHomepageItem
 {
-	public function jDownloaderSettingsArray()
+	public function jDownloaderSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'JDownloader',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/jdownloader.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'custom' => '
 				<div class="row">
@@ -85,6 +91,7 @@ trait JDownloaderHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionJDownloader()

+ 9 - 2
api/homepage/jellyfin.php

@@ -3,13 +3,19 @@
 trait JellyfinHomepageItem
 {
 	
-	public function jellyfinSettingsArray()
+	public function jellyfinSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Jellyfin',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/jellyfin.png',
 			'category' => 'Media Server',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -168,6 +174,7 @@ trait JellyfinHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionJellyfin()

+ 9 - 2
api/homepage/lidarr.php

@@ -2,13 +2,19 @@
 
 trait LidarrHomepageItem
 {
-	public function lidarrSettingsArray()
+	public function lidarrSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Lidarr',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/lidarr.png',
 			'category' => 'PMR',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -145,6 +151,7 @@ trait LidarrHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionLidarr()

+ 9 - 2
api/homepage/misc.php

@@ -2,13 +2,19 @@
 
 trait MiscHomepageItem
 {
-	public function miscSettingsArray()
+	public function miscSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Misc',
 			'enabled' => true,
 			'image' => 'plugins/images/organizr/logo-no-border.png',
 			'category' => 'Custom',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'YouTube' => array(
 					array(
@@ -27,6 +33,7 @@ trait MiscHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 }

+ 9 - 2
api/homepage/monitorr.php

@@ -2,13 +2,19 @@
 
 trait MonitorrHomepageItem
 {
-	public function monitorrSettingsArray()
+	public function monitorrSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Monitorr',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/monitorr.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -67,6 +73,7 @@ trait MonitorrHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function monitorrHomepagePermissions($key = null)

+ 12 - 6
api/homepage/netdata.php

@@ -85,13 +85,19 @@ trait NetDataHomepageItem
 		
 	}
 	
-	public function netdataSettingsArray()
+	public function netdataSettingsArray($infoOnly = false)
 	{
-		$array = array(
+		$homepageInformation = [
 			'name' => 'Netdata',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/netdata.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -124,7 +130,7 @@ trait NetDataHomepageItem
 			)
 		);
 		for ($i = 1; $i <= 7; $i++) {
-			$array['settings']['Chart ' . $i] = array(
+			$homepageSettings['settings']['Chart ' . $i] = array(
 				array(
 					'type' => 'switch',
 					'name' => 'netdata' . $i . 'Enabled',
@@ -194,7 +200,7 @@ trait NetDataHomepageItem
 				),
 			);
 		}
-		$array['settings']['Custom data'] = array(
+		$homepageSettings['settings']['Custom data'] = array(
 			array(
 				'type' => 'html',
 				'label' => '',
@@ -272,7 +278,7 @@ trait NetDataHomepageItem
 				'value' => $this->config['netdataCustom'],
 			)
 		);
-		$array['settings']['Options'] = array(
+		$homepageSettings['settings']['Options'] = array(
 			array(
 				'type' => 'select',
 				'name' => 'homepageNetdataRefresh',
@@ -281,7 +287,7 @@ trait NetDataHomepageItem
 				'options' => $this->timeOptions()
 			),
 		);
-		return $array;
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function netdataHomepagePermissions($key = null)

+ 9 - 2
api/homepage/nzbget.php

@@ -2,13 +2,19 @@
 
 trait NZBGetHomepageItem
 {
-	public function nzbgetSettingsArray()
+	public function nzbgetSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'NZBGet',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/nzbget.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -78,6 +84,7 @@ trait NZBGetHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionNZBGet()

+ 9 - 2
api/homepage/octoprint.php

@@ -2,13 +2,19 @@
 
 trait OctoPrintHomepageItem
 {
-	public function octoprintSettingsArray()
+	public function octoprintSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Octoprint',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/octoprint.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -59,6 +65,7 @@ trait OctoPrintHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function octoprintHomepagePermissions($key = null)

+ 9 - 2
api/homepage/ombi.php

@@ -3,13 +3,19 @@
 trait OmbiHomepageItem
 {
 	
-	public function ombiSettingsArray()
+	public function ombiSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Ombi',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/ombi.png',
 			'category' => 'Requests',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -150,6 +156,7 @@ trait OmbiHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionOmbi()

+ 9 - 2
api/homepage/pihole.php

@@ -2,13 +2,19 @@
 
 trait PiHoleHomepageItem
 {
-	public function piholeSettingsArray()
+	public function piholeSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Pi-hole',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/pihole.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -67,6 +73,7 @@ trait PiHoleHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionPihole()

+ 14 - 3
api/homepage/plex.php

@@ -3,8 +3,18 @@
 trait PlexHomepageItem
 {
 	
-	public function plexSettingsArray()
+	public function plexSettingsArray($infoOnly = false)
 	{
+		$homepageInformation = [
+			'name' => 'Plex',
+			'enabled' => strpos('personal', $this->config['license']) !== false,
+			'image' => 'plugins/images/tabs/plex.png',
+			'category' => 'Media Server',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
 		if ($this->config['plexID'] !== '' && $this->config['plexToken'] !== '') {
 			$loop = $this->plexLibraryList('key')['libraries'];
 			foreach ($loop as $key => $value) {
@@ -22,7 +32,7 @@ trait PlexHomepageItem
 				),
 			);
 		}
-		return array(
+		$homepageSettings = array(
 			'name' => 'Plex',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/plex.png',
@@ -282,6 +292,7 @@ trait PlexHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionPlex()
@@ -884,4 +895,4 @@ trait PlexHomepageItem
 		}
 		return false;
 	}
-}
+}

+ 9 - 2
api/homepage/qbittorrent.php

@@ -2,13 +2,19 @@
 
 trait QBitTorrentHomepageItem
 {
-	public function qBittorrentSettingsArray()
+	public function qBittorrentSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'qBittorrent',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/qBittorrent.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -115,6 +121,7 @@ trait QBitTorrentHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionQBittorrent()

+ 9 - 2
api/homepage/radarr.php

@@ -2,13 +2,19 @@
 
 trait RadarrHomepageItem
 {
-	public function radarrSettingsArray()
+	public function radarrSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Radarr',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/radarr.png',
 			'category' => 'PVR',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -197,6 +203,7 @@ trait RadarrHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionRadarr()

+ 11 - 3
api/homepage/rtorrent.php

@@ -2,14 +2,21 @@
 
 trait RTorrentHomepageItem
 {
-	public function rTorrentSettingsArray()
+	public function rTorrentSettingsArray($infoOnly = false)
 	{
-		$xmlStatus = (extension_loaded('xmlrpc')) ? 'Installed' : 'Not Installed';
-		return array(
+		
+		$homepageInformation = [
 			'name' => 'rTorrent',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/rTorrent.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$xmlStatus = (extension_loaded('xmlrpc')) ? 'Installed' : 'Not Installed';
+		$homepageSettings = array(
 			'settings' => array(
 				'FYI' => array(
 					array(
@@ -150,6 +157,7 @@ trait RTorrentHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionRTorrent()

+ 9 - 2
api/homepage/sabnzbd.php

@@ -3,13 +3,19 @@
 trait SabNZBdHomepageItem
 {
 	
-	public function sabNZBdSettingsArray()
+	public function sabNZBdSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'SabNZBD',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/sabnzbd.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -73,6 +79,7 @@ trait SabNZBdHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionSabNZBd()

+ 9 - 2
api/homepage/sickrage.php

@@ -2,13 +2,19 @@
 
 trait SickRageHomepageItem
 {
-	public function sickrageSettingsArray()
+	public function sickrageSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'SickRage',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/sickrage.png',
 			'category' => 'PVR',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -101,6 +107,7 @@ trait SickRageHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionSickRage()

+ 9 - 2
api/homepage/sonarr.php

@@ -2,13 +2,19 @@
 
 trait SonarrHomepageItem
 {
-	public function sonarrSettingsArray()
+	public function sonarrSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Sonarr',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/sonarr.png',
 			'category' => 'PVR',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'docs' => 'https://docs.organizr.app/books/setup-features/page/sonarr',
 			'settings' => array(
 				'About' => array(
@@ -196,6 +202,7 @@ trait SonarrHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionSonarr()

+ 10 - 3
api/homepage/speedtest.php

@@ -2,13 +2,19 @@
 
 trait SpeedTestHomepageItem
 {
-	public function speedTestSettingsArray()
+	public function speedTestSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Speedtest',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/speedtest-icon.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -58,6 +64,7 @@ trait SpeedTestHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function speedTestHomepagePermissions($key = null)
@@ -147,4 +154,4 @@ trait SpeedTestHomepageItem
 		$this->setAPIResponse('success', null, 200, $api);
 		return $api;
 	}
-}
+}

+ 9 - 2
api/homepage/tautulli.php

@@ -2,13 +2,19 @@
 
 trait TautulliHomepageItem
 {
-	public function tautulliSettingsArray()
+	public function tautulliSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Tautulli',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/tautulli.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -163,6 +169,7 @@ trait TautulliHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionTautulli()

+ 10 - 3
api/homepage/trakt.php

@@ -2,13 +2,19 @@
 
 trait TraktHomepageItem
 {
-	public function traktSettingsArray()
+	public function traktSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Trakt',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/trakt.png',
 			'category' => 'Calendar',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'docs' => 'https://docs.organizr.app/books/setup-features/page/trakt',
 			'settings' => array(
 				'About' => array(
@@ -135,6 +141,7 @@ trait TraktHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function traktHomepagePermissions($key = null)
@@ -354,6 +361,6 @@ trait TraktHomepageItem
 		if ($i != 0) {
 			return $gotCalendar;
 		}
-		return false;
+		return [];
 	}
 }

+ 9 - 2
api/homepage/transmission.php

@@ -2,13 +2,19 @@
 
 trait TransmissionHomepageItem
 {
-	public function transmissionSettingsArray()
+	public function transmissionSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Transmission',
 			'enabled' => strpos('personal', $this->config['license']) !== false,
 			'image' => 'plugins/images/tabs/transmission.png',
 			'category' => 'Downloader',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -95,6 +101,7 @@ trait TransmissionHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function testConnectionTransmission()

+ 17 - 10
api/homepage/unifi.php

@@ -2,13 +2,19 @@
 
 trait UnifiHomepageItem
 {
-	public function unifiSettingsArray()
+	public function unifiSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'UniFi',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/unifi.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -91,8 +97,9 @@ trait UnifiHomepageItem
 				)
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
-
+	
 	public function unifiHomepagePermissions($key = null)
 	{
 		$permissions = [
@@ -118,7 +125,7 @@ trait UnifiHomepageItem
 			return [];
 		}
 	}
-
+	
 	public function homepageOrderunifi()
 	{
 		if ($this->homepageItemPermissions($this->unifiHomepagePermissions('main'))) {
@@ -134,7 +141,7 @@ trait UnifiHomepageItem
 				';
 		}
 	}
-
+	
 	public function getUnifiSiteName()
 	{
 		if (empty($this->config['unifiURL'])) {
@@ -183,9 +190,9 @@ trait UnifiHomepageItem
 			$this->setAPIResponse('error', $e->getMessage(), 500);
 			return false;
 		}
-
+		
 	}
-
+	
 	public function testConnectionUnifi()
 	{
 		if (empty($this->config['unifiURL'])) {
@@ -227,7 +234,7 @@ trait UnifiHomepageItem
 				$cookie['csrf_token'] = ($response->cookies['csrf_token']->value) ?? false;
 				$cookie['Token'] = ($response->cookies['Token']->value) ?? false;
 				$options['cookies'] = $response->cookies;
-
+				
 			} else {
 				$this->setAPIResponse('error', 'Unifi response error - Check Credentials', 409);
 				return false;
@@ -251,7 +258,7 @@ trait UnifiHomepageItem
 		$this->setAPIResponse('success', 'API Connection succeeded', 200);
 		return true;
 	}
-
+	
 	public function getUnifiHomepageData()
 	{
 		if (!$this->homepageItemPermissions($this->unifiHomepagePermissions('main'), true)) {
@@ -284,7 +291,7 @@ trait UnifiHomepageItem
 				$cookie['csrf_token'] = ($response->cookies['csrf_token']->value) ?? false;
 				$cookie['Token'] = ($response->cookies['Token']->value) ?? false;
 				$options['cookies'] = $response->cookies;
-
+				
 			} else {
 				$this->setAPIResponse('error', 'Unifi response error - Check Credentials', 409);
 				return false;

+ 9 - 2
api/homepage/weather.php

@@ -2,13 +2,19 @@
 
 trait WeatherHomepageItem
 {
-	public function weatherSettingsArray()
+	public function weatherSettingsArray($infoOnly = false)
 	{
-		return array(
+		$homepageInformation = [
 			'name' => 'Weather-Air',
 			'enabled' => true,
 			'image' => 'plugins/images/tabs/wind.png',
 			'category' => 'Monitor',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = array(
 			'settings' => array(
 				'Enable' => array(
 					array(
@@ -115,6 +121,7 @@ trait WeatherHomepageItem
 				),
 			)
 		);
+		return array_merge($homepageInformation, $homepageSettings);
 	}
 	
 	public function weatherHomepagePermissions($key = null)