add attachemnts support for wall
This commit is contained in:
parent
4d378f3c9a
commit
124a5e270e
6 changed files with 56 additions and 6 deletions
|
@ -4,7 +4,6 @@ var NoteList = {
|
|||
target_params: null,
|
||||
target_id: 0,
|
||||
target_type: null,
|
||||
loading_more_disabled: false,
|
||||
|
||||
init: function(tid, tt, path) {
|
||||
NoteList.notes_path = path + ".js";
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
Wall.notes_path = "/api/" + gon.api_version + "/projects/" + project_id + "/notes.json"
|
||||
Wall.getContent()
|
||||
Wall.initRefresh()
|
||||
Wall.initForm()
|
||||
|
||||
#
|
||||
# Gets an initial set of notes.
|
||||
|
@ -28,6 +29,7 @@
|
|||
if $.inArray(note.id, Wall.note_ids) == -1
|
||||
Wall.note_ids.push(note.id)
|
||||
Wall.renderNote(note)
|
||||
Wall.scrollDown()
|
||||
|
||||
complete: ->
|
||||
$('.js-notes-busy').removeClass("loading")
|
||||
|
@ -35,8 +37,15 @@
|
|||
$('.js-notes-busy').addClass("loading")
|
||||
|
||||
renderNote: (note) ->
|
||||
author = '<strong>' + note.author.name + ': </strong>'
|
||||
html = '<li>' + author + note.body + '</li>'
|
||||
author = '<strong class="wall-author">' + note.author.name + '</strong>'
|
||||
body = '<span class="wall-text">' + note.body + '</span>'
|
||||
file = ''
|
||||
|
||||
if note.attachment
|
||||
file = '<span class="wall-file"><a href="/files/note/' + note.id + '/' + note.attachment + '">' + note.attachment + '</a></span>'
|
||||
|
||||
html = '<li>' + author + body + file + '</li>'
|
||||
|
||||
$('ul.notes').append(html)
|
||||
|
||||
initRefresh: ->
|
||||
|
@ -44,3 +53,33 @@
|
|||
|
||||
refresh: ->
|
||||
Wall.getContent()
|
||||
|
||||
scrollDown: ->
|
||||
notes = $('ul.notes')
|
||||
$('body').scrollTop(notes.height())
|
||||
|
||||
initForm: ->
|
||||
form = $('.new_note')
|
||||
form.find("#target_type").val('wall')
|
||||
|
||||
# remove unnecessary fields and buttons
|
||||
form.find("#note_line_code").remove()
|
||||
form.find(".js-close-discussion-note-form").remove()
|
||||
form.find('.js-notify-commit-author').remove()
|
||||
|
||||
form.on 'ajax:success', ->
|
||||
Wall.refresh()
|
||||
form.find(".js-note-text").val("").trigger("input")
|
||||
|
||||
form.on 'ajax:complete', ->
|
||||
form.find(".js-comment-button").removeAttr('disabled')
|
||||
form.find(".js-comment-button").removeClass('disabled')
|
||||
|
||||
form.on "click", ".js-choose-note-attachment-button", ->
|
||||
form.find(".js-note-attachment-input").click()
|
||||
|
||||
form.on "change", ".js-note-attachment-input", ->
|
||||
filename = $(this).val().replace(/^.*[\\\/]/, '')
|
||||
form.find(".js-attachment-filename").text(filename)
|
||||
|
||||
form.show()
|
||||
|
|
|
@ -10,10 +10,20 @@
|
|||
padding: 3px;
|
||||
padding-bottom: 25px;
|
||||
border: 1px solid #DDD;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.notes {
|
||||
margin-bottom: 160px;
|
||||
|
||||
.wall-author {
|
||||
color: #666;
|
||||
margin-right: 10px;
|
||||
border-right: 1px solid #CCC;
|
||||
padding-right: 5px
|
||||
}
|
||||
|
||||
.wall-file {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
= link_to 'Wiki', project_wiki_path(@project, :home)
|
||||
|
||||
- if @project.wall_enabled
|
||||
= nav_link(path: 'projects#wall') do
|
||||
= nav_link(controller: :walls) do
|
||||
= link_to 'Wall', project_wall_path(@project)
|
||||
|
||||
- if @project.snippets_enabled
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
.notes-busy.js-notes-busy
|
||||
|
||||
.js-main-target-form
|
||||
= render "notes/form"
|
||||
- if can? current_user, :write_note, @project
|
||||
= render "notes/form"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
|
|
|
@ -95,6 +95,7 @@ module Gitlab
|
|||
class Note < Grape::Entity
|
||||
expose :id
|
||||
expose :note, as: :body
|
||||
expose :attachment_identifier, as: :attachment
|
||||
expose :author, using: Entities::UserBasic
|
||||
expose :created_at
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue