OSDN Git Service

fixed notes loading/paging
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Sat, 5 Nov 2011 11:59:43 +0000 (13:59 +0200)
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>
Sat, 5 Nov 2011 11:59:43 +0000 (13:59 +0200)
app/assets/javascripts/note.js
app/controllers/application_controller.rb
app/controllers/commits_controller.rb
app/controllers/issues_controller.rb
app/controllers/projects_controller.rb
app/views/notes/_load.js.haml

index 71279fc..7acc81e 100644 (file)
@@ -31,6 +31,15 @@ append:
     this.initLoadMore();
   },
 
+replace: 
+  function(fid, lid, html) {
+    this.first_id = fid;
+    this.last_id = lid;
+    $("#notes-list").html(html);
+    this.initLoadMore();
+  },
+
+
 prepend:
   function(id, html) {
     this.last_id = id;
@@ -47,10 +56,23 @@ getNew:
       dataType: "script"});
   },
 
+refresh:
+  function() { 
+    // refersh notes list
+    $.ajax({
+      type: "GET",
+      url: location.href,
+      data: "first_id=" + this.first_id + "&last_id=" + this.last_id,
+      dataType: "script"});
+  },
+
+
+
 initRefresh:
   function() {
     // init timer
-    var int = setInterval("NoteList.getNew()", 20000);
+    var intNew = setInterval("NoteList.getNew()", 15000);
+    var intRefresh = setInterval("NoteList.refresh()", 90000);
   },
 
 initLoadMore:
index 070def9..5c25d7d 100644 (file)
@@ -83,4 +83,16 @@ class ApplicationController < ActionController::Base
       cookies[:view_style] = "" 
     end
   end
+
+  def respond_with_notes
+    if params[:last_id] && params[:first_id]
+      @notes = @notes.where("id >= ?", params[:first_id])
+    elsif params[:last_id]
+      @notes = @notes.where("id > ?", params[:last_id])
+    elsif params[:first_id]
+      @notes = @notes.where("id < ?", params[:first_id]) 
+    else 
+      nil
+    end
+  end
 end
index f6af56f..fa0d0b5 100644 (file)
@@ -33,10 +33,7 @@ class CommitsController < ApplicationController
 
     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
+      format.js { respond_with_notes }
     end
   end
 end
index b6fd85b..7ff1ccb 100644 (file)
@@ -40,10 +40,7 @@ class IssuesController < ApplicationController
 
     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
+      format.js { respond_with_notes }
     end
   end
 
index 067245c..ef7eb92 100644 (file)
@@ -90,10 +90,7 @@ class ProjectsController < ApplicationController
 
     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
+      format.js { respond_with_notes }
     end
   end
 
index f560f0b..c7ec9ed 100644 (file)
@@ -1,10 +1,17 @@
 - unless @notes.blank?
 
-  - if params[:last_id]
+  - if params[:last_id] && params[:first_id]
+    :plain
+      NoteList.replace(#{@notes.last.id}, #{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}");
+
+
+  - elsif params[:last_id]
     :plain
       NoteList.prepend(#{@notes.first.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}");
 
-  - if params[:first_id]
+  - elsif params[:first_id]
     :plain
       NoteList.append(#{@notes.last.id}, "#{escape_javascript(render(:partial => 'notes/notes_list'))}");
 
+  - else
+    :plain