Sindbad~EG File Manager

Current Path : /home/numerotech/test-abs.numerotech.com/common_abs_v2/core/templates/users/TNOA24/OGT/
Upload File :
Current File : //home/numerotech/test-abs.numerotech.com/common_abs_v2/core/templates/users/TNOA24/OGT/step1.html

<ul class="nav nav-tabs" id="myTab" role="tablist">
        <li class="nav-item p-2">
            <button type="button" class="nav-link active " value="1">Step 1</button>
        </li>
        <li class="nav-item p-2">
            <button type="button" class="nav-link nav_btn_gray" value="2" onclick="{% if data.cur_step >= 1 %}jump_step(2){% endif %}">Step 2</button>
        </li>
    </ul>
<div class="tab-content " id="myTabContent">
    <div class="tab-pane fade show active p-2 rounded"  role="tabpanel" >
    <form method="POST" action="{{url_for('main.Step1post',abs_id=abs_id,abs_type=abs_type,conf_id=conf_id,conf_key=conf_key)}}" id="form_s1">
        <div class="container" id="step1">
           
            </div>
            <div class="row mt-2">
                <div class="col form-group">
                    <label class="font-weight-bold">Delegate number</label><br />
                    <span>{{delData.delegate_no or ''}}</span>
                </div>
                <div class="col form-group">
                    <label class="font-weight-bold">Membership number</label><br />
                    <span>{{user_info.membership_no or 'Non-Member'}}</span>
                </div>
                <div class="col form-group">
                    <label class="font-weight-bold"> Name</label><br />
                    <span>{{user_info.prefix or ''}}{{user_info.full_name or ''}}</span>
                </div>
            </div><br>
            <div class="row">
                <div class="col-6 form-group">
                    <label class="font-weight-bold">Category <span class="text-danger">*</span></label>
                </div>
            </div>
            <div class="row">
                <div class="col-6 form-group">
                    <select class="form-control" id="misc1" name="misc1" required>
                        <option id="select" value="">Select category</option>
                        <option value="Dancing" {{ 'selected' if data.misc1=='Dancing' }}>Dancing</option>
                        <option value="Drawing" {{ 'selected' if data.misc1=='Drawing' }}>Drawing</option>
                        <option value="Mimicry" {{ 'selected' if data.misc1=='Mimicry' }}>Mimicry</option>
                        <option value="Painting" {{ 'selected' if data.misc1=='Painting' }}>Painting</option>
                        <option value="Photography" {{ 'selected' if data.misc1=='Photography' }}>Photography</option>
                        <option value="Singing" {{ 'selected' if data.misc1=='Singing' }}>Singing</option>
                        <option value="Others" {{ 'selected' if data.misc1=='Mimicry' }}>Others</option>
                      </select>
                   
                </div>
            </div>
            <div class="row">
                <div class="col-12 form-group">
                    <label class="font-weight-bold">Title <span class="text-danger">*</span></label>
                </div>
                <div class="col-12 form-group">
                    <textarea type="text" name="title" id="title" class="form-control" value="" placeholder="Title">{{ data.title or '' }}</textarea>
                </div>
            </div>
            <div class="row">
                <div class="col-12 form-group">
                    <label class="font-weight-bold">Description</label>
                </div>
                <div class="col-12 form-group">
                    <textarea type="text" name="synopsis" id="synopsis" class="form-control" value="" placeholder="Description">{{ data.synopsis or '' }}</textarea>
                </div>
            </div>
            
            <div class="row ">
                <div class="col form-group">
                    <label class="font-weight-bold">Attachment <span class="text-danger">*</span></label>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    <h5 class="alert alert-info">
                    <span class="h4">Guidelines</span><br>
                        - Video(MP4) or Audio(MP3) duration not more than 2 mins.<br>
                        - The image should be in the format of JPG, JPEG or PNG.<br>
                        - Only individual performance (no group performance).<br><br>
                        The finalists will be performing at the Cheneye con 24 conference.<br>
                    </h5>
                </div>
            </div>
            <div class="row">
                <div class="col-md-4 offset-md-4 mb-4">
                    <div class="card text-center user_attach_card mb-3">
                        <div class="card-header text-white">
                            Upload your Image/Video<br />
                            [JPG , JPEG , PNG, MP3, MP4]<br>
                            
                        </div>
                        <div class="card-body">
                            {% if img %}
                           {% set img = img[0] %}
                           {% endif %}
                            {% if img.file_name %} 
                                {% set image_display = "block" %} 
                            {% else %} 
                                {% set image_display = "none" %} 
                            {% endif %} 
                            <input type="hidden" name="upload_id" id="upload_id" value="{{img.upload_id}}">
                            <div id="show_img" style="display:{{ image_display }}">
                                {% if img.file_name : %} 
                                    {% set src= img.path|string +""+img.file_name|string +"?"+Helper.getcurrenttimestamp()|string %} 
                                
                                {% set img_hide = "none" %} 
                                {% if ".mp4" in img.file_name :%} 
                                    <video id="video_file" class="file_view" width="100%" height="auto" controls autoplay controlsList="nodownload">                                    
                                        <source id="video" src="{{ src}}" type="video/mp4">
                                    </video>
                                {% elif ".mp3" in img.file_name :%} 
                                    <audio id="audio_file" controls>
                                        <source id="audio" src="{{ src}}" type="audio/mpeg">
                                    </audio>
                                {% else %} 
                                    {% set img_hide = "block" %}
                                    <img src="{{ src }}" id="img" alt="Proof" width="100%" height="auto" style="max-height: 150px;display: {{ img_hide}} " />
                                {% endif %} 
                            {% else %} 
                                {% set src= "" %} 
                                
                            {% endif %}
                            <img src="" id="img" alt="Proof" width="100%" height="auto" style="max-height: 150px;display:none" />
                            <video id="video_file" width="100%" height="auto" controls autoplay controlsList="nodownload" style="display:none" >
                                <source id="video" src="{{ src}}" type="video/mp4">
                            </video>
                            <audio id="audio_file" controls style="display:none">
                                <source id="audio" src="{{ src}}" type="audio/mpeg">
                            </audio>
                        </div>
                        <div class="btn btn-primary btn-block file-field my-2" id="file-field">
                            <span>
                                {% if src=="" %} Upload {% else %} Change {% endif %}
                            </span>

                            <input type="file" id="file" name="file" onchange="uploadFile()" />
                        </div>
                        <input type="button" value="Delete" name="delete" style="display: {{ image_display }}" id="delete" class="btn btn-danger btn-block photo_delete form-input" />
                    </div>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="col float-right py-2">
                <input type="button" name="next" id="next" class="btn btn-primary float-right" value="Next" onclick="move(1,1)" />
            </div>
        </div>
    </div>
    <div id="step2"></div>
    <input type="hidden" name="user_id" id="user_id" value="{{user_id}}" />
    <input type="hidden" name="abs_id" id="abs_id" value="{{abs_id}}" />
     <input type="hidden" name="abs_type" id="abs_type" value="{{abs_type}}" />
    <input type="hidden" name="step" id="step" value="1" />
    <input type="hidden" name="step" id="is_next" value="1" />
    <input type="hidden" name="cur_step" id="cur_step" value="{{ data.cur_step or 0 }}">
    <input type="hidden" name="file_name" id="file_name">
</form>
</div>
<!-- The Modal -->

{% block script %}
<script src="https://cdn.jsdelivr.net/npm/aws-sdk/dist/aws-sdk.min.js"></script>
<script type="text/javascript">
    var BaseUrl = document.location.origin;
    
    var conf_id = $("#conf_id").val();
    var conf_key = $("#conf_key").val();
    var abs_type = $("#abs_type").val();
    $(document).ready(function () {

        $( ".file-field" ).on( "click", function() 
        {

            $(this).find('input[type="file"]')[0].click()
        });
        


    })
    
    var oneMB     = 1048576 
    var file_size = 500

function uploadFile() {

    var ext = $('#file').val().split('.').pop().toLowerCase();
    var abs_id = $("#abs_id").val();
    var refilename = "{{user_info.full_name}}"
    
    const file = $('#file')[0].files[0];

    if (!file) 
    {
        alert('Please select a file to upload.');
    }
    else if($.inArray(ext,['png','jpg','jpeg','mp4','mp3']) == -1) 
    {
        clear()
        alert('Invalid file type');
        
    }
    else if($('#file')[0].files[0].size > (oneMB*file_size) && $.inArray(ext,['png','jpg','jpeg','mp4','mp3']) > -1)
    {
        clear()
        alert('File Must less than '+file_size+' MB');
    } 
    else 
    { 

        
        $('.file-field span').html('Uploading ....');
        
        var file_name=file.name;
        
        var refilename=refilename.replace(/\s/g,'')
        var refilename=refilename.replace('.','')
        
        var file_name = file_name.replace(file_name,refilename+'-'+abs_id+'.'+ext)
        $("#file_name").val(file_name)
        
        const bucketName = 'common-application';
        const key = 'abs_uploads'+'/'+conf_key +'/'+ abs_type +'/'+ abs_id+'/'+file_name; // Set the key (path) for the file in the bucket
        // alert(key)
        AWS.config.update({
            accessKeyId: "AKIAIVJULUNYWYOTNLAQ",
            secretAccessKey: "G9kEjx+3MfwYSPxupwRISUNDRecBAaqVhYKfFZp3",
            region: 'ap-southeast-1', // e.g., us-east-1
        });

        const s3 = new AWS.S3();

        const params = {
            Bucket: bucketName,
            Key: key,
            Body: file,
            ACL: 'public-read', // Adjust the ACL as needed
            ContentType: 'application/'+ext
        };

        s3.upload(params, (err, data) => {
        if (err) {
             alert('Error uploading file:', err)
             console.error('Error uploading file:', err);
        } 
        else 
        {
             // console.log('https//'data.)
            console.log('File uploaded successfully:', data.Location);
            $("#show_img").show();
            upload_video_file()

            file_extension = "."+ext
            $('#upload_id').val(data.upload_id);
            if((file_extension !=".mp4"))
            {
                 // alert('img')
                 $("#img").attr('src',data.Location);
                 $("#img").show();
                 $("#video_file").hide();
                 $("#audio_file").hide();
                 
            }
            if(file_extension == ".mp4")
            {
                $("#video_file").attr("src",data.Location)
                $("#video_file").show();
                $("#img").hide();
                $("#audio_file").hide();
            }
            if(file_extension == ".mp3")
            {
                $("#audio_file").attr("src",data.Location)
                $("#audio_file").show();
                $("#img").hide();
                $("#video_file").hide();
            }
             
             
                $('#success_msg_cd').show();
                $("#success_msg_cd").html("Successfully uploaded");
                $("#file-field span").text("Change");
                $("#delete").show();
             setTimeout(function(){ 
                $("#success_msg_cd").hide()
               $("#success_msg_cd").css("background" ,"#ffffff" );
                $("#success_msg_cd").html('');
             }, 20000);
     
             // You can perform additional actions after successful upload
         }
     });
 }
}

    function upload_video_file() {
        var file_name=$("#file_name").val();
        var img_type = "attachment"
        var abs_id = $("#abs_id").val();
        $.ajax({
            type: "POST",
            url: BaseUrl +"/save_upload_details/"+abs_id+"/"+abs_type+"/"+ conf_id + "/" + "{{conf_key}}",
            data: { 'file_name': file_name,'img_type':img_type },
            dataType: "json",
            success: function (data) {
                
                $('#upload_id').val(data.max);
            },
        });
        return false;
    }
           

    $(".photo_delete").click(function() 
    {
        var upload_id = $('#upload_id').val();
        var r         = confirm("confirm to delete!");
        var abs_id = $("#abs_id").val();
        if (r == true) 
        {
            
            $.ajax({
                type: "GET",
                url: BaseUrl +"/remove_img/"+conf_id+"/"+conf_key,
                data: {
                    'upload_id' : upload_id,
                    'abs_id'    : abs_id,
                    },
                dataType: "json",
                success: function (data) {
                StopProgress();
                // $("#Upload_btn_div").show();
                $("#show_img").hide();
                $("#delete").hide();
                $('#upload_id').val('');
                $("#file-field span").text("Upload"); 
                clear()
                return true;
              },
            });
        }
        else {}
    })

    function clear() 
    {
        $('input[type=file]').each(function() 
        {
            $(this).val('');
        });
        $('input[name=upload_id]').each(function() 
        {
            $(this).val('');
        });     
    } 

</script>
{% endblock %}

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists