mirror of
				https://github.com/SuperBFG7/ympd
				synced 2025-10-31 05:43:01 +00:00 
			
		
		
		
	add filtering on all levels and fix playlist filter
This commit is contained in:
		| @@ -21,6 +21,10 @@ body { | |||||||
|   margin-top: 2px; |   margin-top: 2px; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #breadcrump > li > a{ | ||||||
|  |   cursor: pointer; | ||||||
|  | } | ||||||
|  |  | ||||||
| #counter { | #counter { | ||||||
|   font-size: 24px; |   font-size: 24px; | ||||||
|   margin-top: -6px; |   margin-top: -6px; | ||||||
| @@ -99,3 +103,11 @@ button { | |||||||
|   text-align:left; |   text-align:left; | ||||||
|   width:2.8em; |   width:2.8em; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #filter > a.active { | ||||||
|  |   font-weight: bold; | ||||||
|  |   pointer-events: none; | ||||||
|  |   cursor: default; | ||||||
|  |   text-decoration: none; | ||||||
|  |   color: black; | ||||||
|  | } | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ var last_state; | |||||||
| var last_outputs; | var last_outputs; | ||||||
| var current_app; | var current_app; | ||||||
| var pagination = 0; | var pagination = 0; | ||||||
| var browsepath; | var browsepath = ""; | ||||||
| var lastSongTitle = ""; | var lastSongTitle = ""; | ||||||
| var current_song = new Object(); | var current_song = new Object(); | ||||||
| var MAX_ELEMENTS_PER_PAGE = 512; | var MAX_ELEMENTS_PER_PAGE = 512; | ||||||
| @@ -29,7 +29,7 @@ var dirble_selected_cat = ""; | |||||||
| var dirble_catid = ""; | var dirble_catid = ""; | ||||||
| var dirble_page = 1; | var dirble_page = 1; | ||||||
| var isTouch = Modernizr.touch ? 1 : 0; | var isTouch = Modernizr.touch ? 1 : 0; | ||||||
| var filter = undefined; | var filter = ""; | ||||||
| var dirble_api_token = ""; | var dirble_api_token = ""; | ||||||
| var dirble_stations = false; | var dirble_stations = false; | ||||||
|  |  | ||||||
| @@ -67,7 +67,7 @@ var app = $.sammy(function() { | |||||||
|         browsepath = this.params['splat'][1]; |         browsepath = this.params['splat'][1]; | ||||||
|         pagination = parseInt(this.params['splat'][0]); |         pagination = parseInt(this.params['splat'][0]); | ||||||
|         current_app = 'browse'; |         current_app = 'browse'; | ||||||
|         $('#breadcrump').removeClass('hide').empty().append("<li><a href=\"#/browse/0/\" onclick=\"set_filter()\">root</a></li>"); |         $('#breadcrump').removeClass('hide').empty().append("<li><a uri=\"\" onclick=\"set_filter('')\">root</a></li>"); | ||||||
|         $('#filter').removeClass('hide'); |         $('#filter').removeClass('hide'); | ||||||
|         $('#salamisandwich').removeClass('hide').find("tr:gt(0)").remove(); |         $('#salamisandwich').removeClass('hide').find("tr:gt(0)").remove(); | ||||||
|         $('#dirble_panel').addClass('hide'); |         $('#dirble_panel').addClass('hide'); | ||||||
| @@ -92,7 +92,7 @@ var app = $.sammy(function() { | |||||||
|             } |             } | ||||||
|  |  | ||||||
|             full_path = full_path + chunk; |             full_path = full_path + chunk; | ||||||
|             $('#breadcrump').append("<li><a href=\"#/browse/0/" + full_path + "\">"+chunk+"</a></li>"); |             $('#breadcrump').append("<li><a uri=\"" + full_path + "\">"+chunk+"</a></li>"); | ||||||
|             full_path += "/"; |             full_path += "/"; | ||||||
|         }); |         }); | ||||||
|         $('#browse').addClass('active'); |         $('#browse').addClass('active'); | ||||||
| @@ -313,13 +313,13 @@ function webSocketConnect() { | |||||||
|                         switch(obj.data[item].type) { |                         switch(obj.data[item].type) { | ||||||
|                             case 'directory': |                             case 'directory': | ||||||
|                                 var clazz = 'dir'; |                                 var clazz = 'dir'; | ||||||
|                                 if (filter !== undefined) { |                                 if (filter !== "") { | ||||||
|                                     var first = obj.data[item].dir[0]; |                                     var first = obj.data[item].dir[0]; | ||||||
|                                     if (filter === "#" && isNaN(first)) { |                                     if (filter === "num" && isNaN(first)) { | ||||||
|                                         clazz += ' hide'; |                                         clazz += ' hide'; | ||||||
|                                     } else if (filter >= "A" && filter <= "Z" && first.toUpperCase() !== filter) { |                                     } else if (filter >= "A" && filter <= "Z" && first.toUpperCase() !== filter) { | ||||||
|                                         clazz += ' hide'; |                                         clazz += ' hide'; | ||||||
|                                     } else if (filter === "||") { |                                     } else if (filter === "plist") { | ||||||
|                                         clazz += ' hide'; |                                         clazz += ' hide'; | ||||||
|                                     } |                                     } | ||||||
|                                 } |                                 } | ||||||
| @@ -332,7 +332,7 @@ function webSocketConnect() { | |||||||
|                                 break; |                                 break; | ||||||
|                             case 'playlist': |                             case 'playlist': | ||||||
|                                 var clazz = 'plist'; |                                 var clazz = 'plist'; | ||||||
|                                 if (filter !== "||") { |                                 if ( (filter !== "") && (filter !== "plist") ) { | ||||||
|                                     clazz += ' hide'; |                                     clazz += ' hide'; | ||||||
|                                 } |                                 } | ||||||
|                                 $('#salamisandwich > tbody').append( |                                 $('#salamisandwich > tbody').append( | ||||||
| @@ -414,7 +414,9 @@ function webSocketConnect() { | |||||||
|                                     pagination = 0; |                                     pagination = 0; | ||||||
|                                     browsepath = $(this).attr("uri"); |                                     browsepath = $(this).attr("uri"); | ||||||
|                                     $("#browse > a").attr("href", '#/browse/'+pagination+'/'+browsepath); |                                     $("#browse > a").attr("href", '#/browse/'+pagination+'/'+browsepath); | ||||||
|  | 									$('#filter > a').attr("href", '#/browse/'+pagination+'/'+browsepath); | ||||||
|                                     app.setLocation('#/browse/'+pagination+'/'+browsepath); |                                     app.setLocation('#/browse/'+pagination+'/'+browsepath); | ||||||
|  | 									set_filter(''); | ||||||
|                                     break; |                                     break; | ||||||
|                                 case 'song': |                                 case 'song': | ||||||
|                                     socket.send("MPD_API_ADD_TRACK," + decodeURI($(this).attr("uri"))); |                                     socket.send("MPD_API_ADD_TRACK," + decodeURI($(this).attr("uri"))); | ||||||
| @@ -436,6 +438,17 @@ function webSocketConnect() { | |||||||
|                         } |                         } | ||||||
|                     }); |                     }); | ||||||
|  |  | ||||||
|  | 					$('#breadcrump > li > a').on({ | ||||||
|  | 						click: function() { | ||||||
|  | 							pagination = 0; | ||||||
|  | 							browsepath = $(this).attr("uri"); | ||||||
|  | 							$("#browse > a").attr("href", '#/browse/'+pagination+'/'+browsepath); | ||||||
|  | 							$('#filter > a').attr("href", '#/browse/'+pagination+'/'+browsepath); | ||||||
|  | 							app.setLocation('#/browse/'+pagination+'/'+browsepath); | ||||||
|  | 							set_filter(''); | ||||||
|  | 						} | ||||||
|  | 					}); | ||||||
|  |  | ||||||
|                     break; |                     break; | ||||||
|                 case 'state': |                 case 'state': | ||||||
|                     updatePlayIcon(obj.data.state); |                     updatePlayIcon(obj.data.state); | ||||||
| @@ -1060,53 +1073,45 @@ function dirble_load_stations() { | |||||||
|  |  | ||||||
| function set_filter (c) { | function set_filter (c) { | ||||||
|     filter = c; |     filter = c; | ||||||
|  | 	$('#filter > a').removeClass('active'); | ||||||
|  | 	$('#f' + c).addClass('active'); | ||||||
|  |  | ||||||
|     $.each($('#salamisandwich > tbody > tr.dir'), function(i, line) { |     if (filter === "") { | ||||||
|         var first = $(line).attr('uri')[0]; |     	$('#salamisandwich > tbody > tr').removeClass('hide'); | ||||||
|  | 	} else if (filter === "plist") { | ||||||
|  |     	$('#salamisandwich > tbody > tr.dir').addClass('hide'); | ||||||
|  |     	$('#salamisandwich > tbody > tr.song').addClass('hide'); | ||||||
|  |     	$('#salamisandwich > tbody > tr.plist').removeClass('hide'); | ||||||
|  |     } else { | ||||||
|  |     	$('#salamisandwich > tbody > tr.plist').addClass('hide'); | ||||||
|  | 		$.each($('#salamisandwich > tbody > tr.dir'), function(i, line) { | ||||||
|  | 			var first = basename($(line).attr('uri'))[0]; | ||||||
|  |  | ||||||
|         if (filter === undefined) { | 			if (filter === "num") { | ||||||
|             $(line).removeClass('hide'); | 				if (!isNaN(first)) { | ||||||
|         } | 					$(line).removeClass('hide'); | ||||||
|  | 				} else { | ||||||
|         else if (filter === "#") { | 					$(line).addClass('hide'); | ||||||
|             if (!isNaN(first)) { | 				} | ||||||
|                 $(line).removeClass('hide'); | 			} else if (filter >= "A" && filter <= "Z") { | ||||||
|             } else { | 				if (first.toUpperCase() === filter) { | ||||||
|                 $(line).addClass('hide'); | 					$(line).removeClass('hide'); | ||||||
|             } | 				} else { | ||||||
|         } | 					$(line).addClass('hide'); | ||||||
|  | 				} | ||||||
|         else if (filter >= "A" && filter <= "Z") { | 			} | ||||||
|             if (first.toUpperCase() === filter) { | 		}); | ||||||
|                 $(line).removeClass('hide'); | 	} | ||||||
|             } else { |  | ||||||
|                 $(line).addClass('hide'); |  | ||||||
|             } |  | ||||||
|         } |  | ||||||
|  |  | ||||||
|         else if (filter === "||") { |  | ||||||
|             $(line).addClass('hide'); |  | ||||||
|         } |  | ||||||
|     }); |  | ||||||
|  |  | ||||||
|     $.each($('#salamisandwich > tbody > tr.plist'), function(i, line) { |  | ||||||
|         if (filter === undefined) { |  | ||||||
|             $(line).removeClass('hide'); |  | ||||||
|         } else if (filter === "||") { |  | ||||||
|             $(line).removeClass('hide'); |  | ||||||
|         } else { |  | ||||||
|             $(line).addClass('hide'); |  | ||||||
|         } |  | ||||||
|     }); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| function add_filter () { | function add_filter () { | ||||||
|     $('#filter').append(' <a onclick="set_filter(\'#\')" href="#/browse/0/">#</a>'); |     $('#filter').append(' <a onclick="set_filter(\'\')" href="#/browse/'+pagination+'/'+browsepath+'">All</a>'); | ||||||
|  |     $('#filter').append(' <a id="fnum" onclick="set_filter(\'num\')" href="#/browse/'+pagination+'/'+browsepath+'">#</a>'); | ||||||
|  |  | ||||||
|     for (i = 65; i <= 90; i++) { |     for (i = 65; i <= 90; i++) { | ||||||
|         var c = String.fromCharCode(i); |         var c = String.fromCharCode(i); | ||||||
|         $('#filter').append(' <a onclick="set_filter(\'' + c + '\')" href="#/browse/0/">' + c + '</a>'); |         $('#filter').append(' <a id="f' + c + '" onclick="set_filter(\'' + c + '\');" href="#/browse/' + pagination + '/' + browsepath + '">' + c + '</a>'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     $('#filter').append(' <a onclick="set_filter(\'||\')" href="#/browse/0/" class="glyphicon glyphicon-list"></a>'); |     $('#filter').append(' <a id="fplist" onclick="set_filter(\'plist\')" href="#/browse/'+pagination+'/'+browsepath+'" class="glyphicon glyphicon-list"></a>'); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 SuperBFG7
					SuperBFG7