Переглянути джерело

fit mobile: Playlist export dialog

HOME 2 роки тому
батько
коміт
da72913660

+ 41 - 7
FNZCM/FNZCM.BlazorWasm/UI/Views/Default/Playlist/PlaylistExportDialog.razor

@@ -3,6 +3,12 @@
 @code {
     private FnzBoostrapModal mdl;
     private string ExportName { get; set; } = "brrr";
+
+    private bool ExportDomainCheck { get; set; } = true;
+    private string ExportDomain { get; set; } = "brrr";
+    private bool ExportDateCheck { get; set; } = true;
+    private string ExportDate { get; set; } = "brrr";
+
     private string ExportExtension { get; set; } = "m3u";
     private string ExportMime { get; set; } = "text/mpegurl";
     private Guid PlaylistId { get; set; }
@@ -16,14 +22,33 @@
             <InputText class="form-control" placeholder="Filename" ValueExpression="()=>ExportName" Value="@ExportName"></InputText>
         </div>
         <div class="input-group mb-3">
+            <div class="input-group-text">
+                <input class="form-check-input mt-0" type="checkbox" checked="@ExportDomainCheck" @bind-value="ExportDomainCheck">
+                &nbsp;Host
+            </div>
+            <InputText class="form-control" ValueExpression="()=>ExportDomain" Value="@ExportDomain"></InputText>
+        </div>
+        <div class="input-group mb-3">
+            <div class="input-group-text">
+                <input class="form-check-input mt-0" type="checkbox" checked="@ExportDateCheck" @bind-value="ExportDateCheck">
+                &nbsp;Date
+            </div>
+            <InputText class="form-control" ValueExpression="()=>ExportDate" Value="@ExportDate"></InputText>
+        </div>
+        <div class="input-group mb-3">
             <span class="input-group-text">Extension</span>
             <InputText type="text" class="form-control" placeholder="Extension" ValueExpression="()=>ExportExtension" Value="@ExportExtension"></InputText>
+        </div>
+        <div class="input-group mb-3">
             <span class="input-group-text">Mime</span>
             <InputText type="text" class="form-control" placeholder="Extension" ValueExpression="()=>ExportMime" Value="@ExportMime"></InputText>
         </div>
     </Body>
     <Footer>
-        <button class="btn btn-primary" @onclick="DoExport">Save</button>
+        <button class="btn btn-primary" @onclick="DoExport">
+            <i class="bi bi-save"></i>
+            Save
+        </button>
     </Footer>
 </FnzBoostrapModal>
 
@@ -32,7 +57,9 @@
     {
         var playlist = PlaylistHelper.PlayListLoadSave[playlistId];
         var uri = new Uri(NavigationManager.Uri);
-        ExportName = $"{playlist}-{uri.Host}-{DateTime.Now:yyMMdd}";
+        ExportName = $"{playlist}";
+        ExportDomain = uri.Host;
+        ExportDate = $"{DateTime.Now:yyMMdd}";
 
         PlaylistId = playlistId;
 
@@ -43,20 +70,27 @@
     public void DoExport()
     {
         // generate m3u content
-        var sb = new StringBuilder();
-        sb.WriteM3U8Header();
+        var sbM3 = new StringBuilder();
+        sbM3.WriteM3U8Header();
 
         foreach (var item in PlaylistHelper[PlaylistId])
         {
             var track = DataSet.AllTracks.FirstOrDefault(p => p.Path == item);
             if (track == null) continue;
 
-            sb.AppendLine($"#EXTINF:{track.Tag?.Duration ?? 0} logo=\"{track.Disc.CoverPath.UrlEscape()}\",{track.Tag?.Artist} - {track.Tag?.Title ?? track.Name}");
-            sb.AppendLine(track.Path.UrlEscape());
+            sbM3.AppendLine($"#EXTINF:{track.Tag?.Duration ?? 0} logo=\"{track.Disc.CoverPath.UrlEscape()}\",{track.Tag?.Artist} - {track.Tag?.Title ?? track.Name}");
+            sbM3.AppendLine(track.Path.UrlEscape());
         }
 
+        var sbFn = new StringBuilder(ExportName);
+
+        if (ExportDomainCheck) sbFn.Append($"-{ExportDomain}");
+        if (ExportDateCheck) sbFn.Append($"-{ExportDate}");
+
+        sbFn.Append($".{ExportExtension}");
+
         // export
-        JSRuntime.InvokeVoidAsync("fnz.downloadFile", $"{ExportName}.{ExportExtension}", ExportMime, sb.ToString());
+        JSRuntime.InvokeVoidAsync("fnz.downloadFile", sbFn.ToString(), ExportMime, sbM3.ToString());
         mdl.Hide();
     }
 }