Невозможно удалить песню из iTunes в браузере Safari. - PullRequest
0 голосов
/ 31 октября 2019

Я создал поле для удаления песни из локального или iTunes, используя angularjs и laravel. Это HTML-код. Я добавил его вид здесь.] 1

<tab heading="Upload New File" select="tabSelected('uploadnew')">
    <div class="input-group">
         <label> Asset Name </label>
         <span class="color-red ng-scope">*</span>
         <input type="text" ng-model="uploadnew.assetName" class="form-control" />
    </div>

    <div class="form-group">
         <label> Notes </label>
         <textarea class="form-control" msd-elastic ng-model="uploadnew.notes"></textarea>
    </div>

     <div class="form-group fileUp">
         <div class="inlinehr"><input type="file" class="ng-pristine ng-valid ng-touched" ngf-select="uploadnew.selectFile($files)" ngf-multiple="false"></div>
         <span class="badge" ng-show="!uploadnew.newFile">No File Selected</span>
          <span>{{uploadnew.newFile.name}}</span>
          </div>
     <div>

     <div ngf-drop ngf-select ng-model="uploadnew.droppedFiles" class="drop-box"
        ngf-drag-over-class="'dragover'" ngf-multiple="true" ngf-allow-dir="true">Drop file here</div>
     <div ngf-no-file-drop>File Drag/Drop is not supported for this browser</div>
     </div>
</tab>

В Google Chrome работает удаление iTunes. Но это не работает в браузере Safari. В консоли нет ошибок. Кто-нибудь знает, что мне делать? Спасибо.

Здесь я добавил соответствующий код JavaScript.

    MetronicApp.controller('SelectSingleAssetController', function ($scope, $modalInstance, Upload, $http, EntityAssets, $timeout, $q, selectSingleConfig) {

    var searchForAsset = function (term, orderBy, reverse, mimeTypeFilter) {
        var deferred = $q.defer();

        var result = [];

        EntityAssets.query({
            page: 1,
            pageSize: 10,
            orderBy: orderBy,
            orderDir: reverse ? 'DESC' : 'ASC',
            mimeTypeFilter: mimeTypeFilter,
            term: term
        }, function (data) {
            deferred.resolve(data);
        });

        return deferred.promise;
    };

    $scope.exsiting = {
        selectedAsset: null,
        searchAssets: []
    };

    $scope.exsiting.refreshSearch = function (term) {
        if (term.length > 1) {

            searchForAsset(term, 'created_at', false, selectSingleConfig.mimeTypeFilter)
                .then(function (data) {
                    $scope.exsiting.searchAssets = data;
                });
        }
        else {
            $scope.searchAssets = [];
        }
    };

    // uploadnew tab

    $scope.uploadnew = {
        assetName: '',
        notes: '',
        newFile: null,
        droppedFiles: [],
        FileLoadedPercentage: ''
    }

    $scope.$watch('uploadnew.droppedFiles', function () {
        $scope.uploadnew.selectFile($scope.uploadnew.droppedFiles);
    });

    $scope.uploadnew.selectFile = function (files) {
        if (files.length > 0) {
            $scope.uploadnew.newFile = files[0];

            var lastSplit = files[0].name.split('.');
            var lastSplitLng = lastSplit[0].length;
            if (lastSplit.length > 1) {
                var lastSplitLng = files[0].name.length - (lastSplit[lastSplit.length - 1].length + 1);
            }

            if (!$scope.uploadnew.assetName) {
                $scope.uploadnew.assetName = files[0].name.substring(0, lastSplitLng);
            }
        }
        else {
            $scope.uploadnew.newFile = null;
        }
    };

    // global stuff

    $scope.tabSelected = function (tabName) { $scope.currentTab = tabName; }
    $scope.currentTab = 'exsiting';
    $scope.$watch('currentTab', function () { updateIsValid(); });
    $scope.$watch('uploadnew.assetName', function () { updateIsValid(); });
    $scope.$watch('uploadnew.newFile', function () { updateIsValid(); });
    $scope.$watch('exsiting.selectedAsset', function () { updateIsValid(); });

    var updateIsValid = function () {
        if ($scope.currentTab == 'exsiting') {
            $scope.isValid = !!$scope.exsiting.selectedAsset;
        }
        else if ($scope.currentTab == 'uploadnew') {
            $scope.isValid = !!$scope.uploadnew.assetName && !!$scope.uploadnew.newFile;
        }
        else {
            $scope.isValid = false;
        }
    };

    $scope.isValid = false;
    $scope.isSending = false;
    $scope.FileLoadedPercentage = 0;

    $scope.save = function () {

        $scope.isSending = true;

        var result = { selectType: $scope.currentTab };

        // making an internal promise to make this easier to read and process
        var deferred = $q.defer();

        // once this is resolved it will fire off the 'preCloseCallback'
        deferred.promise.then(function () {
            if (selectSingleConfig.preCloseCallback) {
                selectSingleConfig.preCloseCallback($scope, result.entity_asset, function () { $modalInstance.close(result); });
            }
            else {
                $modalInstance.close(result);
            }
        });

        if ($scope.currentTab === 'exsiting') {
            result.entity_asset = $scope.exsiting.selectedAsset;
            deferred.resolve();
        }
        else if ($scope.currentTab === 'uploadnew') {

            var data = {
                AssetName: $scope.uploadnew.assetName,
                Notes: $scope.uploadnew.notes ? $scope.uploadnew.notes : '',
                OriginalFilename: $scope.uploadnew.newFile.name,
                File: $scope.uploadnew.newFile
            };

            if (selectSingleConfig.autoUpload === true) {
                Upload.upload({
                    data: data,
                    url: "/entityAssets"
                }).then(function (uploadResult) {
                    $scope.currentTab === 'exsitingnew'
                    result.entity_asset = uploadResult.data;
                    deferred.resolve();
                }, function () {
                }, function (evt) {
                    $scope.FileLoadedPercentage = parseInt(100.0 * evt.loaded / evt.total);
                });
            }
            else {
                result.entity_asset = data;
                deferred.resolve();
            }
        }
    };

    $scope.cancel = function () { $modalInstance.dismiss(); };

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...