table_data.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. <!-- start: PAGE TITLE -->
  2. <section id="page-title">
  3. <div class="row">
  4. <div class="col-sm-8">
  5. <h1 class="mainTitle" translate="sidebar.nav.tables.DATA">{{ mainTitle }}</h1>
  6. <span class="mainDescription">This directive allow to liven your tables. It support sorting, filtering and pagination. Header row with titles and filters automatic generated on compilation step.</span>
  7. </div>
  8. <div ncy-breadcrumb></div>
  9. </div>
  10. </section>
  11. <!-- end: PAGE TITLE -->
  12. <!-- start: SIMPLE TABLE WITH PAGINATION -->
  13. <div class="container-fluid container-fullw bg-white">
  14. <div class="row">
  15. <div class="col-md-12">
  16. <h5 class="over-title margin-bottom-15">Simple table <span class="text-bold">with pagination</span></h5>
  17. <!-- /// controller: 'ngTableCtrl' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  18. <div ng-controller="ngTableCtrl">
  19. <p>
  20. <strong>Page:</strong> {{tableParams.page()}}
  21. </p>
  22. <p>
  23. <strong>Count per page:</strong> {{tableParams.count()}}
  24. </p>
  25. <table ng-table="tableParams" class="table table-striped">
  26. <tr ng-repeat="user in $data">
  27. <td data-title="'Name'">{{user.name}}</td>
  28. <td data-title="'Alias'">{{user.alias}}</td>
  29. <td data-title="'Publisher'">{{user.publisher}}</td>
  30. <td data-title="'Gender'">{{user.gender}}</td>
  31. </tr>
  32. </table>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37. <!-- end: SIMPLE TABLE WITH PAGINATION -->
  38. <!-- start: PAGINATION TEMPLATE -->
  39. <div class="container-fluid container-fullw">
  40. <div class="row">
  41. <div class="col-md-12">
  42. <h5 class="over-title margin-bottom-15">Pagination <span class="text-bold">template</span></h5>
  43. <!-- /// controller: 'ngTableCtrl' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  44. <div ng-controller="ngTableCtrl">
  45. <p>
  46. <strong>Page:</strong> {{tableParams.page()}}
  47. </p>
  48. <p>
  49. <strong>Count per page:</strong> {{tableParams.count()}}
  50. </p>
  51. <table ng-table="tableParams" class="table table-striped" template-pagination="custom/pager">
  52. <tr ng-repeat="user in $data">
  53. <td data-title="'Name'">{{user.name}}</td>
  54. <td data-title="'Alias'">{{user.alias}}</td>
  55. <td data-title="'Publisher'">{{user.publisher}}</td>
  56. <td data-title="'Gender'">{{user.gender}}</td>
  57. </tr>
  58. </table>
  59. <script type="text/ng-template" id="custom/pager">
  60. <ul class="pager ng-cloak">
  61. <li ng-repeat="page in pages" ng-class="{'disabled': !page.active, 'previous': page.type == 'prev', 'next': page.type == 'next'}" ng-show="page.type == 'prev' || page.type == 'next'" ng-switch="page.type">
  62. <a ng-switch-when="prev" ng-click="params.page(page.number)" href="">&laquo; Previous</a>
  63. <a ng-switch-when="next" ng-click="params.page(page.number)" href="">Next &raquo;</a>
  64. </li>
  65. <li>
  66. <div class="btn-group">
  67. <button type="button" ng-class="{'active':params.count() == 10}" ng-click="params.count(10)" class="btn btn-default">10</button>
  68. <button type="button" ng-class="{'active':params.count() == 25}" ng-click="params.count(25)" class="btn btn-default">25</button>
  69. <button type="button" ng-class="{'active':params.count() == 50}" ng-click="params.count(50)" class="btn btn-default">50</button>
  70. <button type="button" ng-class="{'active':params.count() == 100}" ng-click="params.count(100)" class="btn btn-default">100</button>
  71. </div>
  72. </li>
  73. </ul>
  74. </script>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. <!-- end: PAGINATION TEMPLATE -->
  80. <!-- start: TABLE WITH SORTING -->
  81. <div class="container-fluid container-fullw bg-white">
  82. <div class="row">
  83. <div class="col-md-12">
  84. <h5 class="over-title margin-bottom-15">Table <span class="text-bold">with sorting</span></h5>
  85. <!-- /// controller: 'ngTableCtrl2' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  86. <div ng-controller="ngTableCtrl2">
  87. <div class="row margin-bottom-10">
  88. <div class="col-md-12">
  89. <button ng-click="tableParams.sorting({})" class="btn btn-default pull-right">
  90. Clear sorting
  91. </button>
  92. </div>
  93. </div>
  94. <strong>Sorting:</strong> {{tableParams.sorting()|json}}
  95. <table ng-table="tableParams" class="table table-striped">
  96. <tr ng-repeat="user in $data">
  97. <td data-title="'Name'" sortable="'name'">{{user.name}}</td>
  98. <td data-title="'Alias'" sortable="'alias'">{{user.alias}}</td>
  99. <td data-title="'Publisher'" sortable="'publisher'">{{user.publisher}}</td>
  100. <td data-title="'Gender'" sortable="'gender'">{{user.gender}}</td>
  101. </tr>
  102. </table>
  103. </div>
  104. </div>
  105. </div>
  106. </div>
  107. <!-- end: TABLE WITH SORTING -->
  108. <!-- start: TABLE WITH FILTERS -->
  109. <div class="container-fluid container-fullw">
  110. <div class="row">
  111. <div class="col-md-12">
  112. <h5 class="over-title margin-bottom-15">Table <span class="text-bold">with filters</span></h5>
  113. <!-- /// controller: 'ngTableCtrl3' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  114. <div ng-controller="ngTableCtrl3">
  115. <strong>Filter:</strong> {{tableParams.filter()|json}}
  116. <table ng-table="tableParams" show-filter="true" class="table table-striped">
  117. <tr ng-repeat="user in $data">
  118. <td data-title="'Name'" filter="{ 'name': 'text' }"> {{user.name}} </td>
  119. <td data-title="'Alias'">{{user.alias}}</td>
  120. <td data-title="'Publisher'">{{user.publisher}}</td>
  121. <td data-title="'Gender'">{{user.gender}}</td>
  122. </tr>
  123. </table>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. <!-- end: TABLE WITH FILTERS -->
  129. <!-- start: CELL AND ROW TEMPLATE -->
  130. <div class="container-fluid container-fullw bg-white">
  131. <div class="row">
  132. <div class="col-md-6">
  133. <h5 class="over-title margin-bottom-15">Cell <span class="text-bold">Template</span></h5>
  134. <div class="panel panel-white">
  135. <div class="panel-body">
  136. <!-- /// controller: 'ngTableCtrl4' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  137. <div ng-controller="ngTableCtrl4">
  138. <div class="row margin-bottom-10">
  139. <div class="col-md-12">
  140. <button ng-click="tableParams.sorting({})" class="btn btn-default pull-right">
  141. Clear sorting
  142. </button>
  143. </div>
  144. </div>
  145. <table ng-table="tableParams" class="table">
  146. <tr ng-repeat="user in $data">
  147. <td data-title="'Name'"> {{user.name}} </td>
  148. <td data-title="'Alias'"> {{user.alias}} </td>
  149. <td data-title="'Power'" sortable="'power'"><span ng-class="{ 'plus': user.power >= 50,'minus': user.power < 50 }">{{user.power}}</span></td>
  150. </tr>
  151. </table>
  152. </div>
  153. </div>
  154. </div>
  155. </div>
  156. <div class="col-md-6">
  157. <h5 class="over-title margin-bottom-15">Row <span class="text-bold">Template</span></h5>
  158. <div class="panel panel-white">
  159. <div class="panel-body">
  160. <!-- /// controller: 'ngTableCtrl5' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  161. <div ng-controller="ngTableCtrl5">
  162. <div class="row margin-bottom-10">
  163. <div class="col-md-12">
  164. <button ng-click="tableParams.sorting({})" class="btn btn-default pull-right">
  165. Clear sorting
  166. </button>
  167. </div>
  168. </div>
  169. <table ng-table="tableParams" class="table">
  170. <tr ng-repeat="user in $data" ng-class="{ 'info': user.power > 90 }">
  171. <td data-title="'Name'"> {{user.name}} </td>
  172. <td data-title="'Alias'"> {{user.alias}} </td>
  173. <td data-title="'Power'" sortable="'power'"> {{user.power}} </td>
  174. </tr>
  175. </table>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </div>
  182. <!-- end: CELL AND ROW TEMPLATE -->
  183. <!-- start: INLINE EDIT EXAMPLE -->
  184. <div class="container-fluid container-fullw">
  185. <div class="row">
  186. <div class="col-md-12">
  187. <h5 class="over-title margin-bottom-15">Inline <span class="text-bold">edit example</span></h5>
  188. <!-- /// controller: 'ngTableCtrl6' - localtion: assets/js/controllers/ngTableCtrl.js /// -->
  189. <div ng-controller="ngTableCtrl6">
  190. <div class="row margin-bottom-10">
  191. <div class="col-md-12">
  192. <button ng-click="tableParams.sorting({})" class="btn btn-default pull-right">
  193. Clear sorting
  194. </button>
  195. </div>
  196. </div>
  197. <strong>Sorting:</strong> {{tableParams.sorting()|json}}
  198. <div class="table-responsive">
  199. <table ng-table="tableParams" class="table">
  200. <thead>
  201. <th><input name="" type="checkbox" ng-value="$data" id="checkedAll"></th>
  202. <th sortable="'id'">ID</th>
  203. <th>Firstname</th>
  204. <th>Lastname</th>
  205. <th>Description</th>
  206. <th>Email</th>
  207. </thead>
  208. <tbody ng-repeat="p in $data">
  209. <tr id="tr{{p.id}}" ng-class-odd="'odd'" ng-class-even="'even'">
  210. <td class="rowTd"><input name="" type="checkbox" ng-value="p" id="checkedAll"></td>
  211. <td class="rowTd" data-title="'ID'" sortable="'id'">{{p.id}}</td>
  212. <td class="rowTd" data-title="'Firstname'" sortable="'fn'">{{p.fn}}</td>
  213. <td class="rowTd" data-title="'Lastname'" sortable="'ln'">{{p.ln}}</td>
  214. <td class="rowTd" data-title="'Description'" sortable="'dc'">{{p.dc}}</td>
  215. <td class="rowTd" data-title="'Email'" sortable="'em'">{{p.em}}</td>
  216. <td class="rowTd" data-title="'Phone'" sortable="'ph'">{{p.ph}}</td>
  217. <td class="rowTd">
  218. <div class="pull-right margin-right-10">
  219. <input type=button class="btn btn-primary btn-o btn-sm" id="editRowBtn{{p.id}}" value="edit" ng-click="setEditId(p.id)">
  220. </div>
  221. </td>
  222. </tr>
  223. <tr ng-show="editId===p.id" ng-if="editId===p.id">
  224. <td colspan="7" ng-include src="'assets/views/editRow.html'"></td>
  225. </tr>
  226. </tbody>
  227. </table>
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. </div>
  233. <!-- end: INLINE EDIT EXAMPLE -->