wall login in progress
This commit is contained in:
parent
687290a00d
commit
ca1e3d0579
10 changed files with 110 additions and 74 deletions
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 4.1 KiB |
|
@ -20,6 +20,6 @@ $(function(){
|
|||
$('select#tag').selectmenu({style:'popup', width:200});
|
||||
});
|
||||
|
||||
function updatePage(){
|
||||
$.ajax({type: "GET", url: location.href, dataType: "script"});
|
||||
function updatePage(data){
|
||||
$.ajax({type: "GET", url: location.href, data: data, dataType: "script"});
|
||||
}
|
||||
|
|
65
app/assets/javascripts/note.js
Normal file
65
app/assets/javascripts/note.js
Normal file
|
@ -0,0 +1,65 @@
|
|||
var NoteList = {
|
||||
|
||||
first_id: 0,
|
||||
last_id: 0,
|
||||
resource_name: null,
|
||||
|
||||
init:
|
||||
function(resource_name, first_id, last_id) {
|
||||
this.resource_name = resource_name;
|
||||
this.first_id = first_id;
|
||||
this.last_id = last_id;
|
||||
this.initRefresh();
|
||||
this.initLoadMore();
|
||||
},
|
||||
|
||||
getOld:
|
||||
function() {
|
||||
$('.loading').show();
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: location.href,
|
||||
data: "first_id=" + this.first_id,
|
||||
complete: function(){ $('.loading').hide()},
|
||||
dataType: "script"});
|
||||
},
|
||||
|
||||
append:
|
||||
function(id, html) {
|
||||
this.first_id = id;
|
||||
$("#notes-list").append(html);
|
||||
this.initLoadMore();
|
||||
},
|
||||
|
||||
prepend:
|
||||
function(id, html) {
|
||||
this.last_id = id;
|
||||
$("#notes-list").prepend(html);
|
||||
},
|
||||
|
||||
getNew:
|
||||
function() {
|
||||
// refersh notes list
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: location.href,
|
||||
data: "last_id=" + this.last_id,
|
||||
dataType: "script"});
|
||||
},
|
||||
|
||||
initRefresh:
|
||||
function() {
|
||||
// init timer
|
||||
var int = setInterval("NoteList.getNew()", 20000);
|
||||
},
|
||||
|
||||
initLoadMore:
|
||||
function() {
|
||||
$(window).bind('scroll', function(){
|
||||
if($(window).scrollTop() == $(document).height() - $(window).height()){
|
||||
$(window).unbind('scroll');
|
||||
NoteList.getOld();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -421,31 +421,6 @@ input.ssh_project_url {
|
|||
list-style:none;
|
||||
margin:0px;
|
||||
padding:0px;
|
||||
|
||||
li {
|
||||
display:list-item;
|
||||
padding:8px;
|
||||
margin:0px;
|
||||
background: #F7FBFC;
|
||||
border-top: 1px solid #E2EAEE;
|
||||
|
||||
&:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
&:nth-child(2n+1) {
|
||||
background: white;
|
||||
}
|
||||
p {
|
||||
margin-bottom: 4px;
|
||||
font-size: 13px;
|
||||
color:#111;
|
||||
}
|
||||
}
|
||||
cite {
|
||||
&.ago {
|
||||
color:#666;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.notes_count {
|
||||
|
@ -460,14 +435,6 @@ input.ssh_project_url {
|
|||
right: 6px;
|
||||
top: 6px;
|
||||
}
|
||||
.note_author {
|
||||
float:left;
|
||||
width:60px;
|
||||
}
|
||||
.note_content {
|
||||
float:left;
|
||||
width:650px;
|
||||
}
|
||||
|
||||
.issue_notes {
|
||||
.note_content {
|
||||
|
@ -556,8 +523,7 @@ input.ssh_project_url {
|
|||
|
||||
}
|
||||
.commit,
|
||||
.message,
|
||||
#notes-list{
|
||||
.message{
|
||||
.author {
|
||||
background: #eaeaea;
|
||||
color: #333;
|
||||
|
@ -719,3 +685,12 @@ table.highlighttable pre{
|
|||
.project-refs-select {
|
||||
width:200px;
|
||||
}
|
||||
|
||||
|
||||
body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.project-page #notes-list .note {padding: 10px; border-bottom: 1px solid #eee; overflow: hidden; display: block;}
|
||||
body.project-page #notes-list .note img{float: left; margin-right: 10px;}
|
||||
body.project-page #notes-list .note span.note-title{display: block;}
|
||||
body.project-page #notes-list .note span.note-title{margin-bottom: 10px}
|
||||
body.project-page #notes-list .note span.note-author{color: #999; font-weight: normal; font-style: italic;}
|
||||
body.project-page #notes-list .note span.note-author strong{font-weight: bold; font-style: normal;}
|
||||
|
|
|
@ -86,13 +86,15 @@ class ProjectsController < ApplicationController
|
|||
def wall
|
||||
@note = Note.new
|
||||
@notes = @project.common_notes.order("created_at DESC")
|
||||
@notes = @notes.fresh.limit(20)
|
||||
|
||||
@notes = case params[:view]
|
||||
when "week" then @notes.since((Date.today - 7.days).at_beginning_of_day)
|
||||
when "all" then @notes.all
|
||||
when "day" then @notes.since(Date.today.at_beginning_of_day)
|
||||
else @notes.fresh.limit(10)
|
||||
end
|
||||
respond_to do |format|
|
||||
format.html
|
||||
format.js do
|
||||
@notes = @notes.where("id > ?", params[:last_id]) if params[:last_id]
|
||||
@notes = @notes.where("id < ?", params[:first_id]) if params[:first_id]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
|
|
@ -20,8 +20,8 @@
|
|||
$("#submit_note").removeAttr("disabled");
|
||||
})
|
||||
|
||||
- if ["issues", "projects"].include?(controller.controller_name)
|
||||
-#- if ["issues", "projects"].include?(controller.controller_name)
|
||||
:javascript
|
||||
$(function(){
|
||||
var int =self.setInterval("updatePage()", 20000);
|
||||
var int =self.setInterval("updatePage('ref=#{params[:ref]}')", 20000);
|
||||
});
|
||||
|
|
|
@ -1,17 +1,15 @@
|
|||
%li{:id => dom_id(note)}
|
||||
%div.note_author
|
||||
= image_tag gravatar_icon(note.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%div.note_content.left
|
||||
%li{:id => dom_id(note), :class => "note"}
|
||||
= image_tag gravatar_icon(note.author.email), :class => "left", :width => 40, :style => "padding-right:5px;"
|
||||
%div.note-author
|
||||
%strong= note.author_name
|
||||
= time_ago_in_words(note.updated_at)
|
||||
- if(note.author_id == current_user.id) || can?(current_user, :admin_note, @project)
|
||||
= link_to 'Remove', [@project, note], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-note right negative"
|
||||
|
||||
%div.note-title
|
||||
= markdown(note.note)
|
||||
- if note.attachment.url
|
||||
Attachment:
|
||||
= link_to note.attachment_identifier, note.attachment.url, :target => "_blank"
|
||||
%br
|
||||
%span.author= note.author.name
|
||||
%cite.ago
|
||||
= time_ago_in_words(note.updated_at)
|
||||
ago
|
||||
%br
|
||||
- if(note.author_id == current_user.id) || can?(current_user, :admin_note, @project)
|
||||
= link_to 'Remove', [@project, note], :confirm => 'Are you sure?', :method => :delete, :remote => true, :class => "lbutton delete-note right negative"
|
||||
.clear
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
- if @note.valid?
|
||||
:plain
|
||||
$("#new_note .errors").remove();
|
||||
updatePage();
|
||||
$('#note_note').val("");
|
||||
- else
|
||||
:plain
|
||||
|
|
|
@ -1,29 +1,19 @@
|
|||
%div.wall_page
|
||||
- if can? current_user, :write_note, @project
|
||||
= render "notes/form"
|
||||
.right
|
||||
= form_tag wall_project_path(@project), :method => :get do
|
||||
.span-2
|
||||
= radio_button_tag :view, "recent", (params[:view] || "recent") == "recent", :onclick => "this.form.submit()", :id => "recent_view"
|
||||
= label_tag "recent_view","Recent"
|
||||
.span-2
|
||||
= radio_button_tag :view, "day", params[:view] == "day", :onclick => "this.form.submit()", :id => "day_view"
|
||||
= label_tag "day_view","Today"
|
||||
.span-2
|
||||
= radio_button_tag :view, "week", params[:view] == "week", :onclick => "this.form.submit()", :id => "week_view"
|
||||
= label_tag "week_view","Week"
|
||||
.span-2
|
||||
= radio_button_tag :view, "all", params[:view] == "all", :onclick => "this.form.submit()", :id => "all_view"
|
||||
= label_tag "all_view","All"
|
||||
.clear
|
||||
%br
|
||||
%hr
|
||||
= render "notes/notes"
|
||||
|
||||
.loading{ :style => "display:none;"}
|
||||
%center= image_tag "ajax-loader.gif"
|
||||
|
||||
:javascript
|
||||
$(function(){
|
||||
$("#note_note").live("click", function(){
|
||||
$(this).css("height", "100px");
|
||||
$('.attach_holder').show();
|
||||
});
|
||||
|
||||
NoteList.init("wall", #{@notes.last.id}, #{@notes.first.id});
|
||||
});
|
||||
|
|
|
@ -1,2 +1,9 @@
|
|||
:plain
|
||||
$("#notes-list").html("#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
||||
- unless @notes.blank?
|
||||
|
||||
- if params[:last_id]
|
||||
:plain
|
||||
NoteList.prepend(#{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
||||
|
||||
- if params[:first_id]
|
||||
:plain
|
||||
NoteList.append(#{@notes.last.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}");
|
||||
|
|
Loading…
Reference in a new issue