Example #1
0
    <div class="form-group">
        <span class="btn btn-primary fileinput-button default-button">
            <span class="glyphicon glyphicon-plus"></span> Upload Tracks
            <?php 
echo FileUpload::widget(['name' => 'File[uploadedFiles][]', 'url' => ['file/upload'], 'options' => ['accept' => 'audio/*', 'multiple' => true], 'clientOptions' => ['maxFileSize' => 5000000, 'singleFileUploads' => false], 'clientEvents' => ['fileuploadstart' => "function (e) {\n                        \$('#progress-audio').removeClass('invisible');\n                    }", 'fileuploaddone' => "function(e, data) {\n                        \$('#progress-audio').addClass('invisible');\n                        \$('#progress-audio .bar').css('width', '0%');\n\n                        for (var i = 0; i < data.result.length; i++) {\n                            var item = data.result[i];\n                            var index = \$('.track-block').length;\n\n                            \$('<div>').attr({\n                                id: 'track-' + index,\n                                class: 'track-block track-container'\n                            }).append(\n                                \$('<div>').append(\n                                    \$('<audio>').attr({\n                                        id: item.id,\n                                        class: 'track-audio',\n                                        src: item.url,\n                                        type: item.type,\n                                        preload: 'none',\n                                        controls: true,\n                                        onended: 'playNextTrack(this)',\n                                        onplay: 'onPlayTrack(this)',\n                                        onvolumechange: 'saveVolume(this)'\n                                    })\n                                ),\n                                \$('#track-proto').clone().html().replace(/0/g, index)\n                            ).appendTo('#tracks');\n\n                            \$('#track-' + index + '-original_name').val(item.meta.title);\n                            \$('#track-' + index + '-number').val(item.meta.number);\n                            \$('#track-' + index + '-disc').val(item.meta.disc);\n                            \$('#track-' + index + '-lyric').val(item.meta.lyric);\n                            \$('#track-' + index + '-info').val(item.meta.info);\n                            \$('#track-' + index + '-file_id').val(item.id);\n                        }\n                     }", 'fileuploadfail' => "function(e, data) {\n                        bootbox.alert('Error.');\n                    }", 'fileuploadprogressall' => "function (e, data) {\n                        var progress = parseInt(data.loaded / data.total * 100, 10);\n                        \$('#progress-audio .bar').css('width', progress + '%');\n                    }"]]);
?>
        </span>
    </div>

    <div class="form-group">
        <?php 
echo Html::submitButton('Create', ['class' => 'btn btn-success default-button']);
?>
    </div>

    <?php 
ActiveForm::end();
?>

    <div id="track-proto" class="invisible">
        <?php 
echoTrack($form, $trackProto, 0);
?>
    </div>

    <div id="progress-audio" class="progress invisible">
        <div class="bar progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>
    </div>
</div>
Example #2
0
            <?php 
echo XeditableWidget::widget(['type' => 'comname', 'model' => $model, 'attribute' => 'original_name', 'addAttribute' => 'latin_name', 'displayValue' => $model->getComname(), 'aClass' => 'release-name']);
?>
        </div>
    </div>

    <div class="col-md-4">
        <?php 
echo \app\components\GalleryWidget::widget(['isNew' => false, 'images' => $model->getCovers()->addOrderBy('is_main DESC')->all(), 'ownerClass' => 'Cover', 'ownerId' => $model->id]);
?>
    </div>

    <div class="col-md-4">
        <div class="tracks"><?php 
foreach ($model->tracks as $track) {
    echoTrack($track);
}
?>
</div>

        <span class="btn btn-default btn-xs fileinput-button" style="margin-top: 10px;">
            <span class="glyphicon glyphicon-plus"></span> Add Tracks
            <?php 
echo FileUpload::widget(['name' => 'File[uploadedFiles][]', 'url' => ['file/upload', 'rid' => $model->id], 'options' => ['accept' => 'audio/*', 'multiple' => true], 'clientOptions' => ['maxFileSize' => 5000000, 'singleFileUploads' => false], 'clientEvents' => ['fileuploadstart' => "function (e) {\n                        \$('#progress-audio').removeClass('invisible');\n                    }", 'fileuploaddone' => "function(e, data) {\n                        \$('#progress-audio').addClass('invisible');\n                        \$('#progress-audio .bar').css('width', '0%');\n\n                        var trackTpl = Handlebars.compile(\$('#track-tpl').html());\n                        for (var i = 0; i < data.result.length; i++) {\n                            var item = data.result[i];\n                            \$('.tracks').append(trackTpl({\n                                id: item.track_id,\n                                comname: item.comname,\n                                number: item.number,\n                                url: item.url\n                            })).children().last().fadeIn();\n                        }\n                     }", 'fileuploadfail' => "function(e, data) {\n                        bootbox.alert('Error');\n                    }", 'fileuploadprogressall' => "function (e, data) {\n                        var progress = parseInt(data.loaded / data.total * 100, 10);\n                        \$('#progress-audio .bar').css('width', progress + '%');\n                    }"]]);
?>
        </span>

        <div id="progress-audio" class="progress invisible" style="margin-top: 10px;">
            <div class="bar progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
                 style="width: 0%;"></div>
        </div>