##// END OF EJS Templates
deps: bumped venusian==3.1.0 for python 3.12 compat
deps: bumped venusian==3.1.0 for python 3.12 compat

File last commit:

r5274:6d0b768f default
r5622:5bcb0167 tip default
Show More
files_upload.mako
222 lines | 7.6 KiB | application/x-mako | MakoHtmlLexer
<%inherit file="/base/base.mako"/>
<%def name="title()">
${_('{} Files Upload').format(c.repo_name)}
%if c.rhodecode_name:
&middot; ${h.branding(c.rhodecode_name)}
%endif
</%def>
<%def name="menu_bar_nav()">
${self.menu_items(active='repositories')}
</%def>
<%def name="breadcrumbs_links()"></%def>
<%def name="menu_bar_subnav()">
${self.repo_menu(active='files')}
</%def>
<%def name="main()">
<div class="box">
## Template for uploads
<div style="display: none" id="tpl-dropzone">
<div class="dz-preview dz-file-preview">
<div class="dz-details">
<div class="dz-filename">
<span data-dz-name></span>
</div>
<div class="dz-filename-size">
<span class="dz-size" data-dz-size></span>
</div>
<div class="dz-sending" style="display: none">${_('Uploading...')}</div>
<div class="dz-response" style="display: none">
${_('Uploaded')} 100%
</div>
</div>
<div class="dz-progress">
<span class="dz-upload" data-dz-uploadprogress></span>
</div>
<div class="dz-error-message">
</div>
</div>
</div>
<div class="edit-file-title">
% if c.replace_binary:
<span class="title-heading">${_('Replace content of')} <b>${c.f_path}</b> @ <code>${h.show_id(c.commit)}</code></span>
% else:
<span class="title-heading">${_('Upload new file')} @ <code>${h.show_id(c.commit)}</code></span>
% endif
% if c.commit.branch:
<span class="tag branchtag">
<i class="icon-branch"></i> ${c.commit.branch}
</span>
% endif
</div>
% if not c.replace_binary:
<% form_url = h.route_path('repo_files_upload_file', repo_name=c.repo_name, commit_id=c.commit.raw_id, f_path=c.f_path) %>
<div class="edit-file-fieldset">
<div class="path-items">
<ul class="tooltip" title="Repository path to store uploaded files. To change it, navigate to different path and click upload from there.">
<li class="breadcrumb-path">
<div>
<a href="${h.route_path('repo_files', repo_name=c.repo_name, commit_id=c.commit.raw_id, f_path='')}"><i class="icon-home"></i></a> /
<a href="${h.route_path('repo_files', repo_name=c.repo_name, commit_id=c.commit.raw_id, f_path=c.f_path)}">${c.f_path}</a>${('/' if c.f_path else '')}
</div>
</li>
<li class="location-path">
</li>
</ul>
</div>
</div>
% else:
<% form_url = h.route_path('repo_files_replace_binary', repo_name=c.repo_name, commit_id=c.commit.raw_id, f_path=c.f_path) %>
% endif
<div class="upload-form table">
<div>
<div class="dropzone-wrapper" id="file-uploader" style="border: none; padding: 40px 0">
<div class="dropzone-pure">
<div class="dz-message">
<i class="icon-upload" style="font-size:36px"></i></br>
% if not c.replace_binary:
${_("Drag'n Drop files here or")} <span class="link">${_('Choose your files')}</span>.<br>
% else:
${_("Drag'n Drop file here or")} <span class="link">${_('Choose your file')}</span>.<br>
% endif
</div>
</div>
</div>
</div>
</div>
<div class="upload-form edit-file-fieldset">
<div class="fieldset">
<div class="message">
<textarea id="commit" name="message" placeholder="${c.default_message}"></textarea>
</div>
</div>
<div class="pull-left">
${h.submit('commit_btn',_('Commit changes'), class_="btn btn-small btn-success")}
</div>
</div>
##${h.end_form()}
<div class="file-upload-transaction-wrapper" style="display: none">
<div class="file-upload-transaction">
<h3>${_('Committing...')}</h3>
<p>${_('Please wait while the files are being uploaded')}</p>
<p class="error" style="display: none">
</p>
<i class="icon-spin animate-spin"></i>
<p></p>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function () {
//see: https://www.dropzonejs.com/#configuration
myDropzone = new Dropzone("div#file-uploader", {
url: "${form_url}",
headers: {"X-CSRF-Token": CSRF_TOKEN},
paramName: function () {
return "files_upload"
}, // The name that will be used to transfer the file
parallelUploads: 20,
maxFiles: 20,
uploadMultiple: true,
//chunking: true, // use chunking transfer, not supported at the moment
//maxFilesize: 2, // in MBs
autoProcessQueue: false, // if false queue will not be processed automatically.
createImageThumbnails: false,
previewTemplate: document.querySelector('#tpl-dropzone').innerHTML,
accept: function (file, done) {
done();
},
init: function () {
this.on("addedfile", function (file) {
});
this.on("sending", function (file, xhr, formData) {
formData.append("message", $('#commit').val());
$(file.previewElement).find('.dz-sending').show();
});
this.on("success", function (file, response) {
$(file.previewElement).find('.dz-sending').hide();
$(file.previewElement).find('.dz-response').show();
if (response.error !== null) {
$('.file-upload-transaction-wrapper .error').html('ERROR: {0}'.format(response.error));
$('.file-upload-transaction-wrapper .error').show();
$('.file-upload-transaction-wrapper i').hide()
}
var redirect_url = response.redirect_url || '/';
window.location = redirect_url
});
this.on("error", function (file, errorMessage, xhr) {
var error = null;
if (xhr !== undefined){
var httpStatus = xhr.status + " " + xhr.statusText;
if (xhr !== undefined && xhr.status >= 500) {
error = httpStatus;
}
}
if (error === null) {
error = errorMessage.error || errorMessage || httpStatus;
}
$(file.previewElement).find('.dz-error-message').html('ERROR: {0}'.format(error));
});
}
});
$('#commit_btn').on('click', function(e) {
e.preventDefault();
var button = $(this);
if (button.hasClass('clicked')) {
button.attr('disabled', true);
} else {
button.addClass('clicked');
}
var files = myDropzone.getQueuedFiles();
if (files.length === 0) {
alert("Missing files");
e.preventDefault();
}
$('.upload-form').hide();
$('.file-upload-transaction-wrapper').show();
myDropzone.processQueue();
});
});
</script>
</%def>