files_add.mako
236 lines
| 8.7 KiB
| application/x-mako
|
MakoHtmlLexer
r1282 | <%inherit file="/base/base.mako"/> | |||
<%def name="title()"> | ||||
${_('%s Files Add') % c.repo_name} | ||||
%if c.rhodecode_name: | ||||
· ${h.branding(c.rhodecode_name)} | ||||
%endif | ||||
</%def> | ||||
<%def name="menu_bar_nav()"> | ||||
${self.menu_items(active='repositories')} | ||||
</%def> | ||||
<%def name="breadcrumbs_links()"> | ||||
${_('Add new file')} @ ${h.show_id(c.commit)} | ||||
</%def> | ||||
<%def name="menu_bar_subnav()"> | ||||
${self.repo_menu(active='files')} | ||||
</%def> | ||||
<%def name="main()"> | ||||
<div class="box"> | ||||
<div class="title"> | ||||
${self.repo_page_title(c.rhodecode_db_repo)} | ||||
</div> | ||||
<div class="edit-file-title"> | ||||
${self.breadcrumbs()} | ||||
</div> | ||||
${h.secure_form(h.url.current(),method='post',id='eform',enctype="multipart/form-data", class_="form-horizontal")} | ||||
<div class="edit-file-fieldset"> | ||||
<div class="fieldset"> | ||||
<div id="destination-label" class="left-label"> | ||||
${_('Path')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div id="specify-custom-path-container"> | ||||
<span id="path-breadcrumbs">${h.files_breadcrumbs(c.repo_name,c.commit.raw_id,c.f_path)}</span> | ||||
<a class="custom-path-link" id="specify-custom-path" href="#">${_('Specify Custom Path')}</a> | ||||
</div> | ||||
<div id="remove-custom-path-container" style="display: none;"> | ||||
${c.repo_name}/ | ||||
<input type="input-small" value="${c.f_path}" size="46" name="location" id="location"> | ||||
<a class="custom-path-link" id="remove-custom-path" href="#">${_('Remove Custom Path')}</a> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div id="filename_container" class="fieldset"> | ||||
<div class="filename-label left-label"> | ||||
${_('Filename')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<input class="input-small" type="text" value="" size="46" name="filename" id="filename"> | ||||
<p>${_('or')} <a id="upload_file_enable" href="#">${_('Upload File')}</a></p> | ||||
</div> | ||||
</div> | ||||
<div id="upload_file_container" class="fieldset" style="display: none;"> | ||||
<div class="filename-label left-label"> | ||||
r1683 | ${_('Filename')}: | |||
</div> | ||||
<div class="right-content"> | ||||
r1688 | <input class="input-small" type="text" value="" size="46" name="filename_upload" id="filename_upload" placeholder="${_('No file selected')}"> | |||
r1683 | </div> | |||
<div class="filename-label left-label file-upload-label"> | ||||
r1282 | ${_('Upload file')}: | |||
</div> | ||||
<div class="right-content file-upload-input"> | ||||
<label for="upload_file" class="btn btn-default">Browse</label> | ||||
r1683 | ||||
r1282 | <input type="file" name="upload_file" id="upload_file"> | |||
<p>${_('or')} <a id="file_enable" href="#">${_('Create New File')}</a></p> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div class="table"> | ||||
<div id="files_data"> | ||||
<div id="codeblock" class="codeblock"> | ||||
<div class="code-header form" id="set_mode_header"> | ||||
<div class="fields"> | ||||
${h.dropdownmenu('set_mode','plain',[('plain',_('plain'))],enable_filter=True)} | ||||
<label for="line_wrap">${_('line wraps')}</label> | ||||
${h.dropdownmenu('line_wrap', 'off', [('on', _('on')), ('off', _('off')),])} | ||||
<div id="render_preview" class="btn btn-small preview hidden" >${_('Preview')}</div> | ||||
</div> | ||||
</div> | ||||
<div id="editor_container"> | ||||
<pre id="editor_pre"></pre> | ||||
<textarea id="editor" name="content" ></textarea> | ||||
<div id="editor_preview"></div> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div class="edit-file-fieldset"> | ||||
<div class="fieldset"> | ||||
<div id="commit-message-label" class="commit-message-label left-label"> | ||||
${_('Commit Message')}: | ||||
</div> | ||||
<div class="right-content"> | ||||
<div class="message"> | ||||
<textarea id="commit" name="message" placeholder="${c.default_message}"></textarea> | ||||
</div> | ||||
</div> | ||||
</div> | ||||
<div class="pull-right"> | ||||
${h.reset('reset',_('Cancel'),class_="btn btn-small")} | ||||
${h.submit('commit_btn',_('Commit changes'),class_="btn btn-small btn-success")} | ||||
</div> | ||||
</div> | ||||
${h.end_form()} | ||||
</div> | ||||
<script type="text/javascript"> | ||||
$('#commit_btn').on('click', function() { | ||||
var button = $(this); | ||||
if (button.hasClass('clicked')) { | ||||
button.attr('disabled', true); | ||||
} else { | ||||
button.addClass('clicked'); | ||||
} | ||||
}); | ||||
$('#specify-custom-path').on('click', function(e){ | ||||
e.preventDefault(); | ||||
$('#specify-custom-path-container').hide(); | ||||
$('#remove-custom-path-container').show(); | ||||
$('#destination-label').css('margin-top', '13px'); | ||||
}); | ||||
$('#remove-custom-path').on('click', function(e){ | ||||
e.preventDefault(); | ||||
$('#specify-custom-path-container').show(); | ||||
$('#remove-custom-path-container').hide(); | ||||
$('#location').val('${c.f_path}'); | ||||
$('#destination-label').css('margin-top', '0'); | ||||
}); | ||||
var hide_upload = function(){ | ||||
$('#files_data').show(); | ||||
$('#upload_file_container').hide(); | ||||
$('#filename_container').show(); | ||||
}; | ||||
$('#file_enable').on('click', function(e){ | ||||
e.preventDefault(); | ||||
hide_upload(); | ||||
}); | ||||
$('#upload_file_enable').on('click', function(e){ | ||||
e.preventDefault(); | ||||
$('#files_data').hide(); | ||||
$('#upload_file_container').show(); | ||||
$('#filename_container').hide(); | ||||
if (detectIE() && detectIE() <= 9) { | ||||
$('#upload_file_container .file-upload-input label').hide(); | ||||
$('#upload_file_container .file-upload-input span').hide(); | ||||
$('#upload_file_container .file-upload-input input').show(); | ||||
} | ||||
}); | ||||
$('#upload_file').on('change', function() { | ||||
r1683 | if (this.files && this.files[0]) { | |||
$('#filename_upload').val(this.files[0].name); | ||||
r1282 | } | |||
}); | ||||
hide_upload(); | ||||
var renderer = ""; | ||||
var reset_url = "${h.url('files_home',repo_name=c.repo_name,revision=c.commit.raw_id,f_path=c.f_path)}"; | ||||
var myCodeMirror = initCodeMirror('editor', reset_url, false); | ||||
var modes_select = $('#set_mode'); | ||||
fillCodeMirrorOptions(modes_select); | ||||
var filename_selector = '#filename'; | ||||
var callback = function(filename, mimetype, mode){ | ||||
CodeMirrorPreviewEnable(mode); | ||||
}; | ||||
// on change of select field set mode | ||||
setCodeMirrorModeFromSelect( | ||||
modes_select, filename_selector, myCodeMirror, callback); | ||||
// on entering the new filename set mode, from given extension | ||||
setCodeMirrorModeFromInput( | ||||
modes_select, filename_selector, myCodeMirror, callback); | ||||
// if the file is renderable set line wraps automatically | ||||
if (renderer !== ""){ | ||||
var line_wrap = 'on'; | ||||
$($('#line_wrap option[value="'+line_wrap+'"]')[0]).attr("selected", "selected"); | ||||
setCodeMirrorLineWrap(myCodeMirror, true); | ||||
} | ||||
// on select line wraps change the editor | ||||
$('#line_wrap').on('change', function(e){ | ||||
var selected = e.currentTarget; | ||||
var line_wraps = {'on': true, 'off': false}[selected.value]; | ||||
setCodeMirrorLineWrap(myCodeMirror, line_wraps) | ||||
}); | ||||
// render preview/edit button | ||||
$('#render_preview').on('click', function(e){ | ||||
if($(this).hasClass('preview')){ | ||||
$(this).removeClass('preview'); | ||||
$(this).html("${_('Edit')}"); | ||||
$('#editor_preview').show(); | ||||
$(myCodeMirror.getWrapperElement()).hide(); | ||||
var possible_renderer = { | ||||
'rst':'rst', | ||||
'markdown':'markdown', | ||||
'gfm': 'markdown'}[myCodeMirror.getMode().name]; | ||||
var _text = myCodeMirror.getValue(); | ||||
var _renderer = possible_renderer || DEFAULT_RENDERER; | ||||
var post_data = {'text': _text, 'renderer': _renderer, 'csrf_token': CSRF_TOKEN}; | ||||
$('#editor_preview').html(_gettext('Loading ...')); | ||||
var url = pyroutes.url('changeset_comment_preview', {'repo_name': '${c.repo_name}'}); | ||||
ajaxPOST(url, post_data, function(o){ | ||||
$('#editor_preview').html(o); | ||||
}) | ||||
} | ||||
else{ | ||||
$(this).addClass('preview'); | ||||
$(this).html("${_('Preview')}"); | ||||
$('#editor_preview').hide(); | ||||
$(myCodeMirror.getWrapperElement()).show(); | ||||
} | ||||
}); | ||||
$('#filename').focus(); | ||||
</script> | ||||
</%def> | ||||