Просмотр исходного кода

Emby improvements

Working filter for recently added items
Working ip for nowplaying items
Changed filter item to correct name 'Videos' instead of having 'Shows' two times :)
Rob Gökemeijer 8 лет назад
Родитель
Сommit
65c5a65923
3 измененных файлов с 65 добавлено и 64 удалено
  1. 1 1
      api/functions/homepage-connect-functions.php
  2. 60 59
      js/custom.js
  3. 4 4
      js/functions.js

+ 1 - 1
api/functions/homepage-connect-functions.php

@@ -171,7 +171,7 @@ function resolveEmbyItem($itemDetails) {
     $embyItem['state'] = ((@(string)$itemDetails['PlayState']['IsPaused'] == '1') ? "pause" : "play");
     $embyItem['state'] = ((@(string)$itemDetails['PlayState']['IsPaused'] == '1') ? "pause" : "play");
     $embyItem['user'] = ($GLOBALS['homepageShowStreamNames'] && qualifyRequest($GLOBALS['homepageShowStreamNamesAuth']) ) ? @(string)$itemDetails['UserName'] : "";
     $embyItem['user'] = ($GLOBALS['homepageShowStreamNames'] && qualifyRequest($GLOBALS['homepageShowStreamNamesAuth']) ) ? @(string)$itemDetails['UserName'] : "";
     $embyItem['userThumb'] = '';
     $embyItem['userThumb'] = '';
-    $embyItem['userAddress'] = "x.x.x.x";
+    $embyItem['userAddress'] = (isset($itemDetails['RemoteEndPoint']) ? $itemDetails['RemoteEndPoint'] : "x.x.x.x");
     $embyItem['address'] = $GLOBALS['embyTabURL'] ? '' : '';
     $embyItem['address'] = $GLOBALS['embyTabURL'] ? '' : '';
     $embyItem['nowPlayingOriginalImage'] = 'api/?v1/image&source=emby&type='.$embyItem['nowPlayingImageType'].'&img='.$embyItem['nowPlayingThumb'].'&height='.$nowPlayingHeight.'&width='.$nowPlayingWidth.'&key='.$embyItem['nowPlayingKey'].'$'.randString();
     $embyItem['nowPlayingOriginalImage'] = 'api/?v1/image&source=emby&type='.$embyItem['nowPlayingImageType'].'&img='.$embyItem['nowPlayingThumb'].'&height='.$nowPlayingHeight.'&width='.$nowPlayingWidth.'&key='.$embyItem['nowPlayingKey'].'$'.randString();
     $embyItem['originalImage'] = 'api/?v1/image&source=emby&type='.$embyItem['imageType'].'&img='.$embyItem['thumb'].'&height='.$height.'&width='.$width.'&key='.$embyItem['key'].'$'.randString();
     $embyItem['originalImage'] = 'api/?v1/image&source=emby&type='.$embyItem['imageType'].'&img='.$embyItem['thumb'].'&height='.$height.'&width='.$width.'&key='.$embyItem['key'].'$'.randString();

+ 60 - 59
js/custom.js

@@ -12,7 +12,7 @@ $(document).ready(function () {
         message('Clipboard',e.text,'bottom-right','#FFF','info','5000');
         message('Clipboard',e.text,'bottom-right','#FFF','info','5000');
         e.clearSelection();
         e.clearSelection();
     });
     });
-	"use strict";
+    "use strict";
     var body = $("body");
     var body = $("body");
     $(function () {
     $(function () {
         //$("#preloader").fadeOut();
         //$("#preloader").fadeOut();
@@ -70,7 +70,7 @@ $(document).ready(function () {
     });
     });
 });
 });
 function pageLoad(){
 function pageLoad(){
-	"use strict";
+    "use strict";
     //Start Organizr
     //Start Organizr
     $(function () {
     $(function () {
         if($('#preloader:visible').length == 1){
         if($('#preloader:visible').length == 1){
@@ -1009,7 +1009,7 @@ $(document).on("click", ".changeDefaultCategory", function () {
 });
 });
 // CHANGE CUSTOMIZE Options
 // CHANGE CUSTOMIZE Options
 $(document).on('change asColorPicker::clear asColorPicker::close', '#customize-appearance-form :input', function(e) {
 $(document).on('change asColorPicker::clear asColorPicker::close', '#customize-appearance-form :input', function(e) {
-	$(this).attr('data-changed', true);
+    $(this).attr('data-changed', true);
     switch ($(this).attr('type')) {
     switch ($(this).attr('type')) {
         case 'switch':
         case 'switch':
         case 'checkbox':
         case 'checkbox':
@@ -1018,7 +1018,7 @@ $(document).on('change asColorPicker::clear asColorPicker::close', '#customize-a
         default:
         default:
             var value = $(this).val();
             var value = $(this).val();
     }
     }
-	var post = {
+    var post = {
         action:'editCustomizeAppearance',
         action:'editCustomizeAppearance',
         api:'api/?v1/settings/customize/appearance',
         api:'api/?v1/settings/customize/appearance',
         name:$(this).attr("name"),
         name:$(this).attr("name"),
@@ -1029,13 +1029,13 @@ $(document).on('change asColorPicker::clear asColorPicker::close', '#customize-a
     };
     };
     console.log(post);
     console.log(post);
     $('#customize-appearance-reload').removeClass('hidden');
     $('#customize-appearance-reload').removeClass('hidden');
-	var callbacks = $.Callbacks();
+    var callbacks = $.Callbacks();
     //callbacks.add( buildCustomizeAppearance );
     //callbacks.add( buildCustomizeAppearance );
     settingsAPI(post,callbacks);
     settingsAPI(post,callbacks);
     if($(this).hasClass('themeChanger')){
     if($(this).hasClass('themeChanger')){
         changeTheme(value);
         changeTheme(value);
     }
     }
-	if($(this).hasClass('styleChanger')){
+    if($(this).hasClass('styleChanger')){
         changeStyle(value);
         changeStyle(value);
     }
     }
 
 
@@ -1076,7 +1076,7 @@ $(document).on("click", ".reload", function () {
 });
 });
 // ENABLE PLUGIN
 // ENABLE PLUGIN
 $(document).on('click', '.enablePlugin', function() {
 $(document).on('click', '.enablePlugin', function() {
-	var post = {
+    var post = {
         action:'enable',
         action:'enable',
         api:'api/?v1/settings/plugins/list',
         api:'api/?v1/settings/plugins/list',
         name:$(this).attr('data-plugin-name'),
         name:$(this).attr('data-plugin-name'),
@@ -1086,7 +1086,7 @@ $(document).on('click', '.enablePlugin', function() {
         error:'Organizr Function: API Connection Failed'
         error:'Organizr Function: API Connection Failed'
     };
     };
     //$('#customize-appearance-reload').removeClass('hidden');
     //$('#customize-appearance-reload').removeClass('hidden');
-	var callbacks = $.Callbacks();
+    var callbacks = $.Callbacks();
     //callbacks.add( buildCustomizeAppearance );
     //callbacks.add( buildCustomizeAppearance );
     settingsAPI(post,callbacks);
     settingsAPI(post,callbacks);
     ajaxloader(".content-wrap","in");
     ajaxloader(".content-wrap","in");
@@ -1118,7 +1118,7 @@ $(document).on('click', '.disablePlugin', function() {
                 error:'Organizr Function: API Connection Failed'
                 error:'Organizr Function: API Connection Failed'
             };
             };
             //$('#customize-appearance-reload').removeClass('hidden');
             //$('#customize-appearance-reload').removeClass('hidden');
-        	var callbacks = $.Callbacks();
+            var callbacks = $.Callbacks();
             //callbacks.add( buildCustomizeAppearance );
             //callbacks.add( buildCustomizeAppearance );
             settingsAPI(post,callbacks);
             settingsAPI(post,callbacks);
             ajaxloader(".content-wrap","in");
             ajaxloader(".content-wrap","in");
@@ -1138,7 +1138,7 @@ $(document).on('change asColorPicker::close', '#sso-form :input', function(e) {
         default:
         default:
             var value = $(this).val();
             var value = $(this).val();
     }
     }
-	var post = {
+    var post = {
         api:'api/?v1/update/config',
         api:'api/?v1/update/config',
         name:$(this).attr("name"),
         name:$(this).attr("name"),
         type:$(this).attr("data-type"),
         type:$(this).attr("data-type"),
@@ -1147,7 +1147,7 @@ $(document).on('change asColorPicker::close', '#sso-form :input', function(e) {
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         error:'Organizr Function: API Connection Failed'
         error:'Organizr Function: API Connection Failed'
     };
     };
-	var callbacks = $.Callbacks();
+    var callbacks = $.Callbacks();
     //callbacks.add( buildCustomizeAppearance );
     //callbacks.add( buildCustomizeAppearance );
     settingsAPI(post,callbacks);
     settingsAPI(post,callbacks);
     //disable button then renable
     //disable button then renable
@@ -1171,7 +1171,7 @@ $(document).on('change asColorPicker::close', '#settings-main-form :input', func
         default:
         default:
             var value = $(this).val();
             var value = $(this).val();
     }
     }
-	var post = {
+    var post = {
         api:'api/?v1/update/config',
         api:'api/?v1/update/config',
         name:$(this).attr("name"),
         name:$(this).attr("name"),
         type:$(this).attr("data-type"),
         type:$(this).attr("data-type"),
@@ -1180,7 +1180,7 @@ $(document).on('change asColorPicker::close', '#settings-main-form :input', func
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         error:'Organizr Function: API Connection Failed'
         error:'Organizr Function: API Connection Failed'
     };
     };
-	var callbacks = $.Callbacks();
+    var callbacks = $.Callbacks();
     //callbacks.add( buildCustomizeAppearance );
     //callbacks.add( buildCustomizeAppearance );
     settingsAPI(post,callbacks);
     settingsAPI(post,callbacks);
     //disable button then renable
     //disable button then renable
@@ -1401,7 +1401,7 @@ $(document).on('change asColorPicker::close', '.homepageForm :input', function(e
         default:
         default:
             var value = $(this).val();
             var value = $(this).val();
     }
     }
-	var post = {
+    var post = {
         api:'api/?v1/update/config',
         api:'api/?v1/update/config',
         name:$(this).attr("name"),
         name:$(this).attr("name"),
         type:$(this).attr("data-type"),
         type:$(this).attr("data-type"),
@@ -1410,7 +1410,7 @@ $(document).on('change asColorPicker::close', '.homepageForm :input', function(e
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         messageBody:'Updated Value for '+$(this).parent().parent().find('label').text(),
         error:'Organizr Function: API Connection Failed'
         error:'Organizr Function: API Connection Failed'
     };
     };
-	var callbacks = $.Callbacks();
+    var callbacks = $.Callbacks();
     //callbacks.add( buildCustomizeAppearance );
     //callbacks.add( buildCustomizeAppearance );
     settingsAPI(post,callbacks);
     settingsAPI(post,callbacks);
     //disable button then renable
     //disable button then renable
@@ -1439,66 +1439,67 @@ $(document).on({
 // recent filter
 // recent filter
 $(document).on("click", ".recent-filter li>a", function () {
 $(document).on("click", ".recent-filter li>a", function () {
     var filter = $(this).attr('data-filter');
     var filter = $(this).attr('data-filter');
-    console.log(filter);
+    var type = $(this).attr('server-filter'); //plex or emby
+    //console.log(filter);
     if(filter == 'all'){
     if(filter == 'all'){
-        $('.plex-recent').find('.recent-item').parent().removeClass('hidden');
+        $('.'+type+'-recent').find('.recent-item').parent().removeClass('hidden');
     }else{
     }else{
-        $('.plex-recent').find('.recent-item').parent().removeClass('hidden');
-        $('.plex-recent').find('.recent-item:not(.'+ filter + ')').parent().addClass('hidden');
+        $('.'+type+'-recent').find('.recent-item').parent().removeClass('hidden');
+        $('.'+type+'-recent').find('.recent-item:not(.'+ filter + ')').parent().addClass('hidden');
     }
     }
 
 
 });
 });
 // refresh cache image
 // refresh cache image
 $(document).on("click", ".refreshImage", function(e) {
 $(document).on("click", ".refreshImage", function(e) {
-	message('',' Refreshing Image...','bottom-right','#FFF','success','1000');
-	e.preventDefault;
-	var orginalElement = $(this).parent().parent().parent().parent().find('.imageSource');
+    message('',' Refreshing Image...','bottom-right','#FFF','success','1000');
+    e.preventDefault;
+    var orginalElement = $(this).parent().parent().parent().parent().find('.imageSource');
     //console.log(orginalElement)
     //console.log(orginalElement)
-	var original = $(this).attr('data-image');
-	orginalElement.attr('src', original);
-	//console.log('replaced image with : '+original);
-	setTimeout(function(){
+    var original = $(this).attr('data-image');
+    orginalElement.attr('src', original);
+    //console.log('replaced image with : '+original);
+    setTimeout(function(){
         message('Image Refreshed ',' Clear Cache Please','bottom-right','#FFF','success','3000');
         message('Image Refreshed ',' Clear Cache Please','bottom-right','#FFF','success','3000');
-	}, 1000);
+    }, 1000);
 });
 });
 // open tab code
 // open tab code
 $(document).on("click", ".openTab", function(e) {
 $(document).on("click", ".openTab", function(e) {
     if($(this).attr("data-open-tab") === "true") {
     if($(this).attr("data-open-tab") === "true") {
         var tabName = $(this).attr("data-tab-name");
         var tabName = $(this).attr("data-tab-name");
-		var container = $("#container-"+tabName);
-		var activeFrame = container.children('iframe');
-		if(activeFrame.length === 1){
-			$('#menu-'+tabName+' a').trigger("click");
+        var container = $("#container-"+tabName);
+        var activeFrame = container.children('iframe');
+        if(activeFrame.length === 1){
+            $('#menu-'+tabName+' a').trigger("click");
             activeFrame.attr("src", $(this).attr("data-url"));
             activeFrame.attr("src", $(this).attr("data-url"));
-		}else{
+        }else{
             container.attr("data-url", $(this).attr("data-url"));
             container.attr("data-url", $(this).attr("data-url"));
             $('#menu-'+tabName+' a').trigger("click");
             $('#menu-'+tabName+' a').trigger("click");
-		}
-	}else{
+        }
+    }else{
         var source = $(this).attr("data-url");
         var source = $(this).attr("data-url");
-		window.open(source, '_blank');
-	}
+        window.open(source, '_blank');
+    }
 });
 });
 // metadata start
 // metadata start
 $(document).on("click", ".metadata-get", function(e) {
 $(document).on("click", ".metadata-get", function(e) {
     var key = $(this).attr('data-key');
     var key = $(this).attr('data-key');
-	var uid = $(this).attr('data-uid');
+    var uid = $(this).attr('data-uid');
     var source = $(this).attr('data-source');
     var source = $(this).attr('data-source');
-	switch (source) {
-		case 'plex':
-			var action = 'getPlexMetadata';
-			break;
-		case 'emby':
+    switch (source) {
+        case 'plex':
+            var action = 'getPlexMetadata';
+            break;
+        case 'emby':
             var action = 'getEmbyMetadata';
             var action = 'getEmbyMetadata';
-			break;
-		default:
+            break;
+        default:
 
 
-	}
+    }
     ajaxloader(".content-wrap","in");
     ajaxloader(".content-wrap","in");
-	organizrAPI('POST','api/?v1/homepage/connect',{action:action, key:key}).success(function(data) {
-		var response = JSON.parse(data);
+    organizrAPI('POST','api/?v1/homepage/connect',{action:action, key:key}).success(function(data) {
+        var response = JSON.parse(data);
         $('.'+uid+'-metadata-info').html('');
         $('.'+uid+'-metadata-info').html('');
-		$('.'+uid+'-metadata-info').html(buildMetadata(response.data, source));
+        $('.'+uid+'-metadata-info').html(buildMetadata(response.data, source));
         $('.'+uid).trigger('click');
         $('.'+uid).trigger('click');
         $(".metadata-actors").owlCarousel({
         $(".metadata-actors").owlCarousel({
             autoplay: true,
             autoplay: true,
@@ -1544,10 +1545,10 @@ $(document).on("click", ".metadata-get", function(e) {
                 }
                 }
             }
             }
         });
         });
-	}).fail(function(xhr) {
-		console.error("Organizr Function: API Connection Failed");
-	});
-	ajaxloader();
+    }).fail(function(xhr) {
+        console.error("Organizr Function: API Connection Failed");
+    });
+    ajaxloader();
 
 
 });
 });
 // sab play/resume
 // sab play/resume
@@ -1559,14 +1560,14 @@ $(document).on("click", ".downloader", function(e) {
     //console.log(source);
     //console.log(source);
     //console.log(target);
     //console.log(target);
     ajaxloader(".content-wrap","in");
     ajaxloader(".content-wrap","in");
-	organizrAPI('POST','api/?v1/downloader',{action:action, source:source, target:target}).success(function(data) {
-		var response = JSON.parse(data);
+    organizrAPI('POST','api/?v1/downloader',{action:action, source:source, target:target}).success(function(data) {
+        var response = JSON.parse(data);
         //console.log(response);
         //console.log(response);
-		homepageDownloader(source);
-	}).fail(function(xhr) {
-		console.error("Organizr Function: API Connection Failed");
-	});
-	ajaxloader();
+        homepageDownloader(source);
+    }).fail(function(xhr) {
+        console.error("Organizr Function: API Connection Failed");
+    });
+    ajaxloader();
 
 
 });
 });
 // purge log
 // purge log

+ 4 - 4
js/functions.js

@@ -2016,10 +2016,10 @@ function buildRecent(array, type){
 	                    <ul role="menu" class="dropdown-menu recent-filter">
 	                    <ul role="menu" class="dropdown-menu recent-filter">
 	                        <li><a data-filter="all" href="javascript:void(0);">All</a></li>
 	                        <li><a data-filter="all" href="javascript:void(0);">All</a></li>
 							<li class="divider"></li>
 							<li class="divider"></li>
-	                        <li><a data-filter="recent-movie" href="javascript:void(0);">Movies</a></li>
-	                        <li><a data-filter="recent-tv" href="javascript:void(0);">Shows</a></li>
-	                        <li><a data-filter="recent-video" href="javascript:void(0);">Shows</a></li>
-	                        <!--<li><a data-filter="recent-music" href="javascript:void(0);">Music</a></li>-->
+	                        <li><a data-filter="recent-movie" server-filter="`+type+`" href="javascript:void(0);">Movies</a></li>
+	                        <li><a data-filter="recent-tv" server-filter="`+type+`" href="javascript:void(0);">Shows</a></li>
+	                        <li><a data-filter="recent-video" server-filter="`+type+`" href="javascript:void(0);">Videos</a></li>
+	                        <!--<li><a data-filter="recent-music" server-filter="`+type+`" href="javascript:void(0);">Music</a></li>-->
 	                    </ul>
 	                    </ul>
 	                </div>
 	                </div>
 					<div class="clearfix"></div>
 					<div class="clearfix"></div>