Ver Fonte

Merge pull request #1761 from dvelayos/v2-develop

V2 develop
causefx há 4 anos atrás
pai
commit
c349c5a99d
5 ficheiros alterados com 111 adições e 2 exclusões
  1. 8 0
      api/classes/organizr.class.php
  2. 5 1
      api/config/default.php
  3. 67 0
      api/homepage/bookmarks.php
  4. 4 0
      css/organizr.css
  5. 27 1
      js/functions.js

+ 8 - 0
api/classes/organizr.class.php

@@ -60,6 +60,7 @@ class Organizr
 	use UnifiHomepageItem;
 	use WeatherHomepageItem;
 	use uTorrentHomepageItem;
+    use BookmarksHomepageItem;
 
 	// ===================================
 	// Organizr Version
@@ -3733,6 +3734,13 @@ class Organizr
 						$class .= ' faded';
 					}
 					break;
+                case 'homepageOrderBookmarks':
+                    $class = 'bg-bookmarks';
+                    $image = 'plugins/images/bookmark.png';
+                    if (!$this->config['homepageBookmarksEnabled']) {
+                        $class .= ' faded';
+                    }
+                    break;
 				default:
 					$class = 'blue-bg';
 					$image = '';

+ 5 - 1
api/config/default.php

@@ -335,6 +335,7 @@ return [
 	'homepageOrdercustomhtml08' => '37',
 	'homepageOrderuTorrent' => '38',
 	'homepageOrderoverseerr' => '39',
+    'homepageOrderBookmarks' => '40',
 	'homepageShowStreamNames' => false,
 	'homepageShowStreamNamesAuth' => '1',
 	'homepageUseCustomStreamNames' => false,
@@ -363,7 +364,10 @@ return [
 	'homepageJellyfinRecent' => false,
 	'homepageJellyfinRecentAuth' => '1',
 	'homepageJellyfinLink' => 'http://hostname:port/jellyfin/web/index.html#!/details?id={id}&serverId={serverId}',
-	'calendarDefault' => 'month',
+    'homepageBookmarksAuth' => '1',
+    'homepageBookmarksEnabled' => false,
+    'homepageBookmarksRefresh' => '3600000',
+    'calendarDefault' => 'month',
 	'calendarFirstDay' => '1',
 	'calendarStart' => '14',
 	'calendarEnd' => '14',

+ 67 - 0
api/homepage/bookmarks.php

@@ -0,0 +1,67 @@
+<?php
+
+trait BookmarksHomepageItem
+{
+	public function bookmarksSettingsArray($infoOnly = false)
+	{
+		$homepageInformation = [
+			'name' => 'Bookmarks',
+			'enabled' => true,
+			'image' => 'plugins/images/bookmark.png',
+			'category' => 'Links',
+			'settingsArray' => __FUNCTION__
+		];
+		if ($infoOnly) {
+			return $homepageInformation;
+		}
+		$homepageSettings = [
+			'debug' => true,
+			'settings' => [
+				'Enable' => [
+					$this->settingsOption('enable', 'homepageBookmarksEnabled'),
+					$this->settingsOption('auth', 'homepageBookmarksAuth'),
+				],
+				'Options' => [
+					$this->settingsOption('title', 'homepageBookmarksHeader'),
+					$this->settingsOption('toggle-title', 'homepageBookmarksHeaderToggle'),
+					$this->settingsOption('enable', 'homepageBookmarksEnabled', ['label' => 'Enable Bookmarks', 'help' => 'Toggles the view module for Bookmarks']),
+					$this->settingsOption('refresh', 'homepageBookmarksRefresh'),
+				],
+			]
+		];
+		return array_merge($homepageInformation, $homepageSettings);
+	}
+	
+	public function bookmarksHomepagePermissions($key = null)
+	{
+		$permissions = [
+			'main' => [
+				'enabled' => [
+					'homepageBookmarksEnabled'
+				],
+				'auth' => [
+					'homepageBookmarksAuth'
+				]
+			]
+		];
+		return $this->homepageCheckKeyPermissions($key, $permissions);
+	}
+	
+	public function homepageOrderBookmarks()
+	{
+		if ($this->homepageItemPermissions($this->bookmarksHomepagePermissions('main'))) {
+
+			return '
+				<div id="' . __FUNCTION__ . '">
+					<div class="white-box homepage-loading-box"><h2 class="text-center" lang="en">Loading Bookmarks...</h2></div>
+					<script>
+						// Bookmarks And Air
+						homepageBookmarks("' . $this->config['homepageBookmarksRefresh'] . '");
+						// End Bookmarks And Air
+					</script>
+				</div>
+				';
+		}
+	}
+
+}

+ 4 - 0
css/organizr.css

@@ -1081,6 +1081,10 @@ input#inviteCodeInput {
     background: #3e8c25;
 }
 
+.bg-bookmarks {
+    background: #d90101;
+}
+
 .bg-transmission {
     background: #950000;
 }

+ 27 - 1
js/functions.js

@@ -11590,4 +11590,30 @@ function launch(){
 			orgErrorAlert('<h3>Webserver Error:</h3>' + xhr.responseText);
 		}
 	});
-}
+}
+
+function homepageBookmarks(timeout){
+    var timeout = (typeof timeout !== 'undefined') ? timeout : activeInfo.settings.homepage.refresh.homepageBookmarksRefresh;
+    organizrAPI2('GET','api/v2/plugins/bookmark/page').success(function(data) {
+        try {
+            let response = data.response;
+            document.getElementById('homepageOrderBookmarks').innerHTML = '';
+            if(response.data !== null){
+                $('#homepageOrderBookmarks').html(buildBookmarks(response.data));
+            }
+        }catch(e) {
+            organizrCatchError(e,data);
+        }
+    }).fail(function(xhr) {
+        OrganizrApiError(xhr);
+    });
+    let timeoutTitle = 'Bookmarks-Homepage';
+    if(typeof timeouts[timeoutTitle] !== 'undefined'){ clearTimeout(timeouts[timeoutTitle]); }
+    timeouts[timeoutTitle] = setTimeout(function(){ homepageBookmarks(timeout); }, timeout);
+    delete timeout;
+}
+
+function buildBookmarks(data){
+    var returnData = data;
+    return returnData;
+}