Merge branch 'web_editor'
This commit is contained in:
commit
bd5dbe14e4
95 changed files with 162513 additions and 7 deletions
|
@ -18,4 +18,5 @@
|
|||
//= require chosen-jquery
|
||||
//= require raphael
|
||||
//= require branch-graph
|
||||
//= require ace-src-noconflict/ace.js
|
||||
//= require_tree .
|
||||
|
|
|
@ -182,3 +182,9 @@ $hover: #D9EDF7;
|
|||
*
|
||||
*/
|
||||
@import "highlight/dark.scss";
|
||||
|
||||
/**
|
||||
* File Editor styles
|
||||
*
|
||||
*/
|
||||
@import "sections/editor.scss";
|
||||
|
|
14
app/assets/stylesheets/sections/editor.scss
Normal file
14
app/assets/stylesheets/sections/editor.scss
Normal file
|
@ -0,0 +1,14 @@
|
|||
.file-editor {
|
||||
#editor{
|
||||
height: 500px;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
.editor-commit-comment {
|
||||
padding-top:20px;
|
||||
textarea {
|
||||
width: 50%;
|
||||
margin-left: 20px;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -59,3 +59,11 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tree-btn-group {
|
||||
.btn {
|
||||
margin-right:-3px;
|
||||
padding:2px 10px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,4 +19,25 @@ class TreeController < ProjectResourceController
|
|||
format.js { no_cache_headers }
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@last_commit = @project.last_commit_for(@ref, @path).sha
|
||||
end
|
||||
|
||||
def update
|
||||
file_editor = Gitlab::FileEditor.new(current_user, @project, @ref)
|
||||
update_status = file_editor.update(
|
||||
@path,
|
||||
params[:content],
|
||||
params[:commit_message],
|
||||
params[:last_commit]
|
||||
)
|
||||
|
||||
if update_status
|
||||
redirect_to project_tree_path(@project, @id), :notice => "File has been successfully changed"
|
||||
else
|
||||
flash[:notice] = "You can't save file because it has been changed"
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -23,7 +23,7 @@ class MergeRequest < ActiveRecord::Base
|
|||
validate :validate_branches
|
||||
|
||||
def self.find_all_by_branch(branch_name)
|
||||
where("source_branch like :branch or target_branch like :branch", branch: branch_name)
|
||||
where("source_branch LIKE :branch OR target_branch LIKE :branch", branch: branch_name)
|
||||
end
|
||||
|
||||
def human_state
|
||||
|
|
|
@ -32,6 +32,10 @@ module Repository
|
|||
Commit.commits(repo, ref, path, limit, offset)
|
||||
end
|
||||
|
||||
def last_commit_for(ref, path = nil)
|
||||
commits(ref, path, 1).first
|
||||
end
|
||||
|
||||
def commits_between(from, to)
|
||||
Commit.commits_between(repo, from, to)
|
||||
end
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
= tree_file.name.force_encoding('utf-8')
|
||||
%small #{tree_file.mode}
|
||||
%span.options
|
||||
= link_to "raw", project_blob_path(@project, @id), class: "btn very_small", target: "_blank"
|
||||
= link_to "history", project_commits_path(@project, @id), class: "btn very_small"
|
||||
= link_to "blame", project_blame_path(@project, @id), class: "btn very_small"
|
||||
.btn-group.tree-btn-group
|
||||
= link_to "raw", project_blob_path(@project, @id), class: "btn very_small", target: "_blank"
|
||||
= link_to "history", project_commits_path(@project, @id), class: "btn very_small"
|
||||
= link_to "blame", project_blame_path(@project, @id), class: "btn very_small"
|
||||
= link_to "edit", edit_project_tree_path(@project, @id), class: "btn very_small"
|
||||
- if tree_file.text?
|
||||
- if gitlab_markdown?(tree_file.name)
|
||||
.file_content.wiki
|
||||
|
|
30
app/views/tree/edit.html.haml
Normal file
30
app/views/tree/edit.html.haml
Normal file
|
@ -0,0 +1,30 @@
|
|||
.file-editor
|
||||
= form_tag(project_tree_path(@project, @id), :method => :put) do
|
||||
.file_holder
|
||||
.file_title
|
||||
%i.icon-file
|
||||
%span.file_name
|
||||
= @tree.path.force_encoding('utf-8')
|
||||
%span.options
|
||||
= link_to "cancel editing", project_tree_path(@project, @id), class: "btn very_small"
|
||||
.file_content.code
|
||||
#editor= @tree.data
|
||||
|
||||
.editor-commit-comment
|
||||
= label_tag 'commit_message' do
|
||||
%p.slead Commit message
|
||||
= text_area_tag 'commit_message', '', :required => true
|
||||
.form-actions
|
||||
= hidden_field_tag 'last_commit', @last_commit
|
||||
= hidden_field_tag 'content', '', :id => :file_content
|
||||
= button_tag "Save", class: 'btn save-btn'
|
||||
|
||||
:javascript
|
||||
var editor = ace.edit("editor");
|
||||
editor.setTheme("ace/theme/twilight");
|
||||
editor.getSession().setMode("ace/mode/javascript");
|
||||
|
||||
$(".save-btn").click(function(){
|
||||
$("#file_content").val(editor.getValue());
|
||||
$(".form_editor form").submit();
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue