From 77b0d6058ead2f42200c8a69dcd0e31561deae9e Mon Sep 17 00:00:00 2001
From: Regis <boudinot.regis@yahoo.com>
Date: Wed, 2 Nov 2016 22:41:51 -0600
Subject: [PATCH] count passing through - last page known

---
 app/assets/javascripts/vue_pipelines_index/index.js.es6  | 9 +++++++--
 .../javascripts/vue_pipelines_index/pipelines.vue.js.es6 | 2 ++
 .../vue_pipelines_index/vue_gl_pagination.vue.js.es6     | 9 ++++++++-
 app/views/projects/pipelines/index.html.haml             | 2 +-
 4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/app/assets/javascripts/vue_pipelines_index/index.js.es6 b/app/assets/javascripts/vue_pipelines_index/index.js.es6
index 6ecbc1ba8ff..4e335ca1d13 100644
--- a/app/assets/javascripts/vue_pipelines_index/index.js.es6
+++ b/app/assets/javascripts/vue_pipelines_index/index.js.es6
@@ -18,12 +18,12 @@
   const project = document.querySelector('.pipelines');
 
   Vue.use(VueResource);
-  // Vue.config.silent = true;
 
   return new Vue({
     el: '.vue-pipelines-index',
     data: {
       scope: project.dataset.projectId,
+      count: project.dataset.count,
       store: new gl.PipelineStore(),
     },
     components: {
@@ -31,7 +31,12 @@
     },
     template: `
       <div>
-        <vue-pipelines :scope='scope' :store='store'></vue-pipelines>
+        <vue-pipelines
+          :scope='scope'
+          :store='store'
+          :count='count'
+        >
+        </vue-pipelines>
       </div>
     `,
   });
diff --git a/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6 b/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6
index 4706ea61c8e..2f3bdc7a2a9 100644
--- a/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6
+++ b/app/assets/javascripts/vue_pipelines_index/pipelines.vue.js.es6
@@ -23,6 +23,7 @@
     props: [
       'scope',
       'store',
+      'count',
     ],
     created() {
       const url = window.location.toString();
@@ -78,6 +79,7 @@
         <vue-gl-pagination
           :changepage='changepage'
           :pages='pipelines.length'
+          :count='count'
         >
         </vue-gl-pagination>
       </div>
diff --git a/app/assets/javascripts/vue_pipelines_index/vue_gl_pagination.vue.js.es6 b/app/assets/javascripts/vue_pipelines_index/vue_gl_pagination.vue.js.es6
index 29d4a4df511..977d0e2b240 100644
--- a/app/assets/javascripts/vue_pipelines_index/vue_gl_pagination.vue.js.es6
+++ b/app/assets/javascripts/vue_pipelines_index/vue_gl_pagination.vue.js.es6
@@ -6,7 +6,14 @@
     props: [
       'changepage',
       'pages',
+      'count',
     ],
+    computed: {
+      lastpage() {
+        const lastPage = Math.ceil(+this.count / 5);
+        return `pipelines?page=${lastPage}`;
+      },
+    },
     template: `
       <div class="gl-pagination">
         <ul class="pagination clearfix">
@@ -45,7 +52,7 @@
             </a>
           </li>
           <li class="last">
-            <a href="pipelines?page=936">Last »</a>
+            <a :href='lastpage'>Last »</a>
           </li>
         </ul>
       </div>
diff --git a/app/views/projects/pipelines/index.html.haml b/app/views/projects/pipelines/index.html.haml
index bd649a4fa2e..7bf727be930 100644
--- a/app/views/projects/pipelines/index.html.haml
+++ b/app/views/projects/pipelines/index.html.haml
@@ -36,7 +36,7 @@
         = link_to ci_lint_path, class: 'btn btn-default' do
           %span CI Lint
 
-  %div.content-list.pipelines{"data-project-id": "#{@project.id}"}
+  %div.content-list.pipelines{"data-project-id": "#{@project.id}", "data-count": "#{@pipelines_count}"}
     - stages = @pipelines.stages
     - if @pipelines.blank?
       %div
-- 
GitLab