Skip to content

Commit 666b90c

Browse files
committed
context menu example
1 parent 46aa1ec commit 666b90c

File tree

5 files changed

+85
-5
lines changed

5 files changed

+85
-5
lines changed

docs-src/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs-src/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
"@angular/platform-browser": "~9.1.3",
2020
"@angular/platform-browser-dynamic": "~9.1.3",
2121
"@angular/router": "~9.1.3",
22-
"angular-datatable-advanced": "0.1.7",
22+
"angular-datatable-advanced": "0.3.0",
2323
"angularx-flatpickr": "^6.4.0",
2424
"flatpickr": "^4.6.6",
2525
"rxjs": "~6.5.4",

docs-src/src/app/app.component.html

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,57 @@ <h3 class="block-title">Date & Date-Time picker filter example</h3>
186186
altInput: true
187187
&#125;
188188
&#125;
189+
];</code></pre>
190+
</div>
191+
</div>
192+
</div>
193+
194+
<div id="cog-menu-example" class="section-block">
195+
<h3 class="block-title">Context menu example</h3>
196+
<div>
197+
Table with example of:
198+
<ul>
199+
<li>Plain text column rendered by field name(first column)</li>
200+
<li>Column rendered with nested field(second column)</li>
201+
<li>Column rendered with custom cellRender function(third column)</li>
202+
</ul>
203+
</div>
204+
<div>
205+
<ada-table
206+
[pageSize]="3"
207+
[pageSizeOptions]="[3, 5]"
208+
[columns]="minExampleColumns"
209+
[rowsLoader]="rowsLoader"
210+
[cogMenu]="cogMenu"
211+
></ada-table>
212+
</div>
213+
<div>
214+
<a href="#" data-target="cog-menu-code-example" class="spoiler-trigger"><span>Code example</span></a>
215+
<div id="cog-menu-code-example" class="spoiler-block">
216+
<pre><code class="language-javascript">cogMenu: CogMenu[] = [
217+
&#123;
218+
name: 'Button 1',
219+
onClick: item => alert(`Click on item with JSON: $&#123;JSON.stringify(item)&#125;`)
220+
&#125;,
221+
&#123;
222+
name: 'Button for odd rows',
223+
renderCheck: item => parseInt(item.plainTextFilter.charAt(item.plainTextFilter.length - 1), 10) % 2 === 1,
224+
onClick: item => alert('Click odd row: ' + item.plainTextFilter)
225+
&#125;,
226+
&#123;
227+
name: 'Button for pair rows',
228+
renderCheck: item => parseInt(item.plainTextFilter.charAt(item.plainTextFilter.length - 1), 10) % 2 === 0,
229+
onClick: item => alert('Click pair row: ' + item.plainTextFilter)
230+
&#125;,
231+
&#123;
232+
name: 'Set deep field',
233+
onClick: item => item.render = &#123;
234+
deep: &#123;
235+
field: item.plainTextFilter + ' updated'
236+
&#125;
237+
&#125;
238+
&#125;
239+
];
189240
];</code></pre>
190241
</div>
191242
</div>
@@ -320,6 +371,7 @@ <h6>Render table</h6>
320371
<a class="nav-link scrollto" href="#simple-example">Simple example</a>
321372
<a class="nav-link scrollto" href="#set-example">Set filter example</a>
322373
<a class="nav-link scrollto" href="#date-time-example">Date & Date-Time picker example</a>
374+
<a class="nav-link scrollto" href="#cog-menu-example">Context menu example</a>
323375
</nav>
324376
<a class="nav-link scrollto" href="#installation-section">Installation</a>
325377
<a class="nav-link scrollto" href="#code-section">Setup</a>

docs-src/src/app/app.component.ts

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component } from '@angular/core';
2-
import {Column, RowsLoader, LoadResult, RequestParams} from 'angular-datatable-advanced';
2+
import {Column, RowsLoader, LoadResult, RequestParams, CogMenu} from 'angular-datatable-advanced';
33
import {Observable, of} from 'rxjs';
44
import {FilterIn} from 'angular-datatable-advanced/lib/model/filter-in';
55

@@ -78,6 +78,31 @@ export class AppComponent {
7878
}
7979
];
8080

81+
cogMenu: CogMenu[] = [
82+
{
83+
name: 'Button 1',
84+
onClick: item => alert(`Click on item with JSON: ${JSON.stringify(item)}`)
85+
},
86+
{
87+
name: 'Button for odd rows',
88+
renderCheck: item => parseInt(item.plainTextFilter.charAt(item.plainTextFilter.length - 1), 10) % 2 === 1,
89+
onClick: item => alert('Click odd row: ' + item.plainTextFilter)
90+
},
91+
{
92+
name: 'Button for pair rows',
93+
renderCheck: item => parseInt(item.plainTextFilter.charAt(item.plainTextFilter.length - 1), 10) % 2 === 0,
94+
onClick: item => alert('Click pair row: ' + item.plainTextFilter)
95+
},
96+
{
97+
name: 'Set deep field',
98+
onClick: item => item.render = {
99+
deep: {
100+
field: item.plainTextFilter + ' updated'
101+
}
102+
}
103+
}
104+
];
105+
81106
rowsLoader: RowsLoader = (filters: RequestParams): Observable<LoadResult> => {
82107
console.log('Filters: ', JSON.stringify(filters, null, 4));
83108

docs-src/src/styles.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,6 @@
2121
display: none;
2222
}
2323

24+
.mat-column-cogMenuColumn {
25+
flex: 0 0 45px !important;
26+
}

0 commit comments

Comments
 (0)