<div id="upload-container" class="cbi-value cbi-value-last"> <label class="cbi-value-title" for="archive"><%:Upload%></label> <div class="cbi-value-field"> <input type="file" name="upload_archive" accept="application/x-tar" id="upload_archive" /> </div> <br /> <label class="cbi-value-title" for="path"><%:Path%></label> <div class="cbi-value-field"> <input type="text" class="cbi-input-text" name="path" value="/tmp/" id="path" /> </div> <br /> <div class="cbi-value-field"> <input type="button"" class="btn cbi-button cbi-button-action important" id="upload" name="upload" value="<%:Upload%>" /> <input type="button"" class="btn cbi-button cbi-button-action important" id="download" name="download" value="<%:Download%>" /> </div> </div> <script type="text/javascript"> let btnUpload = document.getElementById('upload') btnUpload.onclick = function (e) { let uploadArchive = document.getElementById('upload_archive') let uploadPath = document.getElementById('path').value if (!uploadArchive.value || !uploadPath) { docker_status_message('warning', "<%:Please input the PATH and select the file !%>") document.getElementById('docker_apply_overlay').addEventListener( "click", (e)=>{ docker_status_message() } ) return } let fileName = uploadArchive.files[0].name let formData = new FormData() formData.append('upload-filename', fileName) formData.append('upload-path', uploadPath) formData.append('upload-archive', uploadArchive.files[0]) let xhr = new XMLHttpRequest() xhr.open("POST", '<%=luci.dispatcher.build_url("admin/docker/container_put_archive")%>/<%=self.container%>', true) xhr.onload = function() { if (xhr.status == 200) { uploadArchive.value = '' docker_status_message('notice', "<%:Upload Success%>") } else { docker_status_message('warning', "<%:Upload Error%>:" + xhr.statusText) } document.getElementById('docker_apply_overlay').addEventListener( "click", (e)=>{ docker_status_message() } ) } xhr.send(formData) } let btnDownload = document.getElementById('download') btnDownload.onclick = function (e) { let downloadPath = document.getElementById('path').value if (!downloadPath) { docker_status_message('warning', "<%:Please input the PATH !%>") document.getElementById('docker_apply_overlay').addEventListener( "click", (e)=>{ docker_status_message() } ) return } window.open('<%=luci.dispatcher.build_url("admin/docker/container_get_archive")%>?id=<%=self.container%>&path=' + encodeURIComponent(downloadPath)) } </script>