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

RIFFMASTER: FRONTEND: add downloading selected song in a format compatible with RiffMaster

Kuba 2 роки тому
батько
коміт
130ff30eda
19 змінених файлів з 59 додано та 5 видалено
  1. 2 2
      Backend/Spring/.idea/workspace.xml
  2. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack
  3. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack
  4. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack
  5. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack
  6. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack
  7. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack
  8. BIN
      Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old
  9. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/10decb9ec359413698b88f39a4e2bc73d528927ffd5ea801db0b233688ce9d42.json
  10. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/3adac5854621bce89d60fe22d39fbba475db5cacbd911770d6e69885610e655e.json
  11. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/547765d4f050a0865f8821ca3443f2b95617da2a5fab2a05102657e0222cf503.json
  12. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/7a6a92982db5330865bd8ff416d89ff232ebcaba3f64da245dd66ee82566cf0f.json
  13. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/7e743b00440ccbcd6cceb2d3d0d7542f3696866048d8d189e8f968304f78cebe.json
  14. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/8d391d2aea2a6afe85fed4fada79411ac6eabe1fd14ae61d7406d79bf3472670.json
  15. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/9b60049558be473f9f08e17653ec454dcc0a6fe71d29fe557bc03bda2f82f4cb.json
  16. 0 0
      Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b33b333cbb2cc89be31dd7c7b12767de52f555e5b868f18e6c13d3e78ee77c8f.json
  17. 1 1
      Frontend/RiffMasterFront/.idea/workspace.xml
  18. 42 0
      Frontend/RiffMasterFront/src/app/Services/song.service.ts
  19. 14 2
      Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts

+ 2 - 2
Backend/Spring/.idea/workspace.xml

@@ -10,8 +10,8 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="8315de53-8c15-472c-a710-45938463dc02" name="Changes" comment="RIFFMASTER: add frontend files">
-      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/15.pack" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/15.pack" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/Services/song.service.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/Services/song.service.ts" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts" beforeDir="false" afterPath="$PROJECT_DIR$/../../Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
@@ -215,7 +215,7 @@
       <workItem from="1686820558130" duration="622000" />
       <workItem from="1686836941887" duration="14004000" />
       <workItem from="1686898654444" duration="1889000" />
-      <workItem from="1686909268841" duration="14684000" />
+      <workItem from="1686909268841" duration="15278000" />
     </task>
     <task id="LOCAL-00001" summary="add basic hello world and transfering data to server">
       <created>1679575346987</created>

BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/0.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/1.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/2.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/4.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/5.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack


BIN
Frontend/RiffMasterFront/.angular/cache/16.0.4/angular-webpack/9163ed2c587ff4665fb17ea4ebc8750a69df1e73/index.pack.old


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/10decb9ec359413698b88f39a4e2bc73d528927ffd5ea801db0b233688ce9d42.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/3adac5854621bce89d60fe22d39fbba475db5cacbd911770d6e69885610e655e.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/547765d4f050a0865f8821ca3443f2b95617da2a5fab2a05102657e0222cf503.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/7a6a92982db5330865bd8ff416d89ff232ebcaba3f64da245dd66ee82566cf0f.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/7e743b00440ccbcd6cceb2d3d0d7542f3696866048d8d189e8f968304f78cebe.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/8d391d2aea2a6afe85fed4fada79411ac6eabe1fd14ae61d7406d79bf3472670.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/9b60049558be473f9f08e17653ec454dcc0a6fe71d29fe557bc03bda2f82f4cb.json


Різницю між файлами не показано, бо вона завелика
+ 0 - 0
Frontend/RiffMasterFront/.angular/cache/16.0.4/babel-webpack/b33b333cbb2cc89be31dd7c7b12767de52f555e5b868f18e6c13d3e78ee77c8f.json


+ 1 - 1
Frontend/RiffMasterFront/.idea/workspace.xml

@@ -97,7 +97,7 @@
       <workItem from="1686820564623" duration="521000" />
       <workItem from="1686836939723" duration="5206000" />
       <workItem from="1686898660229" duration="4682000" />
-      <workItem from="1686909264196" duration="5817000" />
+      <workItem from="1686909264196" duration="7475000" />
     </task>
     <task id="LOCAL-00001" summary="RIFFMASTER: add frontend project">
       <created>1685976235580</created>

+ 42 - 0
Frontend/RiffMasterFront/src/app/Services/song.service.ts

@@ -54,4 +54,46 @@ export class SongService {
       });
     });
   }
+
+
+
+
+  generateXaml(song: Song): string {
+    const songXml = this.songToXml(song);
+    const xaml = `<Song>${songXml}</Song>`;
+    return xaml;
+  }
+
+  songToXml(song: Song): string {
+    const xmlBuilder = require('xmlbuilder');
+
+    const songXml = xmlBuilder.create('Track', { version: '1.0', encoding: 'UTF-8' });
+
+    if (song.riffs && song.riffs.length > 0) {
+      const riffsXml = songXml.ele('Riffs');
+      for (const riff of song.riffs) {
+        const riffXml = riffsXml.ele('Riff');
+        riffXml.ele('Name', riff.name);
+        riffXml.ele('StartMs', riff.startMs);
+        riffXml.ele('EndMs', riff.endMs);
+        riffXml.up();
+      }
+    }
+
+    songXml.ele('Name', song.name);
+
+    return songXml.end({ pretty: true });
+  }
+
+
+
+
+
+
+
+
+
+
+
+
 }

+ 14 - 2
Frontend/RiffMasterFront/src/app/main-page/main-page.component.ts

@@ -98,8 +98,20 @@ export class MainPageComponent implements OnInit {
     }
   }
 
-  download() {
-    // Implement your download logic here
+  download(): void {
+    if (this.selectedSong) {
+      const xmlContent = this.songService.songToXml(this.selectedSong);
+      const blob = new Blob([xmlContent], { type: 'text/xml' });
+      const url = window.URL.createObjectURL(blob);
+
+      const a = document.createElement('a');
+      a.href = url;
+      a.download = this.selectedSong.name + '.xml';
+      a.click();
+
+      window.URL.revokeObjectURL(url);
+      a.remove();
+    }
   }
 
 

Деякі файли не було показано, через те що забагато файлів було змінено