Skip to content

Commit 13734e5

Browse files
authored
Merge pull request #364 from steve-dwyer-itdev/option-to-disable-paging
Add ability to disable paging
2 parents 62c799f + 66ecd25 commit 13734e5

File tree

3 files changed

+68
-7
lines changed

3 files changed

+68
-7
lines changed

src/main/java/io/jenkins/plugins/datatables/TableConfiguration.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public class TableConfiguration {
2020
private boolean useButtons = false;
2121
private boolean useSelect = false;
2222
private boolean useStateSave = false;
23+
private boolean usePaging = true;
2324

2425
/**
2526
* Make the table responsive, i.e. the columns wrap over to a child column.
@@ -150,6 +151,28 @@ public boolean isUseStateSave() {
150151
return useStateSave;
151152
}
152153

154+
/**
155+
* Disable paging.
156+
*
157+
* @return this {@link TableConfiguration} for chaining methods
158+
*
159+
* @see <a href="https://datatables.net/reference/option/paging">https://datatables.net/reference/option/paging</a>
160+
*/
161+
public TableConfiguration noPaging() {
162+
configuration.put("paging", false);
163+
usePaging = false;
164+
return this;
165+
}
166+
167+
/**
168+
* Returns whether paging is configured to be used.
169+
*
170+
* @return true, if paging should be used, false otherwise.
171+
*/
172+
public boolean isUsePaging() {
173+
return usePaging;
174+
}
175+
153176
/**
154177
* Get the configuration as JSON.
155178
*

src/main/webapp/js/table.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jQuery3(document).ready(function () {
1717
details: false
1818
},
1919
deferRender: true,
20+
paging: true,
2021
pagingType: 'numbers', // page number button only
2122
order: [[1, 'asc']], // default order, if not persisted yet
2223
columnDefs: [

src/test/java/io/jenkins/plugins/datatables/TableConfigurationTest.java

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@ void shouldCreateEmptyConfiguration() {
2222
assertThat(configuration).isNotUseColReorder();
2323
assertThat(configuration).isNotUseResponsive();
2424
assertThat(configuration).isNotUseStateSave();
25+
assertThat(configuration).isUsePaging();
2526

2627
assertThatJson(configuration).satisfiesAnyOf(
2728
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
2829
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
2930
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
3031
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
3132
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
32-
t -> assertThatJson(t).node("useSelect").isEqualTo(false)
33+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
34+
t -> assertThatJson(t).node("paging").isEqualTo(true)
3335
);
3436
}
3537

@@ -43,14 +45,16 @@ void shouldCreateResponsiveConfiguration() {
4345
assertThat(configuration).isNotUseColReorder();
4446
assertThat(configuration).isUseResponsive();
4547
assertThat(configuration).isNotUseStateSave();
48+
assertThat(configuration).isUsePaging();
4649

4750
assertThatJson(configuration).satisfiesAnyOf(
4851
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
4952
t -> assertThatJson(t).node("useResponsive").isEqualTo(true),
5053
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
5154
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
5255
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
53-
t -> assertThatJson(t).node("useSelect").isEqualTo(false)
56+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
57+
t -> assertThatJson(t).node("paging").isEqualTo(true)
5458
);
5559
}
5660

@@ -64,14 +68,16 @@ void shouldCreateSelectConfiguration() {
6468
assertThat(configuration).isNotUseResponsive();
6569
assertThat(configuration).isUseSelect();
6670
assertThat(configuration).isNotUseStateSave();
71+
assertThat(configuration).isUsePaging();
6772

6873
assertThatJson(configuration).satisfiesAnyOf(
6974
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
7075
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
7176
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
7277
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
7378
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
74-
t -> assertThatJson(t).node("useSelect").asString().isEqualTo("single")
79+
t -> assertThatJson(t).node("useSelect").asString().isEqualTo("single"),
80+
t -> assertThatJson(t).node("paging").isEqualTo(true)
7581
);
7682
}
7783

@@ -85,14 +91,16 @@ void shouldCreateColReorderConfiguration() {
8591
assertThat(configuration).isUseColReorder();
8692
assertThat(configuration).isNotUseResponsive();
8793
assertThat(configuration).isNotUseStateSave();
94+
assertThat(configuration).isUsePaging();
8895

8996
assertThatJson(configuration).satisfiesAnyOf(
9097
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
9198
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
9299
t -> assertThatJson(t).node("useColReorder").isEqualTo(true),
93100
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
94101
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
95-
t -> assertThatJson(t).node("useSelect").isEqualTo(false)
102+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
103+
t -> assertThatJson(t).node("paging").isEqualTo(true)
96104
);
97105
}
98106

@@ -106,14 +114,16 @@ void shouldCreateButtonsDefaultConfiguration() {
106114
assertThat(configuration).isNotUseColReorder();
107115
assertThat(configuration).isNotUseResponsive();
108116
assertThat(configuration).isNotUseStateSave();
117+
assertThat(configuration).isUsePaging();
109118

110119
assertThatJson(configuration).satisfiesAnyOf(
111120
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
112121
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
113122
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
114123
t -> assertThatJson(t).node("useButtons").isEqualTo(true),
115124
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
116-
t -> assertThatJson(t).node("useSelect").isEqualTo(false)
125+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
126+
t -> assertThatJson(t).node("paging").isEqualTo(true)
117127
);
118128
}
119129

@@ -127,14 +137,16 @@ void shouldCreateSpecificButtonsConfiguration() {
127137
assertThat(configuration).isNotUseColReorder();
128138
assertThat(configuration).isNotUseResponsive();
129139
assertThat(configuration).isNotUseStateSave();
140+
assertThat(configuration).isUsePaging();
130141

131142
assertThatJson(configuration).satisfiesAnyOf(
132143
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
133144
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
134145
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
135146
t -> assertThatJson(t).node("useButtons").isEqualTo("colvis: \"print\""),
136147
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
137-
t -> assertThatJson(t).node("useSelect").isEqualTo(false)
148+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
149+
t -> assertThatJson(t).node("paging").isEqualTo(true)
138150
);
139151
}
140152

@@ -148,14 +160,39 @@ void shouldCreateSaveStateConfiguration() {
148160
assertThat(configuration).isNotUseColReorder();
149161
assertThat(configuration).isNotUseResponsive();
150162
assertThat(configuration).isUseStateSave();
163+
assertThat(configuration).isUsePaging();
151164

152165
assertThatJson(configuration).satisfiesAnyOf(
153166
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
154167
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
155168
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
156169
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
157170
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
158-
t -> assertThatJson(t).node("stateSave").isEqualTo(true)
171+
t -> assertThatJson(t).node("stateSave").isEqualTo(true),
172+
t -> assertThatJson(t).node("paging").isEqualTo(true)
173+
);
174+
}
175+
176+
@Test
177+
void shouldCreateNoPagingConfiguration() {
178+
TableConfiguration configuration = new TableConfiguration()
179+
.noPaging();
180+
181+
assertThat(configuration).hasConfiguration("{\"paging\":false}");
182+
assertThat(configuration).isNotUseButtons();
183+
assertThat(configuration).isNotUseColReorder();
184+
assertThat(configuration).isNotUseResponsive();
185+
assertThat(configuration).isNotUseStateSave();
186+
assertThat(configuration).isNotUsePaging();
187+
188+
assertThatJson(configuration).satisfiesAnyOf(
189+
t -> assertThatJson(t).node("configuration").asString().isEqualTo("{}"),
190+
t -> assertThatJson(t).node("useResponsive").isEqualTo(false),
191+
t -> assertThatJson(t).node("useColReorder").isEqualTo(false),
192+
t -> assertThatJson(t).node("useButtons").isEqualTo(false),
193+
t -> assertThatJson(t).node("useSelect").isEqualTo(false),
194+
t -> assertThatJson(t).node("stateSave").isEqualTo(false),
195+
t -> assertThatJson(t).node("paging").isEqualTo(false)
159196
);
160197
}
161198
}

0 commit comments

Comments
 (0)