Allow committing / adding empty files using the web ui (#8420) (#8532)

* Allow committing / adding empty files from the web ui (#8420)

Signed-off-by: LukBukkit <luk.bukkit@gmail.com>

* Add a modal to confirm the commit of an empty file

Signed-off-by: LukBukkit <luk.bukkit@gmail.com>
This commit is contained in:
Lukas 2019-10-16 21:28:41 +02:00 committed by Lauris BH
parent d4cd4ed442
commit de4f10be86
4 changed files with 39 additions and 4 deletions

View file

@ -557,7 +557,7 @@ func (f *NewWikiForm) Validate(ctx *macaron.Context, errs binding.Errors) bindin
// EditRepoFileForm form for changing repository file // EditRepoFileForm form for changing repository file
type EditRepoFileForm struct { type EditRepoFileForm struct {
TreePath string `binding:"Required;MaxSize(500)"` TreePath string `binding:"Required;MaxSize(500)"`
Content string `binding:"Required"` Content string
CommitSummary string `binding:"MaxSize(100)"` CommitSummary string `binding:"MaxSize(100)"`
CommitMessage string CommitMessage string
CommitChoice string `binding:"Required;MaxSize(50)"` CommitChoice string `binding:"Required;MaxSize(50)"`

View file

@ -726,6 +726,8 @@ editor.file_editing_no_longer_exists = The file being edited, '%s', no longer ex
editor.file_deleting_no_longer_exists = The file being deleted, '%s', no longer exists in this repository. editor.file_deleting_no_longer_exists = The file being deleted, '%s', no longer exists in this repository.
editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener noreferrer" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them. editor.file_changed_while_editing = The file contents have changed since you started editing. <a target="_blank" rel="noopener noreferrer" href="%s">Click here</a> to see them or <strong>Commit Changes again</strong> to overwrite them.
editor.file_already_exists = A file named '%s' already exists in this repository. editor.file_already_exists = A file named '%s' already exists in this repository.
editor.commit_empty_file_header = Commit an empty file
editor.commit_empty_file_text = The file you're about commit is empty. Proceed?
editor.no_changes_to_show = There are no changes to show. editor.no_changes_to_show = There are no changes to show.
editor.fail_to_update_file = Failed to update/create file '%s' with error: %v editor.fail_to_update_file = Failed to update/create file '%s' with error: %v
editor.add_subdir = Add a directory… editor.add_subdir = Add a directory…

View file

@ -1571,6 +1571,18 @@ function initEditor() {
codeMirrorEditor.setOption("tabSize", editorconfig.tab_width || 4); codeMirrorEditor.setOption("tabSize", editorconfig.tab_width || 4);
}); });
}).trigger('keyup'); }).trigger('keyup');
$('#commit-button').click(function (event) {
// A modal which asks if an empty file should be committed
if ($editArea.val().length === 0) {
$('#edit-empty-content-modal').modal({
onApprove: function () {
$('.edit.form').submit();
}
}).modal('show');
event.preventDefault();
}
});
} }
function initOrganization() { function initOrganization() {

View file

@ -39,8 +39,7 @@
data-url="{{.Repository.APIURL}}/markdown" data-url="{{.Repository.APIURL}}/markdown"
data-context="{{.RepoLink}}" data-context="{{.RepoLink}}"
data-markdown-file-exts="{{.MarkdownFileExts}}" data-markdown-file-exts="{{.MarkdownFileExts}}"
data-line-wrap-extensions="{{.LineWrapExtensions}}" data-line-wrap-extensions="{{.LineWrapExtensions}}">
required>
{{.FileContent}}</textarea> {{.FileContent}}</textarea>
</div> </div>
<div class="ui bottom attached tab segment markdown" data-tab="preview"> <div class="ui bottom attached tab segment markdown" data-tab="preview">
@ -53,5 +52,27 @@
{{template "repo/editor/commit_form" .}} {{template "repo/editor/commit_form" .}}
</form> </form>
</div> </div>
<div class="ui small basic modal" id="edit-empty-content-modal">
<div class="ui icon header">
<i class="file icon"></i>
{{.i18n.Tr "repo.editor.commit_empty_file_header"}}
</div>
<div class="center content">
<p>{{.i18n.Tr "repo.editor.commit_empty_file_text"}}</p>
</div>
<div class="actions">
<div class="ui red basic cancel inverted button">
<i class="remove icon"></i>
{{.i18n.Tr "repo.editor.cancel"}}
</div>
<div class="ui green basic ok inverted button">
<i class="save icon"></i>
{{.i18n.Tr "repo.editor.commit_changes"}}
</div>
</div>
</div>
</div> </div>
{{template "base/footer" .}} {{template "base/footer" .}}