Browse Source

Added homepage sort order
edited org logs to v1
edited ombi action button for mouse hover

causefx 8 years ago
parent
commit
b1215e2f1f

+ 13 - 17
api/config/default.php

@@ -93,23 +93,19 @@ return array(
     'ombiLimitUser' => false,
     'ombiRefresh' => '600000',
     'homepageOrdercustomhtml' => '1',
-	'homepageOrdernotice' => '2',
-	'homepageOrderplexsearch' => '3',
-	'homepageOrderspeedtest' => '4',
-	'homepageOrdernzbget' => '5',
-	'homepageOrdersabnzbd' => '6',
-	'homepageOrderplexnowplaying' => '7',
-	'homepageOrderplexrecent' => '8',
-	'homepageOrderplexplaylist' => '9',
-	'homepageOrderembynowplaying' => '10',
-	'homepageOrderembyrecent' => '11',
-	'homepageOrderombi' => '12',
-	'homepageOrdercalendar' => '13',
-	'homepageOrdernoticeguest' => '14',
-    'homepageOrdertransmission' => '15',
-    'homepageOrderqBittorrent' => '16',
-    'homepageOrderdeluge' => '17',
-	'homepageOrdercustomhtmlTwo' => '18',
+    'homepageOrdercustomhtmlTwo' => '2',
+    'homepageOrdertransmission' => '3',
+    'homepageOrderqBittorrent' => '4',
+    'homepageOrderdeluge' => '5',
+	'homepageOrdernzbget' => '6',
+	'homepageOrdersabnzbd' => '7',
+	'homepageOrderplexnowplaying' => '8',
+	'homepageOrderplexrecent' => '9',
+	'homepageOrderplexplaylist' => '10',
+	'homepageOrderembynowplaying' => '11',
+	'homepageOrderembyrecent' => '12',
+	'homepageOrderombi' => '13',
+	'homepageOrdercalendar' => '14',
     'homepageShowStreamNames' => false,
     'homepageShowStreamNamesAuth' => '1',
     'homepageStreamRefresh' => '60000',

+ 121 - 10
api/functions/homepage-functions.php

@@ -4,9 +4,6 @@ function homepageOrder(){
 	$homepageOrder = array(
 		"homepageOrdercustomhtml" => $GLOBALS['homepageOrdercustomhtml'],
 		"homepageOrdercustomhtmlTwo" => $GLOBALS['homepageOrdercustomhtmlTwo'],
-		"homepageOrdernotice" => $GLOBALS['homepageOrdernotice'],
-		"homepageOrderplexsearch" => $GLOBALS['homepageOrderplexsearch'],
-		"homepageOrderspeedtest" => $GLOBALS['homepageOrderspeedtest'],
 		"homepageOrdernzbget" => $GLOBALS['homepageOrdernzbget'],
 		"homepageOrdersabnzbd" => $GLOBALS['homepageOrdersabnzbd'],
 		"homepageOrderplexnowplaying" => $GLOBALS['homepageOrderplexnowplaying'],
@@ -16,7 +13,6 @@ function homepageOrder(){
 		"homepageOrderembyrecent" => $GLOBALS['homepageOrderembyrecent'],
 		"homepageOrderombi" => $GLOBALS['homepageOrderombi'],
 		"homepageOrdercalendar" => $GLOBALS['homepageOrdercalendar'],
-		"homepageOrdernoticeguest" => $GLOBALS['homepageOrdernoticeguest'],
         "homepageOrdertransmission" => $GLOBALS['homepageOrdertransmission'],
 		"homepageOrderqBittorrent" => $GLOBALS['homepageOrderqBittorrent'],
         "homepageOrderdeluge" => $GLOBALS['homepageOrderdeluge'],
@@ -35,9 +31,6 @@ function buildHomepage(){
 function buildHomepageItem($homepageItem){
 	$item = '<div id="'.$homepageItem.'">';
 	switch ($homepageItem) {
-		case 'homepageOrderplexsearch':
-
-			break;
 		case 'homepageOrdercustomhtml':
 			if($GLOBALS['homepagCustomHTMLoneEnabled'] && qualifyRequest($GLOBALS['homepagCustomHTMLoneAuth']) ){
 				$item .= ($GLOBALS['customHTMLone'] !== '') ? $GLOBALS['customHTMLone'] : '';
@@ -53,9 +46,6 @@ function buildHomepageItem($homepageItem){
 			break;
 		case 'homepageOrdernoticeguest':
 
-			break;
-		case 'homepageOrderspeedtest':
-
 			break;
         case 'homepageOrderqBittorrent':
             if($GLOBALS['homepageqBittorrentEnabled']){
@@ -1470,3 +1460,124 @@ function getHomepageList(){
         )
     );
 }
+function buildHomepageSettings(){
+	$homepageOrder = homepageOrder();
+	$homepageList = '<h4>Drag Homepage Items to Order Them</h4><div id="homepage-items" class="external-events">';
+	$inputList = '<form id="homepage-values" class="row">';
+	foreach ($homepageOrder as $key => $val) {
+		switch ($key) {
+			case 'homepageOrdercustomhtml':
+				$class = 'bg-info';
+				$image = 'plugins/images/tabs/custom1.png';
+				if(!$GLOBALS['homepagCustomHTMLoneEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrdercustomhtmlTwo':
+				$class = 'bg-info';
+				$image = 'plugins/images/tabs/custom2.png';
+				if(!$GLOBALS['homepagCustomHTMLtwoEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrdertransmission':
+				$class = 'bg-transmission';
+				$image = 'plugins/images/tabs/transmission.png';
+				if(!$GLOBALS['homepageTransmissionEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrdernzbget':
+				$class = 'bg-nzbget';
+				$image = 'plugins/images/tabs/nzbget.png';
+				if(!$GLOBALS['homepageNzbgetEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrdersabnzbd':
+				$class = 'bg-sab';
+				$image = 'plugins/images/tabs/sabnzbd.png';
+				if(!$GLOBALS['homepageSabnzbdEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrderdeluge':
+				$class = 'bg-deluge';
+				$image = 'plugins/images/tabs/deluge.png';
+				if(!$GLOBALS['homepageDelugeEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrderqBittorrent':
+				$class = 'bg-qbit';
+				$image = 'plugins/images/tabs/qBittorrent.png';
+				if(!$GLOBALS['homepageqBittorrentEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrderplexnowplaying':
+			case 'homepageOrderplexrecent':
+			case 'homepageOrderplexplaylist':
+				$class = 'bg-plex';
+				$image = 'plugins/images/tabs/plex.png';
+				if(!$GLOBALS['homepagePlexEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrderembynowplaying':
+			case 'homepageOrderembyrecent':
+				$class = 'bg-emby';
+				$image = 'plugins/images/tabs/emby.png';
+				if(!$GLOBALS['homepageEmbyEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrderombi':
+				$class = 'bg-inverse';
+				$image = 'plugins/images/tabs/ombi.png';
+				if(!$GLOBALS['homepageOmbiEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			case 'homepageOrdercalendar':
+				$class = 'bg-primary';
+				$image = 'plugins/images/tabs/calendar.png';
+				if(!$GLOBALS['homepageSonarrEnabled'] && !$GLOBALS['homepageRadarrEnabled'] && !$GLOBALS['homepageSickrageEnabled'] && !$GLOBALS['homepageCouchpotatoEnabled']){
+					$class .= ' faded';
+				}
+				break;
+			default:
+				$class = 'blue-bg';
+				$image = '';
+				break;
+		}
+		$homepageList .= '
+		<div class="col-md-3 sort-homepage m-t-10">
+			<div class="homepage-drag fc-event '.$class.' lazyload"  data-src="'.$image.'">
+				<span class="ordinal-position text-uppercase badge bg-org homepage-number" data-link="'.$key.'" style="float:left;width: 30px;">'.$val.'</span>
+				<span class="homepage-text">&nbsp; '.strtoupper(substr($key, 13)).'</span>
+
+			</div>
+		</div>
+		<!--
+		<div class="col-lg-2 col-md-2 col-sm-4 col-xs-4 sort-homepage m-b-10">
+			<div class="white-box bg-org '.$class.'">
+				<div class="el-card-item p-0">
+					<div class="el-card-avatar el-overlay-1 m-0">
+						<img class="lazyload loaded" data-src="'.$image.'">
+					</div>
+					<div class="el-card-content">
+						<h3 class="box-title">'.strtoupper(substr($key, 13)).'</h3>
+						<small class="elip ordinal-position text-uppercase p-b-10" data-link="'.$key.'">'.$val.'</small>
+					</div>
+				</div>
+			</div>
+		</div>
+		-->
+		';
+		$inputList .= '<input type="hidden" name="'.$key.'">';
+	}
+	$homepageList .= '</div>';
+	$inputList .= '</form>';
+	return $homepageList.$inputList;
+}

+ 3 - 0
api/functions/organizr-functions.php

@@ -564,6 +564,9 @@ function editAppearance($array){
             break;
     }
 }
+function updateConfigMultiple($array){
+    return (updateConfig($array['data']['payload'])) ? true : false;
+}
 function updateConfigItem($array){
     switch ($array['data']['value']) {
         case 'true':

+ 38 - 0
api/index.php

@@ -88,6 +88,25 @@ switch ($function) {
                 break;
         }
         break;
+	case 'v1_settings_tab_editor_homepage_order':
+		switch ($method) {
+			case 'GET':
+				if(qualifyRequest(1)){
+					$result['status'] = 'success';
+					$result['statusText'] = 'success';
+					$result['data'] = $pageSettingsTabEditorHomepageOrder;
+				}else{
+					$result['status'] = 'error';
+					$result['statusText'] = 'API/Token invalid or not set';
+					$result['data'] = null;
+				}
+				break;
+			default:
+				$result['status'] = 'error';
+				$result['statusText'] = 'The function requested is not defined for method: '.$method;
+				break;
+		}
+		break;
     case 'v1_settings_homepage_list':
         switch ($method) {
             case 'GET':
@@ -254,6 +273,25 @@ switch ($function) {
                 break;
         }
         break;
+    case 'v1_update_config_multiple':
+        switch ($method) {
+            case 'POST':
+                if(qualifyRequest(1)){
+                    $result['status'] = 'success';
+                    $result['statusText'] = 'success';
+                    $result['data'] = updateConfigMultiple($_POST);
+                }else{
+                    $result['status'] = 'error';
+                    $result['statusText'] = 'API/Token invalid or not set';
+                    $result['data'] = null;
+                }
+                break;
+            default:
+                $result['status'] = 'error';
+                $result['statusText'] = 'The function requested is not defined for method: '.$method;
+                break;
+        }
+        break;
     case 'v1_homepage_connect':
         switch ($method) {
             case 'POST':

+ 50 - 0
api/pages/settings-tab-editor-homepage-order.php

@@ -0,0 +1,50 @@
+<?php
+
+$pageSettingsTabEditorHomepageOrder = '
+<script>
+    $("#homepage-items").sortable({
+    placeholder:    "sort-placeholder col-md-3",
+    forcePlaceholderSize: true,
+    start: function( e, ui ){
+        ui.item.data( "start-pos", ui.item.index()+1 );
+    },
+    change: function( e, ui ){
+        var seq,
+        startPos = ui.item.data( "start-pos" ),
+        $index,
+        correction;
+        correction = startPos <= ui.placeholder.index() ? 0 : 1;
+        ui.item.parent().find( "div.sort-homepage").each( function( idx, el ){
+            var $this = $( el ),
+            $index = $this.index();
+            if ( ( $index+1 >= startPos && correction === 0) || ($index+1 <= startPos && correction === 1 ) ){
+                $index = $index + correction;
+                $this.find( ".ordinal-position").text( $index);
+                link = $this.find( ".ordinal-position" ).attr("data-link");
+                $("#homepage-values [name="+link+"]").val($index);
+                $("#homepage-values [name="+link+"]").attr("data-changed", "true");
+                console.log(link+" - "+$index);
+            }
+        });
+        seq = ui.item.parent().find( "div.sort-placeholder.col-md-3").index() + correction;
+        ui.item.find( ".ordinal-position" ).text( seq );
+        newlink = ui.item.find( ".ordinal-position" ).attr("data-link");
+        $("#homepage-values [name="+newlink+"]").val(seq);
+        $("#homepage-values [name="+newlink+"]").attr("data-changed", "true");
+        console.log(newlink+" - "+seq);
+    }
+    });
+</script>
+<div class="panel bg-org panel-info">
+    <div class="panel-heading">
+		<span lang="en">Homepage Order</span>
+        <button type="button" class="btn btn-success btn-circle pull-right m-r-5" onclick="submitHomepageOrder()" ><i class="fa fa-save"></i></button>
+	</div>
+    <div class="panel-wrapper collapse in" aria-expanded="true">
+        <div class="panel-body bg-org" >
+        <div class="row el-element-overlay m-b-40" id="settings-homepage-order">'.buildHomepageSettings().'</div>
+        </div>
+    </div>
+</div>
+
+';

+ 36 - 0
css/organizr.css

@@ -376,6 +376,21 @@ input#inviteCodeInput {
 .bg-emby {
   background: #4CAF50;
 }
+.bg-sab {
+  background: #ffb300;
+}
+.bg-deluge {
+  background: #425570;
+}
+.bg-nzbget {
+  background: #3e8c25;
+}
+.bg-transmission {
+  background: #950000;
+}
+.bg-qbit {
+  background: #2f67ba;
+}
 .request-result-item {
 	width: 230px;
 }
@@ -420,3 +435,24 @@ input#inviteCodeInput {
   transform: perspective(8em) rotateX(11deg) scale(1.2);
   text-shadow: 0 -1px 15px black, 0 1px 0 #7f6303, 0 2px 0 #846703, 0 0px 0 #896b03, 0 1px 0 #8e6f03, 0 2px 0 #937203, 0 2px 30px rgba(252, 223, 92, 0.6);
 }
+.homepage-drag {
+  background-size: contain;
+  background-position: right;
+  height: 60px;
+  background-repeat: no-repeat;
+  background-origin: content-box;
+}
+.homepage-number {
+  float: left;
+  width: 36px !important;
+  text-align: center;
+  vertical-align: middle;
+  height: 36px;
+  border-radius: 20px;
+  margin-top: 7px;
+  padding: 11px;
+}
+span.homepage-text {
+  margin-top: 16px;
+  display: inline-block;
+}

+ 31 - 3
js/functions.js

@@ -934,6 +934,7 @@ function buildCategoryEditor(){
 function settingsAPI(post, callbacks=null){
 	organizrAPI('POST',post.api,post).success(function(data) {
 		var response = JSON.parse(data);
+		console.log(data);
 		message(post.messageTitle,post.messageBody,"bottom-right","#FFF","success","5000");
 		if(callbacks){ callbacks.fire(); }
 	}).fail(function(xhr) {
@@ -1444,6 +1445,33 @@ function buildTabEditorItem(array){
 	});
 	return tabList;
 }
+function submitHomepageOrder(){
+	var list = $( "#homepage-values" ).serializeToJSON();
+	var size = 0;
+	var submit = {};
+	$.each(list, function(i,v) {
+		if(v !== ''){
+			size++;
+			submit[i] = v;
+		}
+	})
+
+    var post = {
+        api:'api/?v1/update/config/multiple',
+        payload:submit,
+        messageTitle:'',
+        messageBody:'Updated Homepage Order',
+        error:'Organizr Function: API Connection Failed'
+    };
+    var callbacks = $.Callbacks();
+    //callbacks.add( buildCustomizeAppearance );
+	if(size > 0){
+		settingsAPI(post,callbacks);
+	}else{
+			console.log('addd error');
+	}
+
+}
 function submitTabOrder(){
 	var post = {
 		action:'changeOrder',
@@ -2227,7 +2255,7 @@ function buildRequestAdminMenuItem(value,category,id,type){
 			}else{
 				action = 'approve';
 				text = 'Approve';
-				extra = `<li><a onclick="ombiActions('`+id+`', 'deny', '`+type+`');" lang="en">Deny</a></li>`;
+				extra = `<li><a class="mouse" onclick="ombiActions('`+id+`', 'deny', '`+type+`');" lang="en">Deny</a></li>`;
 			}
 			break;
 		case 'available':
@@ -2242,7 +2270,7 @@ function buildRequestAdminMenuItem(value,category,id,type){
 		default:
 
 	}
-	return (action) ? `<li><a onclick="ombiActions('`+id+`', '`+action+`', '`+type+`');" lang="en">`+text+`</a></li>`+extra : '';
+	return (action) ? `<li><a class="mouse" onclick="ombiActions('`+id+`', '`+action+`', '`+type+`');" lang="en">`+text+`</a></li>`+extra : '';
 }
 function buildRequestItem(array, extra=null){
 	var items = '';
@@ -2271,7 +2299,7 @@ function buildRequestItem(array, extra=null){
 						<li class="divider"></li>
 						`+buildRequestAdminMenuItem(v.approved, 'approved',v.request_id,v.type)+`
 						`+buildRequestAdminMenuItem(v.available, 'available',v.request_id,v.type)+`
-						<li><a onclick="ombiActions('`+v.request_id+`', 'delete', '`+v.type+`');" lang="en">Delete</a></li>
+						<li><a class="mouse" onclick="ombiActions('`+v.request_id+`', 'delete', '`+v.type+`');" lang="en">Delete</a></li>
                     </ul>
                 </div>`;
 				adminFunctions = (activeInfo.user.groupID <= 1) ? adminFunctions : '';

BIN
plugins/images/organizr/logo-wide.png


BIN
plugins/images/tabs/calendar.png


BIN
plugins/images/tabs/transmission.png