diff --git a/gaseous-server/Classes/RomMediaGroup.cs b/gaseous-server/Classes/RomMediaGroup.cs index 706d3d2..0cc5859 100644 --- a/gaseous-server/Classes/RomMediaGroup.cs +++ b/gaseous-server/Classes/RomMediaGroup.cs @@ -269,21 +269,47 @@ namespace gaseous_server.Classes // build m3u romItems.Sort((a, b) => { - var firstCompare = a.MediaDetail.Number.ToString().CompareTo(b.MediaDetail.Number.ToString()); - return firstCompare != 0 ? firstCompare : a.MediaDetail.Side.CompareTo(b.MediaDetail.Side); + if (a.MediaDetail != null) + { + if (a.MediaDetail.Number != null && a.MediaDetail.Side != null) + { + var firstCompare = a.MediaDetail.Number.ToString().CompareTo(b.MediaDetail.Number.ToString()); + return firstCompare != 0 ? firstCompare : a.MediaDetail.Side.CompareTo(b.MediaDetail.Side); + } + else if (a.MediaDetail.Number != null && a.MediaDetail.Side == null) + { + return a.MediaDetail.Number.ToString().CompareTo(b.MediaDetail.Number.ToString()); + } + else if (a.MediaDetail.Number == null && a.MediaDetail.Side != null) + { + return a.MediaDetail.Side.ToString().CompareTo(b.MediaDetail.Side.ToString()); + } + else + { + return a.Name.CompareTo(b.Name); + } + } + else + { + return a.Name.CompareTo(b.Name); + } } ); foreach (Roms.GameRomItem romItem in romItems) { string M3UFileContent = ""; M3UFileContent += romItem.Name; - if (romItem.MediaLabel != null) + if (romItem.MediaLabel.Length == 0) { - if (romItem.MediaLabel.Length > 0) + if (romItem.RomTypeMedia.Length > 0) { - M3UFileContent += "|" + romItem.MediaLabel; + M3UFileContent += "|" + romItem.RomTypeMedia; } } + else + { + M3UFileContent += "|" + romItem.MediaLabel; + } M3UFileContents.Add(M3UFileContent); } diff --git a/gaseous-server/ProcessQueue.cs b/gaseous-server/ProcessQueue.cs index 406cc2c..66cdee3 100644 --- a/gaseous-server/ProcessQueue.cs +++ b/gaseous-server/ProcessQueue.cs @@ -124,7 +124,7 @@ namespace gaseous_server case QueueItemType.MetadataRefresh: Logging.Log(Logging.LogType.Debug, "Timered Event", "Starting Metadata Refresher"); - Classes.MetadataManagement.RefreshMetadata(true); + Classes.MetadataManagement.RefreshMetadata(); _SaveLastRunTime = true; diff --git a/gaseous-server/wwwroot/pages/game.html b/gaseous-server/wwwroot/pages/game.html index 1bf8752..cab951e 100644 --- a/gaseous-server/wwwroot/pages/game.html +++ b/gaseous-server/wwwroot/pages/game.html @@ -66,7 +66,7 @@ -
+
@@ -446,6 +446,7 @@ var statusText = mediaGroup.status; var downloadLink = ''; var packageSize = '-'; + var launchButtonContent = ''; switch (mediaGroup.status) { case 'NoStatus': statusText = '-'; @@ -460,6 +461,7 @@ statusText = 'Available'; downloadLink = ''; packageSize = formatBytes(mediaGroup.size); + launchButtonContent = launchButton; break; case "Failed": statusText = 'Build error'; @@ -476,7 +478,7 @@ mediaGroup.romIds.length, packageSize, statusText, - launchButton, + launchButtonContent, '
' + downloadLink + deleteButton + '
' ] @@ -486,15 +488,22 @@ var mgRomCell = document.createElement('td'); mgRomCell.setAttribute('colspan', 6); mgRomCell.className = 'romGroupTitles'; + // iterate the group members - var groupMemberNames = []; + var groupMembers = []; for (var r = 0; r < mediaGroup.romIds.length; r++) { for (var x = 0; x < gameRomItems.length; x++) { if (mediaGroup.romIds[r] == gameRomItems[x].id) { - groupMemberNames.push(gameRomItems[x].name); + groupMembers.push(gameRomItems[x]); } } } + + groupMembers.sort((a, b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0)); + var groupMemberNames = []; + for (var r = 0; r < groupMembers.length; r++) { + groupMemberNames.push(groupMembers[r].name); + } mgRomCell.innerHTML = groupMemberNames.join("
"); mgRomRow.appendChild(mgRomCell); @@ -840,10 +849,12 @@ '/api/v1/Games/' + gameId + '/romgroup?PlatformId=' + platformId, 'POST', function (result) { - loadRoms(false); + DisplayROMCheckboxes(false); + loadRoms(); }, function (error) { - loadRoms(false); + DisplayROMCheckboxes(false); + loadRoms(); }, JSON.stringify(romIds) ); diff --git a/gaseous-server/wwwroot/styles/style.css b/gaseous-server/wwwroot/styles/style.css index 2e727ed..082b900 100644 --- a/gaseous-server/wwwroot/styles/style.css +++ b/gaseous-server/wwwroot/styles/style.css @@ -522,8 +522,11 @@ iframe { width: 100%; } -.romrow:hover { - background-color: #383838; +table .romrow:nth-child(even) { + background: rgba(94, 94, 94, 0.3); +} + +table .romrow:nth-child(odd) { background: rgba(56, 56, 56, 0.3); }