src/Eccube/Resource/template/admin/Product/_parts/js_product_audio_file.twig line 1

Open in your IDE?
  1. <script>
  2.     $(function() {
  3.         var inputFileElement = $('#admin_product_audio_file');
  4.         // 音声ファイルがアップロードされるときの処理
  5.         inputFileElement.on('change', function(event) {
  6.             var inputFileElement = event.target;
  7.             var file = inputFileElement.files[0];
  8.             var validMimeTypes = [
  9.                 'audio/mpeg',
  10.                 'audio/mp3',
  11.                 'audio/wav',
  12.                 'audio/x-wav',
  13.                 'audio/ogg',
  14.                 'audio/midi',
  15.                 'audio/x-midi'
  16.             ];
  17.             if (file) {
  18.                 if (validMimeTypes.includes(file.type)) {
  19.                     const formData = new FormData();
  20.                     formData.append("audio_file", file);
  21.                     $.ajax({
  22.                         url: "{{ url('admin_product_audio_file') }}",
  23.                         type: 'POST',
  24.                         data: formData,
  25.                         contentType: false,
  26.                         processData: false
  27.                     }).done(function(data) {
  28.                         var audioFileName = $('#admin_product_audio_file_name');
  29.                         audioFileName.val(data);
  30.                     }).fail(function() {
  31.                         alert('更新に失敗しました。入力内容を確認してください。');
  32.                     });
  33.                 } else {
  34.                     alert('音声ファイル形式でアップロードしてください (MP3, WAV, OGG, MIDI).');
  35.                     inputFileElement.value = '';
  36.                 }
  37.             }
  38.         });
  39.     });
  40. </script>
  41. <script>
  42.     $(function() {
  43.     var deleteAudioButton = $('#remove_audio_file');
  44.     var inputFileElement = $('#admin_product_audio_file');
  45.     var file = inputFileElement[0];
  46.     // 音声ファイル削除ボタンが押されるときの処理
  47.     deleteAudioButton.on('click', function(event) {
  48.         // URLから商品IDを取得
  49.         var currentUrl = location.href;
  50.         var urlParts = currentUrl.split('/');
  51.         var idIndex = urlParts.indexOf('product') + 2;
  52.         var productId = urlParts[idIndex].toString();
  53.         var baseUrl = "{{ url('admin_product_audio_delete', {'id': 0}) }}";
  54.         baseUrl = baseUrl.replace('/0', "");
  55.         var deleteUrl = baseUrl + '/' + productId;
  56.         if(confirm("この音声ファイルを削除しますか?")){
  57.             if (file) {
  58.                 const formData = new FormData();
  59.                 $.ajax({
  60.                     url: deleteUrl,
  61.                     type: 'DELETE',
  62.                     data: null,
  63.                     contentType: false,
  64.                     processData: false
  65.                 }).done(function(data) {
  66.                     var audioDeleteMessage = $('#audio_delete_message');
  67.                     audioDeleteMessage.text("音声ファイルを削除しました、完了するには登録ボタンを押してください");
  68.                     var deleteAudioFileName = $('#admin_product_delete_audio_file_name');
  69.                     deleteAudioFileName.val(data);
  70.                 }).fail(function() {
  71.                     alert('更新に失敗しました。入力内容を確認してください。');
  72.                 });
  73.             } else {
  74.                 alert('音声ファイル形式でアップロードしてください (MP3, WAV, OGG, MIDI).');
  75.                 file.value = '';
  76.             }
  77.         }
  78.     });
  79.     });
  80. </script>