ATLAS-1001 UI Paginate search APIs (kevalbhatt18 via sumasai)
diff --git a/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html b/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
index 2bf3880..533f596 100644
--- a/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/audit/AuditTableLayoutView_tmpl.html
@@ -23,10 +23,10 @@
     <div id="r_auditTableLayoutView"></div>
     <ul class="pager">
         <li>
-            <button data-id="previousAuditData">Previous</button>
+            <button class="btn" data-id="previousAuditData">Previous</button>
         </li>
         <li>
-            <button data-id="nextAuditData">Next</button>
+            <button class="btn" data-id="nextAuditData">Next</button>
         </li>
     </ul>
 </div>
diff --git a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
index e3b3cc9..8e860d8 100644
--- a/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
+++ b/dashboardv2/public/js/templates/search/SearchResultLayoutView_tmpl.html
@@ -19,5 +19,18 @@
         <i class="fa fa-refresh fa-spin-custom"></i>
     </div>
     <div class="ellipsis"><span class="searchResult" style=" font-size: 16px;"></span></div>
-    <div id="r_searchResultTableLayoutView" class="searchTable"></div>
+    <div class="searchTable">
+        <div id="r_searchResultTableLayoutView">
+        </div>
+        <div data-id="paginationDiv" style="display:none">
+            <ul class="pager">
+                <li>
+                    <button class="btn" data-id="previousData" disabled=true>Previous</button>
+                </li>
+                <li>
+                    <button class="btn" data-id="nextData">Next</button>
+                </li>
+            </ul>
+        </div>
+    </div>
 </div>
diff --git a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
index 23cc50d..7e5216d 100644
--- a/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
+++ b/dashboardv2/public/js/views/audit/AuditTableLayoutView.js
@@ -101,12 +101,12 @@
                         that.$('.auditTable').show();
                         options.previous.attr('disabled', true);
                         if (that.entityCollection.models.length <= 1) {
-                            that.pervOld.pop();
                             options.next.attr('disabled', true);
                         }
                         if (that.entityCollection.models.length == 1 && that.next == that.entityCollection.last().get('eventKey')) {
                             options.next.attr('disabled', true);
                             options.previous.removeAttr("disabled");
+                            that.entityCollection.reset();
                         } else {
                             if (that.entityCollection.models.length > 0) {
                                 that.next = that.entityCollection.last().get('eventKey');
diff --git a/dashboardv2/public/js/views/search/SearchResultLayoutView.js b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
index eb63420..b30de40 100644
--- a/dashboardv2/public/js/views/search/SearchResultLayoutView.js
+++ b/dashboardv2/public/js/views/search/SearchResultLayoutView.js
@@ -50,7 +50,10 @@
                 addTag: '[data-id="addTag"]',
                 addTerm: '[data-id="addTerm"]',
                 showMoreLess: '[data-id="showMoreLess"]',
-                showMoreLessTerm: '[data-id="showMoreLessTerm"]'
+                showMoreLessTerm: '[data-id="showMoreLessTerm"]',
+                paginationDiv: '[data-id="paginationDiv"]',
+                previousData: "[data-id='previousData']",
+                nextData: "[data-id='nextData']"
             },
 
             /** ui events hash */
@@ -97,6 +100,8 @@
                         $(e.currentTarget).find('span').text('Show less');
                     }
                 };
+                events["click " + this.ui.nextData] = "onClicknextData";
+                events["click " + this.ui.previousData] = "onClickpreviousData";
                 return events;
             },
             /**
@@ -105,15 +110,22 @@
              */
             initialize: function(options) {
                 _.extend(this, _.pick(options, 'globalVent', 'vent', 'value'));
+                var pagination = "";
                 this.entityModel = new VEntity();
                 this.searchCollection = new VSearchList();
+                this.limit = 25;
                 this.fetchList = 0;
+                if (options.value.searchType == "dsl") {
+                    pagination = false;
+                } else {
+                    pagination = true;
+                }
                 this.commonTableOptions = {
                     collection: this.searchCollection,
                     includeFilter: false,
-                    includePagination: true,
+                    includePagination: pagination,
                     includePageSize: false,
-                    includeFooterRecords: true,
+                    includeFooterRecords: false,
                     includeSizeAbleColumns: false,
                     gridOpts: {
                         emptyText: 'No Record found!',
@@ -162,7 +174,6 @@
                 }, this);
             },
             onRender: function() {
-                //this.renderTableLayoutView();
                 var value = {},
                     that = this;
                 if (this.value) {
@@ -171,7 +182,6 @@
                     value = {
                         'query': '',
                         'searchType': 'fulltext'
-
                     };
                 }
                 this.fetchCollection(value);
@@ -193,14 +203,22 @@
                 if (Globals.searchApiCallRef) {
                     Globals.searchApiCallRef.abort();
                 }
+                $.extend(this.searchCollection.queryParams, { limit: this.limit });
                 if (value) {
                     if (value.searchType) {
                         this.searchCollection.url = "/api/atlas/discovery/search/" + value.searchType;
+                        if (value.searchType === "dsl") {
+                            $.extend(this.searchCollection.queryParams, { limit: this.limit });
+                            this.offset = 0;
+                        }
                     }
                     _.extend(this.searchCollection.queryParams, { 'query': value.query });
                 }
                 Globals.searchApiCallRef = this.searchCollection.fetch({
                     success: function() {
+                        if (that.searchCollection.length === 0) {
+                            that.ui.nextData.attr('disabled', true);
+                        }
                         Globals.searchApiCallRef = undefined;
                         if (that.searchCollection.toJSON().length == 0) {
                             that.checkTableFetch();
@@ -264,6 +282,11 @@
                     this.$('.fontLoader').hide();
                     this.$('.searchTable').show();
                     this.$('.searchResult').show();
+                    if (this.value.searchType == "dsl") {
+                        this.ui.paginationDiv.show();
+                    } else {
+                        this.ui.paginationDiv.hide();
+                    }
                 }
             },
             getEntityTableColumns: function() {
@@ -555,7 +578,35 @@
                         that.fetchCollection();
                     }
                 });
-            }
+            },
+            onClicknextData: function() {
+                var that = this;
+                this.ui.previousData.removeAttr("disabled");
+                $.extend(this.searchCollection.queryParams, {
+                    offset: function() {
+                        that.offset = that.offset + that.limit;
+                        return that.offset;
+                    }
+                });
+                if (this.offset > this.limit) {
+                    this.ui.nextData.attr('disabled', true);
+                }
+                this.fetchCollection();
+            },
+            onClickpreviousData: function() {
+                var that = this;
+                this.ui.nextData.removeAttr("disabled");
+                $.extend(this.searchCollection.queryParams, {
+                    offset: function() {
+                        that.offset = that.offset - that.limit;
+                        return that.offset;
+                    }
+                });
+                if (this.offset <= that.limit) {
+                    this.ui.previousData.attr('disabled', true);
+                }
+                this.fetchCollection();
+            },
         });
     return SearchResultLayoutView;
 });
diff --git a/release-log.txt b/release-log.txt
index 9a26e88..79aee37 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -6,8 +6,9 @@
 
 
 ALL CHANGES:
+ATLAS-1001 UI Paginate search APIs (kevalbhatt18 via sumasai)
 ATLAS-1042 Performance improvement changes for propertykey+typeName based queries (sumasai via shwethags)
-ATLAS-1036 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
+ATLAS-1038 Multiple instances of AtlasPluginClassloader getting initialized (sumasai, mneethiraj)
 ATLAS-1033 fix for issues flagged by Coverity scan (mneethiraj via sumasai)
 ATLAS-1036 Compilation error on java 1.8 - GraphBackedDiscoveryService (shwethags via sumasai)
 ATLAS-1034 Incorrect Falcon hook impl class name in Falcon hook shim (mneethiraj via shwethags)