OSDN Git Service

Merged r5881 from trunk.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 29 May 2011 07:24:15 +0000 (07:24 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 29 May 2011 07:24:15 +0000 (07:24 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@5946 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/timelog_controller.rb
app/views/timelog/index.api.rsb
test/integration/api_test/time_entries_test.rb

index 2b752c6..16e6e24 100644 (file)
@@ -67,13 +67,13 @@ class TimelogController < ApplicationController
       }
       format.api  {
         @entry_count = TimeEntry.visible.count(:include => [:project, :issue], :conditions => cond.conditions)
-        @entry_pages = Paginator.new self, @entry_count, per_page_option, params['page']
+        @offset, @limit = api_offset_and_limit
         @entries = TimeEntry.visible.find(:all, 
                                   :include => [:project, :activity, :user, {:issue => :tracker}],
                                   :conditions => cond.conditions,
                                   :order => sort_clause,
-                                  :limit  =>  @entry_pages.items_per_page,
-                                  :offset =>  @entry_pages.current.offset)
+                                  :limit  => @limit,
+                                  :offset => @offset)
       }
       format.atom {
         entries = TimeEntry.visible.find(:all,
index 0367e06..213dbd3 100644 (file)
@@ -1,4 +1,4 @@
-api.array :time_entries do
+api.array :time_entries, api_meta(:total_count => @entry_count, :offset => @offset, :limit => @limit) do
   @entries.each do |time_entry|
     api.time_entry do
       api.id time_entry.id
index 60a9dba..ce28c5d 100644 (file)
@@ -32,6 +32,16 @@ class ApiTest::TimeEntriesTest < ActionController::IntegrationTest
       assert_tag :tag => 'time_entries',
         :child => {:tag => 'time_entry', :child => {:tag => 'id', :content => '2'}}
     end
+    
+    context "with limit" do
+      should "return limited results" do
+        get '/time_entries.xml?limit=2', {}, :authorization => credentials('jsmith')
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+        assert_tag :tag => 'time_entries',
+          :children => {:count => 2}
+      end
+    end
   end
   
   context "GET /time_entries/2.xml" do