diff --git a/modules/payment/src/Payment.Domain.Shared/Payment.Domain.Shared.csproj b/modules/payment/src/Payment.Domain.Shared/Payment.Domain.Shared.csproj
index a06def7..d4d2f9d 100644
--- a/modules/payment/src/Payment.Domain.Shared/Payment.Domain.Shared.csproj
+++ b/modules/payment/src/Payment.Domain.Shared/Payment.Domain.Shared.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/modules/payment/src/Payment.Web/Payment.Web.csproj b/modules/payment/src/Payment.Web/Payment.Web.csproj
index ad86c03..60366a6 100644
--- a/modules/payment/src/Payment.Web/Payment.Web.csproj
+++ b/modules/payment/src/Payment.Web/Payment.Web.csproj
@@ -22,7 +22,7 @@
-
+
diff --git a/modules/payment/test/Payment.EntityFrameworkCore.Tests/Payment.EntityFrameworkCore.Tests.csproj b/modules/payment/test/Payment.EntityFrameworkCore.Tests/Payment.EntityFrameworkCore.Tests.csproj
index 59fe63a..73e3178 100644
--- a/modules/payment/test/Payment.EntityFrameworkCore.Tests/Payment.EntityFrameworkCore.Tests.csproj
+++ b/modules/payment/test/Payment.EntityFrameworkCore.Tests/Payment.EntityFrameworkCore.Tests.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj b/src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj
index 288de94..c48c9e7 100644
--- a/src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj
+++ b/src/EventHub.Admin.Application.Contracts/EventHub.Admin.Application.Contracts.csproj
@@ -13,9 +13,9 @@
-
-
-
+
+
+
diff --git a/src/EventHub.Admin.Application/EventHub.Admin.Application.csproj b/src/EventHub.Admin.Application/EventHub.Admin.Application.csproj
index c6e2de0..2dc0e91 100644
--- a/src/EventHub.Admin.Application/EventHub.Admin.Application.csproj
+++ b/src/EventHub.Admin.Application/EventHub.Admin.Application.csproj
@@ -14,9 +14,9 @@
-
-
-
+
+
+
diff --git a/src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj b/src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj
index 4f19eda..970910c 100644
--- a/src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj
+++ b/src/EventHub.Admin.HttpApi.Client/EventHub.Admin.HttpApi.Client.csproj
@@ -13,9 +13,9 @@
-
-
-
+
+
+
diff --git a/src/EventHub.Admin.HttpApi.Host/EventHub.Admin.HttpApi.Host.csproj b/src/EventHub.Admin.HttpApi.Host/EventHub.Admin.HttpApi.Host.csproj
index fc9d825..24e8327 100644
--- a/src/EventHub.Admin.HttpApi.Host/EventHub.Admin.HttpApi.Host.csproj
+++ b/src/EventHub.Admin.HttpApi.Host/EventHub.Admin.HttpApi.Host.csproj
@@ -12,14 +12,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj b/src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj
index 67ae227..bd8b091 100644
--- a/src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj
+++ b/src/EventHub.Admin.HttpApi/EventHub.Admin.HttpApi.csproj
@@ -13,9 +13,9 @@
-
-
-
+
+
+
diff --git a/src/EventHub.Admin.Web/Components/UserPicker/UserPicker.razor.cs b/src/EventHub.Admin.Web/Components/UserPicker/UserPicker.razor.cs
index 706e038..f8469db 100644
--- a/src/EventHub.Admin.Web/Components/UserPicker/UserPicker.razor.cs
+++ b/src/EventHub.Admin.Web/Components/UserPicker/UserPicker.razor.cs
@@ -120,10 +120,9 @@ namespace EventHub.Admin.Web.Components.UserPicker
await SaveFormAsync.InvokeAsync();
}
- private Task ClosingUserPickerModal(ModalClosingEventArgs eventArgs)
+ private void ClosingUserPickerModal(ModalClosingEventArgs eventArgs)
{
eventArgs.Cancel = eventArgs.CloseReason == CloseReason.FocusLostClosing;
- return Task.CompletedTask;
}
}
}
diff --git a/src/EventHub.Admin.Web/EventHub.Admin.Web.csproj b/src/EventHub.Admin.Web/EventHub.Admin.Web.csproj
index 7f955f5..02e0418 100644
--- a/src/EventHub.Admin.Web/EventHub.Admin.Web.csproj
+++ b/src/EventHub.Admin.Web/EventHub.Admin.Web.csproj
@@ -11,16 +11,16 @@
-
-
-
-
+
+
+
+
-
-
-
+
+
+
diff --git a/src/EventHub.Admin.Web/Pages/AttendeeDetail.razor b/src/EventHub.Admin.Web/Pages/AttendeeDetail.razor
index 392c2f4..c9061d4 100644
--- a/src/EventHub.Admin.Web/Pages/AttendeeDetail.razor
+++ b/src/EventHub.Admin.Web/Pages/AttendeeDetail.razor
@@ -11,7 +11,7 @@
@L["Attendees"]
-
+
@if (CanAddAttendee)
{
-
+
diff --git a/src/EventHub.Application/EventHub.Application.csproj b/src/EventHub.Application/EventHub.Application.csproj
index f6af716..6f88158 100644
--- a/src/EventHub.Application/EventHub.Application.csproj
+++ b/src/EventHub.Application/EventHub.Application.csproj
@@ -14,7 +14,7 @@
-
+
diff --git a/src/EventHub.BackgroundServices/EventHub.BackgroundServices.csproj b/src/EventHub.BackgroundServices/EventHub.BackgroundServices.csproj
index 7fb8538..f520169 100644
--- a/src/EventHub.BackgroundServices/EventHub.BackgroundServices.csproj
+++ b/src/EventHub.BackgroundServices/EventHub.BackgroundServices.csproj
@@ -14,18 +14,18 @@
-
-
-
+
+
+
-
+
-
+
diff --git a/src/EventHub.DbMigrator/EventHub.DbMigrator.csproj b/src/EventHub.DbMigrator/EventHub.DbMigrator.csproj
index 0a0dd9c..1e54e6d 100644
--- a/src/EventHub.DbMigrator/EventHub.DbMigrator.csproj
+++ b/src/EventHub.DbMigrator/EventHub.DbMigrator.csproj
@@ -23,11 +23,11 @@
-
+
-
+
diff --git a/src/EventHub.Domain.Shared/EventHub.Domain.Shared.csproj b/src/EventHub.Domain.Shared/EventHub.Domain.Shared.csproj
index 3293d36..bccbfea 100644
--- a/src/EventHub.Domain.Shared/EventHub.Domain.Shared.csproj
+++ b/src/EventHub.Domain.Shared/EventHub.Domain.Shared.csproj
@@ -13,13 +13,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -28,7 +28,7 @@
-
+
diff --git a/src/EventHub.Domain/EventHub.Domain.csproj b/src/EventHub.Domain/EventHub.Domain.csproj
index 0857a05..7be5914 100644
--- a/src/EventHub.Domain/EventHub.Domain.csproj
+++ b/src/EventHub.Domain/EventHub.Domain.csproj
@@ -14,15 +14,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -31,7 +31,7 @@
-
+
diff --git a/src/EventHub.EntityFrameworkCore/EventHub.EntityFrameworkCore.csproj b/src/EventHub.EntityFrameworkCore/EventHub.EntityFrameworkCore.csproj
index f153232..1e10f87 100644
--- a/src/EventHub.EntityFrameworkCore/EventHub.EntityFrameworkCore.csproj
+++ b/src/EventHub.EntityFrameworkCore/EventHub.EntityFrameworkCore.csproj
@@ -13,20 +13,20 @@
-
+
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/EventHub.HttpApi.Client/EventHub.HttpApi.Client.csproj b/src/EventHub.HttpApi.Client/EventHub.HttpApi.Client.csproj
index 7b47311..ccec9ab 100644
--- a/src/EventHub.HttpApi.Client/EventHub.HttpApi.Client.csproj
+++ b/src/EventHub.HttpApi.Client/EventHub.HttpApi.Client.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/EventHub.HttpApi.Host/EventHub.HttpApi.Host.csproj b/src/EventHub.HttpApi.Host/EventHub.HttpApi.Host.csproj
index 890941d..30b6840 100644
--- a/src/EventHub.HttpApi.Host/EventHub.HttpApi.Host.csproj
+++ b/src/EventHub.HttpApi.Host/EventHub.HttpApi.Host.csproj
@@ -12,14 +12,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/EventHub.HttpApi/EventHub.HttpApi.csproj b/src/EventHub.HttpApi/EventHub.HttpApi.csproj
index 81216d8..8583bf9 100644
--- a/src/EventHub.HttpApi/EventHub.HttpApi.csproj
+++ b/src/EventHub.HttpApi/EventHub.HttpApi.csproj
@@ -13,7 +13,7 @@
-
+
diff --git a/src/EventHub.IdentityServer/EventHub.IdentityServer.csproj b/src/EventHub.IdentityServer/EventHub.IdentityServer.csproj
index e934aee..5ea644b 100644
--- a/src/EventHub.IdentityServer/EventHub.IdentityServer.csproj
+++ b/src/EventHub.IdentityServer/EventHub.IdentityServer.csproj
@@ -37,18 +37,18 @@
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/EventHub.IdentityServer/package.json b/src/EventHub.IdentityServer/package.json
index 7d161aa..29586e0 100644
--- a/src/EventHub.IdentityServer/package.json
+++ b/src/EventHub.IdentityServer/package.json
@@ -3,7 +3,7 @@
"name": "my-app-identityserver",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-beta.3",
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-rc.1",
"owl.carousel": "^2.3.4"
}
}
\ No newline at end of file
diff --git a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css
deleted file mode 100644
index e54d564..0000000
--- a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css
+++ /dev/null
@@ -1,212 +0,0 @@
-table.dataTable {
- clear: both;
- margin-top: 6px !important;
- margin-bottom: 6px !important;
- max-width: none !important;
- border-collapse: separate !important;
- border-spacing: 0;
-}
-table.dataTable td,
-table.dataTable th {
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
-}
-table.dataTable td.dataTables_empty,
-table.dataTable th.dataTables_empty {
- text-align: center;
-}
-table.dataTable.nowrap th,
-table.dataTable.nowrap td {
- white-space: nowrap;
-}
-
-div.dataTables_wrapper div.dataTables_length label {
- font-weight: normal;
- text-align: left;
- white-space: nowrap;
-}
-div.dataTables_wrapper div.dataTables_length select {
- width: auto;
- display: inline-block;
-}
-div.dataTables_wrapper div.dataTables_filter {
- text-align: right;
-}
-div.dataTables_wrapper div.dataTables_filter label {
- font-weight: normal;
- white-space: nowrap;
- text-align: left;
-}
-div.dataTables_wrapper div.dataTables_filter input {
- margin-left: 0.5em;
- display: inline-block;
- width: auto;
-}
-div.dataTables_wrapper div.dataTables_info {
- padding-top: 0.85em;
- white-space: nowrap;
-}
-div.dataTables_wrapper div.dataTables_paginate {
- margin: 0;
- white-space: nowrap;
- text-align: right;
-}
-div.dataTables_wrapper div.dataTables_paginate ul.pagination {
- margin: 2px 0;
- white-space: nowrap;
- justify-content: flex-end;
-}
-div.dataTables_wrapper div.dataTables_processing {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 200px;
- margin-left: -100px;
- margin-top: -26px;
- text-align: center;
- padding: 1em 0;
-}
-
-table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
-table.dataTable thead > tr > td.sorting_asc,
-table.dataTable thead > tr > td.sorting_desc,
-table.dataTable thead > tr > td.sorting {
- padding-right: 30px;
-}
-table.dataTable thead > tr > th:active,
-table.dataTable thead > tr > td:active {
- outline: none;
-}
-table.dataTable thead .sorting,
-table.dataTable thead .sorting_asc,
-table.dataTable thead .sorting_desc,
-table.dataTable thead .sorting_asc_disabled,
-table.dataTable thead .sorting_desc_disabled {
- cursor: pointer;
- position: relative;
-}
-table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_asc:after,
-table.dataTable thead .sorting_desc:before,
-table.dataTable thead .sorting_desc:after,
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_asc_disabled:after,
-table.dataTable thead .sorting_desc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:after {
- position: absolute;
- bottom: 0.9em;
- display: block;
- opacity: 0.3;
-}
-table.dataTable thead .sorting:before,
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_desc:before,
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:before {
- right: 1em;
- content: "\2191";
-}
-table.dataTable thead .sorting:after,
-table.dataTable thead .sorting_asc:after,
-table.dataTable thead .sorting_desc:after,
-table.dataTable thead .sorting_asc_disabled:after,
-table.dataTable thead .sorting_desc_disabled:after {
- right: 0.5em;
- content: "\2193";
-}
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_desc:after {
- opacity: 1;
-}
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:after {
- opacity: 0;
-}
-
-div.dataTables_scrollHead table.dataTable {
- margin-bottom: 0 !important;
-}
-
-div.dataTables_scrollBody table {
- border-top: none;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
-}
-div.dataTables_scrollBody table thead .sorting:before,
-div.dataTables_scrollBody table thead .sorting_asc:before,
-div.dataTables_scrollBody table thead .sorting_desc:before,
-div.dataTables_scrollBody table thead .sorting:after,
-div.dataTables_scrollBody table thead .sorting_asc:after,
-div.dataTables_scrollBody table thead .sorting_desc:after {
- display: none;
-}
-div.dataTables_scrollBody table tbody tr:first-child th,
-div.dataTables_scrollBody table tbody tr:first-child td {
- border-top: none;
-}
-
-div.dataTables_scrollFoot > .dataTables_scrollFootInner {
- box-sizing: content-box;
-}
-div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
- margin-top: 0 !important;
- border-top: none;
-}
-
-@media screen and (max-width: 767px) {
- div.dataTables_wrapper div.dataTables_length,
- div.dataTables_wrapper div.dataTables_filter,
- div.dataTables_wrapper div.dataTables_info,
- div.dataTables_wrapper div.dataTables_paginate {
- text-align: center;
- }
- div.dataTables_wrapper div.dataTables_paginate ul.pagination {
- justify-content: center !important;
- }
-}
-table.dataTable.table-sm > thead > tr > th :not(.sorting_disabled) {
- padding-right: 20px;
-}
-table.dataTable.table-sm .sorting:before,
-table.dataTable.table-sm .sorting_asc:before,
-table.dataTable.table-sm .sorting_desc:before {
- top: 5px;
- right: 0.85em;
-}
-table.dataTable.table-sm .sorting:after,
-table.dataTable.table-sm .sorting_asc:after,
-table.dataTable.table-sm .sorting_desc:after {
- top: 5px;
-}
-
-table.table-bordered.dataTable {
- border-right-width: 0;
-}
-table.table-bordered.dataTable th,
-table.table-bordered.dataTable td {
- border-left-width: 0;
-}
-table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
-table.table-bordered.dataTable td:last-child,
-table.table-bordered.dataTable td:last-child {
- border-right-width: 1px;
-}
-table.table-bordered.dataTable tbody th,
-table.table-bordered.dataTable tbody td {
- border-bottom-width: 0;
-}
-
-div.dataTables_scrollHead table.table-bordered {
- border-bottom-width: 0;
-}
-
-div.table-responsive > div.dataTables_wrapper > div.row {
- margin: 0;
-}
-div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
- padding-left: 0;
-}
-div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
- padding-right: 0;
-}
diff --git a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js
deleted file mode 100644
index 1db1139..0000000
--- a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*! DataTables Bootstrap 4 integration
- * ©2011-2017 SpryMedia Ltd - datatables.net/license
- */
-
-/**
- * DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
- * DataTables 1.10 or newer.
- *
- * This file sets the defaults and adds options to DataTables to style its
- * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
- * for further information.
- */
-(function( factory ){
- if ( typeof define === 'function' && define.amd ) {
- // AMD
- define( ['jquery', 'datatables.net'], function ( $ ) {
- return factory( $, window, document );
- } );
- }
- else if ( typeof exports === 'object' ) {
- // CommonJS
- module.exports = function (root, $) {
- if ( ! root ) {
- root = window;
- }
-
- if ( ! $ || ! $.fn.dataTable ) {
- // Require DataTables, which attaches to jQuery, including
- // jQuery if needed and have a $ property so we can access the
- // jQuery object that is used
- $ = require('datatables.net')(root, $).$;
- }
-
- return factory( $, root, root.document );
- };
- }
- else {
- // Browser
- factory( jQuery, window, document );
- }
-}(function( $, window, document, undefined ) {
-'use strict';
-var DataTable = $.fn.dataTable;
-
-
-/* Set the defaults for DataTables initialisation */
-$.extend( true, DataTable.defaults, {
- dom:
- "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
- "<'row'<'col-sm-12'tr>>" +
- "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
- renderer: 'bootstrap'
-} );
-
-
-/* Default class modification */
-$.extend( DataTable.ext.classes, {
- sWrapper: "dataTables_wrapper dt-bootstrap4",
- sFilterInput: "form-control form-control-sm",
- sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
- sProcessing: "dataTables_processing card",
- sPageButton: "paginate_button page-item"
-} );
-
-
-/* Bootstrap paging button renderer */
-DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
- var api = new DataTable.Api( settings );
- var classes = settings.oClasses;
- var lang = settings.oLanguage.oPaginate;
- var aria = settings.oLanguage.oAria.paginate || {};
- var btnDisplay, btnClass, counter=0;
-
- var attach = function( container, buttons ) {
- var i, ien, node, button;
- var clickHandler = function ( e ) {
- e.preventDefault();
- if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
- api.page( e.data.action ).draw( 'page' );
- }
- };
-
- for ( i=0, ien=buttons.length ; i 0 ?
- '' : ' disabled');
- break;
-
- case 'previous':
- btnDisplay = lang.sPrevious;
- btnClass = button + (page > 0 ?
- '' : ' disabled');
- break;
-
- case 'next':
- btnDisplay = lang.sNext;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- case 'last':
- btnDisplay = lang.sLast;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- default:
- btnDisplay = button + 1;
- btnClass = page === button ?
- 'active' : '';
- break;
- }
-
- if ( btnDisplay ) {
- node = $('', {
- 'class': classes.sPageButton+' '+btnClass,
- 'id': idx === 0 && typeof button === 'string' ?
- settings.sTableId +'_'+ button :
- null
- } )
- .append( $('', {
- 'href': '#',
- 'aria-controls': settings.sTableId,
- 'aria-label': aria[ button ],
- 'data-dt-idx': counter,
- 'tabindex': settings.iTabIndex,
- 'class': 'page-link'
- } )
- .html( btnDisplay )
- )
- .appendTo( container );
-
- settings.oApi._fnBindAction(
- node, {action: button}, clickHandler
- );
-
- counter++;
- }
- }
- }
- };
-
- // IE9 throws an 'unknown error' if document.activeElement is used
- // inside an iframe or frame.
- var activeEl;
-
- try {
- // Because this approach is destroying and recreating the paging
- // elements, focus is lost on the select button which is bad for
- // accessibility. So we want to restore focus once the draw has
- // completed
- activeEl = $(host).find(document.activeElement).data('dt-idx');
- }
- catch (e) {}
-
- attach(
- $(host).empty().html('').children('ul'),
- buttons
- );
-
- if ( activeEl !== undefined ) {
- $(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
- }
-};
-
-
-return DataTable;
-}));
diff --git a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
index 4a38ffa..3b84bef 100644
--- a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
+++ b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
@@ -1,4 +1,85 @@
@charset "UTF-8";
+td.dt-control {
+ background: url("https://www.datatables.net/examples/resources/details_open.png") no-repeat center center;
+ cursor: pointer;
+}
+
+tr.dt-hasChild td.dt-control {
+ background: url("https://www.datatables.net/examples/resources/details_close.png") no-repeat center center;
+}
+
+table.dataTable th.dt-left,
+table.dataTable td.dt-left {
+ text-align: left;
+}
+table.dataTable th.dt-center,
+table.dataTable td.dt-center,
+table.dataTable td.dataTables_empty {
+ text-align: center;
+}
+table.dataTable th.dt-right,
+table.dataTable td.dt-right {
+ text-align: right;
+}
+table.dataTable th.dt-justify,
+table.dataTable td.dt-justify {
+ text-align: justify;
+}
+table.dataTable th.dt-nowrap,
+table.dataTable td.dt-nowrap {
+ white-space: nowrap;
+}
+table.dataTable thead th.dt-head-left,
+table.dataTable thead td.dt-head-left,
+table.dataTable tfoot th.dt-head-left,
+table.dataTable tfoot td.dt-head-left {
+ text-align: left;
+}
+table.dataTable thead th.dt-head-center,
+table.dataTable thead td.dt-head-center,
+table.dataTable tfoot th.dt-head-center,
+table.dataTable tfoot td.dt-head-center {
+ text-align: center;
+}
+table.dataTable thead th.dt-head-right,
+table.dataTable thead td.dt-head-right,
+table.dataTable tfoot th.dt-head-right,
+table.dataTable tfoot td.dt-head-right {
+ text-align: right;
+}
+table.dataTable thead th.dt-head-justify,
+table.dataTable thead td.dt-head-justify,
+table.dataTable tfoot th.dt-head-justify,
+table.dataTable tfoot td.dt-head-justify {
+ text-align: justify;
+}
+table.dataTable thead th.dt-head-nowrap,
+table.dataTable thead td.dt-head-nowrap,
+table.dataTable tfoot th.dt-head-nowrap,
+table.dataTable tfoot td.dt-head-nowrap {
+ white-space: nowrap;
+}
+table.dataTable tbody th.dt-body-left,
+table.dataTable tbody td.dt-body-left {
+ text-align: left;
+}
+table.dataTable tbody th.dt-body-center,
+table.dataTable tbody td.dt-body-center {
+ text-align: center;
+}
+table.dataTable tbody th.dt-body-right,
+table.dataTable tbody td.dt-body-right {
+ text-align: right;
+}
+table.dataTable tbody th.dt-body-justify,
+table.dataTable tbody td.dt-body-justify {
+ text-align: justify;
+}
+table.dataTable tbody th.dt-body-nowrap,
+table.dataTable tbody td.dt-body-nowrap {
+ white-space: nowrap;
+}
+
/*! Bootstrap 5 integration for DataTables
*
* ©2020 SpryMedia Ltd, all rights reserved.
@@ -131,21 +212,21 @@ div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
-div.dataTables_scrollBody table {
+div.dataTables_scrollBody > table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
-div.dataTables_scrollBody table thead .sorting:before,
-div.dataTables_scrollBody table thead .sorting_asc:before,
-div.dataTables_scrollBody table thead .sorting_desc:before,
-div.dataTables_scrollBody table thead .sorting:after,
-div.dataTables_scrollBody table thead .sorting_asc:after,
-div.dataTables_scrollBody table thead .sorting_desc:after {
+div.dataTables_scrollBody > table > thead .sorting:before,
+div.dataTables_scrollBody > table > thead .sorting_asc:before,
+div.dataTables_scrollBody > table > thead .sorting_desc:before,
+div.dataTables_scrollBody > table > thead .sorting:after,
+div.dataTables_scrollBody > table > thead .sorting_asc:after,
+div.dataTables_scrollBody > table > thead .sorting_desc:after {
display: none;
}
-div.dataTables_scrollBody table tbody tr:first-child th,
-div.dataTables_scrollBody table tbody tr:first-child td {
+div.dataTables_scrollBody > table > tbody tr:first-child th,
+div.dataTables_scrollBody > table > tbody tr:first-child td {
border-top: none;
}
@@ -222,3 +303,10 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {
padding-right: 0;
}
+
+table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) {
+ --bs-table-accent-bg: transparent;
+}
+table.dataTable.table-striped > tbody > tr.odd {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+}
diff --git a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net/js/jquery.dataTables.js b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net/js/jquery.dataTables.js
index aeb7fb9..dad445e 100644
--- a/src/EventHub.IdentityServer/wwwroot/libs/datatables.net/js/jquery.dataTables.js
+++ b/src/EventHub.IdentityServer/wwwroot/libs/datatables.net/js/jquery.dataTables.js
@@ -1,15 +1,15 @@
-/*! DataTables 1.10.21
- * ©2008-2020 SpryMedia Ltd - datatables.net/license
+/*! DataTables 1.11.3
+ * ©2008-2021 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary DataTables
* @description Paginate, search and order HTML tables
- * @version 1.10.21
+ * @version 1.11.3
* @file jquery.dataTables.js
* @author SpryMedia Ltd
* @contact www.datatables.net
- * @copyright Copyright 2008-2020 SpryMedia Ltd.
+ * @copyright Copyright 2008-2021 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license
@@ -53,7 +53,7 @@
}
else {
// Browser
- factory( jQuery, window, document );
+ window.DataTable = factory( jQuery, window, document );
}
}
(function( $, window, document, undefined ) {
@@ -91,8 +91,17 @@
* } );
* } );
*/
- var DataTable = function ( options )
+ var DataTable = function ( selector, options )
{
+ // When creating with `new`, create a new DataTable, returning the API instance
+ if (this instanceof DataTable) {
+ return $(selector).DataTable(options);
+ }
+ else {
+ // Argument switching
+ options = selector;
+ }
+
/**
* Perform a jQuery selector action on the table's TR elements (from the tbody) and
* return the resulting jQuery object.
@@ -251,7 +260,7 @@
var api = this.api( true );
/* Check if we want to add multiple rows or not */
- var rows = $.isArray(data) && ( $.isArray(data[0]) || $.isPlainObject(data[0]) ) ?
+ var rows = Array.isArray(data) && ( Array.isArray(data[0]) || $.isPlainObject(data[0]) ) ?
api.rows.add( data ) :
api.row.add( data );
@@ -975,7 +984,7 @@
// If the length menu is given, but the init display length is not, use the length menu
if ( oInit.aLengthMenu && ! oInit.iDisplayLength )
{
- oInit.iDisplayLength = $.isArray( oInit.aLengthMenu[0] ) ?
+ oInit.iDisplayLength = Array.isArray( oInit.aLengthMenu[0] ) ?
oInit.aLengthMenu[0][0] : oInit.aLengthMenu[0];
}
@@ -1066,7 +1075,7 @@
if ( oInit.iDeferLoading !== null )
{
oSettings.bDeferLoading = true;
- var tmp = $.isArray( oInit.iDeferLoading );
+ var tmp = Array.isArray( oInit.iDeferLoading );
oSettings._iRecordsDisplay = tmp ? oInit.iDeferLoading[0] : oInit.iDeferLoading;
oSettings._iRecordsTotal = tmp ? oInit.iDeferLoading[1] : oInit.iDeferLoading;
}
@@ -1085,9 +1094,11 @@
dataType: 'json',
url: oLanguage.sUrl,
success: function ( json ) {
- _fnLanguageCompat( json );
_fnCamelToHungarian( defaults.oLanguage, json );
+ _fnLanguageCompat( json );
$.extend( true, oLanguage, json );
+
+ _fnCallbackFire( oSettings, null, 'i18n', [oSettings]);
_fnInitialise( oSettings );
},
error: function () {
@@ -1097,6 +1108,9 @@
} );
bInitHandedOff = true;
}
+ else {
+ _fnCallbackFire( oSettings, null, 'i18n', [oSettings]);
+ }
/*
* Stripes
@@ -1248,7 +1262,7 @@
var tbody = $this.children('tbody');
if ( tbody.length === 0 ) {
- tbody = $(' ').appendTo($this);
+ tbody = $(' ').insertAfter(thead);
}
oSettings.nTBody = tbody[0];
@@ -1296,10 +1310,11 @@
};
/* Must be done after everything which can be overridden by the state saving! */
+ _fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );
+
if ( oInit.bStateSave )
{
features.bStateSave = true;
- _fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );
_fnLoadState( oSettings, oInit, loadedInit );
}
else {
@@ -1356,7 +1371,7 @@
// - Ƀ - Bitcoin
// - Ξ - Ethereum
// standards as thousands separators.
- var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi;
+ var _re_formatted_numeric = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi;
var _empty = function ( d ) {
@@ -1584,6 +1599,52 @@
return out;
};
+ // Surprisingly this is faster than [].concat.apply
+ // https://jsperf.com/flatten-an-array-loop-vs-reduce/2
+ var _flatten = function (out, val) {
+ if (Array.isArray(val)) {
+ for (var i=0 ; itr').attr('role', 'row');
/* Deal with the footer - add classes if required */
- $(thead).find('>tr>th, >tr>td').addClass( classes.sHeaderTH );
- $(tfoot).find('>tr>th, >tr>td').addClass( classes.sFooterTH );
+ $(thead).children('tr').children('th, td').addClass( classes.sHeaderTH );
+ $(tfoot).children('tr').children('th, td').addClass( classes.sFooterTH );
// Cache the footer cells. Note that we only take the cells from the first
// row in the footer. If there is more than one row the user wants to
@@ -3378,9 +3445,10 @@
/**
* Insert the required TR nodes into the table for display
* @param {object} oSettings dataTables settings object
+ * @param ajaxComplete true after ajax call to complete rendering
* @memberof DataTable#oApi
*/
- function _fnDraw( oSettings )
+ function _fnDraw( oSettings, ajaxComplete )
{
/* Provide a pre-callback function which can be used to cancel the draw is false is returned */
var aPreDraw = _fnCallbackFire( oSettings, 'aoPreDrawCallback', 'preDraw', [oSettings] );
@@ -3429,8 +3497,9 @@
{
oSettings.iDraw++;
}
- else if ( !oSettings.bDestroying && !_fnAjaxUpdate( oSettings ) )
+ else if ( !oSettings.bDestroying && !ajaxComplete)
{
+ _fnAjaxUpdate( oSettings );
return;
}
@@ -3834,7 +3903,7 @@
// Convert to object based for 1.10+ if using the old array scheme which can
// come from server-side processing or serverParams
- if ( data && $.isArray(data) ) {
+ if ( data && Array.isArray(data) ) {
var tmp = {};
var rbracket = /(.*?)\[\]$/;
@@ -3861,6 +3930,22 @@
var ajax = oSettings.ajax;
var instance = oSettings.oInstance;
var callback = function ( json ) {
+ var status = oSettings.jqXhr
+ ? oSettings.jqXhr.status
+ : null;
+
+ if ( json === null || (typeof status === 'number' && status == 204 ) ) {
+ json = {};
+ _fnAjaxDataSrc( oSettings, json, [] );
+ }
+
+ var error = json.error || json.sError;
+ if ( error ) {
+ _fnLog( oSettings, 0, error );
+ }
+
+ oSettings.json = json;
+
_fnCallbackFire( oSettings, null, 'xhr', [oSettings, json, oSettings.jqXHR] );
fn( json );
};
@@ -3885,15 +3970,7 @@
var baseAjax = {
"data": data,
- "success": function (json) {
- var error = json.error || json.sError;
- if ( error ) {
- _fnLog( oSettings, 0, error );
- }
-
- oSettings.json = json;
- callback( json );
- },
+ "success": callback,
"dataType": "json",
"cache": false,
"type": oSettings.sServerMethod,
@@ -3962,21 +4039,16 @@
*/
function _fnAjaxUpdate( settings )
{
- if ( settings.bAjaxDataGet ) {
- settings.iDraw++;
- _fnProcessingDisplay( settings, true );
-
- _fnBuildAjax(
- settings,
- _fnAjaxParameters( settings ),
- function(json) {
- _fnAjaxUpdateDraw( settings, json );
- }
- );
+ settings.iDraw++;
+ _fnProcessingDisplay( settings, true );
- return false;
- }
- return true;
+ _fnBuildAjax(
+ settings,
+ _fnAjaxParameters( settings ),
+ function(json) {
+ _fnAjaxUpdateDraw( settings, json );
+ }
+ );
}
@@ -4120,6 +4192,11 @@
settings.iDraw = draw * 1;
}
+ // No data in returned object, so rather than an array, we show an empty table
+ if ( ! data ) {
+ data = [];
+ }
+
_fnClearTable( settings );
settings._iRecordsTotal = parseInt(recordsTotal, 10);
settings._iRecordsDisplay = parseInt(recordsFiltered, 10);
@@ -4129,14 +4206,12 @@
}
settings.aiDisplay = settings.aiDisplayMaster.slice();
- settings.bAjaxDataGet = false;
- _fnDraw( settings );
+ _fnDraw( settings, true );
if ( ! settings._bInitComplete ) {
_fnInitComplete( settings, json );
}
- settings.bAjaxDataGet = true;
_fnProcessingDisplay( settings, false );
}
@@ -4149,21 +4224,26 @@
* @param {object} json Data source object / array from the server
* @return {array} Array of data to use
*/
- function _fnAjaxDataSrc ( oSettings, json )
- {
+ function _fnAjaxDataSrc ( oSettings, json, write )
+ {
var dataSrc = $.isPlainObject( oSettings.ajax ) && oSettings.ajax.dataSrc !== undefined ?
oSettings.ajax.dataSrc :
oSettings.sAjaxDataProp; // Compatibility with 1.9-.
- // Compatibility with 1.9-. In order to read from aaData, check if the
- // default has been changed, if not, check for aaData
- if ( dataSrc === 'data' ) {
- return json.aaData || json[dataSrc];
+ if ( ! write ) {
+ if ( dataSrc === 'data' ) {
+ // If the default, then we still want to support the old style, and safely ignore
+ // it if possible
+ return json.aaData || json[dataSrc];
+ }
+
+ return dataSrc !== "" ?
+ _fnGetObjectDataFn( dataSrc )( json ) :
+ json;
}
- return dataSrc !== "" ?
- _fnGetObjectDataFn( dataSrc )( json ) :
- json;
+ // set
+ _fnSetObjectDataFn( dataSrc )( json, write );
}
/**
@@ -4192,18 +4272,21 @@
} )
.append( $(' ' ).append( str ) );
- var searchFn = function() {
+ var searchFn = function(event) {
/* Update all other filter input elements for the new display */
var n = features.f;
var val = !this.value ? "" : this.value; // mental IE8 fix :-(
-
+ if(previousSearch.return && event.key !== "Enter") {
+ return;
+ }
/* Now do the filter */
if ( val != previousSearch.sSearch ) {
_fnFilterComplete( settings, {
"sSearch": val,
"bRegex": previousSearch.bRegex,
"bSmart": previousSearch.bSmart ,
- "bCaseInsensitive": previousSearch.bCaseInsensitive
+ "bCaseInsensitive": previousSearch.bCaseInsensitive,
+ "return": previousSearch.return
} );
// Need to redraw, without resorting
@@ -4232,7 +4315,7 @@
// on the clear icon (Edge bug 17584515). This is safe in other browsers as `searchFn`
// checks the value to see if it has changed. In other browsers it won't have.
setTimeout( function () {
- searchFn.call(jqFilter[0]);
+ searchFn.call(jqFilter[0], e);
}, 10);
} )
.on( 'keypress.DT', function(e) {
@@ -4278,6 +4361,7 @@
oPrevSearch.bRegex = oFilter.bRegex;
oPrevSearch.bSmart = oFilter.bSmart;
oPrevSearch.bCaseInsensitive = oFilter.bCaseInsensitive;
+ oPrevSearch.return = oFilter.return;
};
var fnRegex = function ( o ) {
// Backwards compatibility with the bEscapeRegex option
@@ -4292,7 +4376,7 @@
if ( _fnDataSource( oSettings ) != 'ssp' )
{
/* Global filter */
- _fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive );
+ _fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive, oInput.return );
fnSaveFilter( oInput );
/* Now do the individual column filter */
@@ -4355,7 +4439,7 @@
* @param {int} iColumn column to filter
* @param {bool} bRegex treat search string as a regular expression or not
* @param {bool} bSmart use smart filtering or not
- * @param {bool} bCaseInsensitive Do case insenstive matching or not
+ * @param {bool} bCaseInsensitive Do case insensitive matching or not
* @memberof DataTable#oApi
*/
function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, caseInsensitive )
@@ -4388,7 +4472,7 @@
* @param {int} force optional - force a research of the master array (1) or not (undefined or 0)
* @param {bool} regex treat as a regular expression or not
* @param {bool} smart perform smart filtering or not
- * @param {bool} caseInsensitive Do case insenstive matching or not
+ * @param {bool} caseInsensitive Do case insensitive matching or not
* @memberof DataTable#oApi
*/
function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
@@ -4494,7 +4578,6 @@
var columns = settings.aoColumns;
var column;
var i, j, ien, jen, filterData, cellData, row;
- var fomatters = DataTable.ext.type.search;
var wasInvalidated = false;
for ( i=0, ien=settings.aoData.length ; i/g, "" );
+ var sTitle = col.ariaTitle || col.sTitle.replace( /<.*?>/g, "" );
var th = col.nTh;
// IE7 is throwing an error when setting these properties with jQuery's
@@ -6306,8 +6382,7 @@
*/
function _fnSaveState ( settings )
{
- if ( !settings.oFeatures.bStateSave || settings.bDestroying )
- {
+ if (settings._bLoadingState) {
return;
}
@@ -6326,10 +6401,13 @@
} )
};
- _fnCallbackFire( settings, "aoStateSaveParams", 'stateSaveParams', [settings, state] );
-
settings.oSavedState = state;
- settings.fnStateSaveCallback.call( settings.oInstance, settings, state );
+ _fnCallbackFire( settings, "aoStateSaveParams", 'stateSaveParams', [settings, state] );
+
+ if ( settings.oFeatures.bStateSave && !settings.bDestroying )
+ {
+ settings.fnStateSaveCallback.call( settings.oInstance, settings, state );
+ }
}
@@ -6342,98 +6420,128 @@
*/
function _fnLoadState ( settings, oInit, callback )
{
+ if ( ! settings.oFeatures.bStateSave ) {
+ callback();
+ return;
+ }
+
+ var loaded = function(state) {
+ _fnImplementState(settings, state, callback);
+ }
+
+ var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
+
+ if ( state !== undefined ) {
+ _fnImplementState( settings, state, callback );
+ }
+ // otherwise, wait for the loaded callback to be executed
+
+ return true;
+ }
+
+ function _fnImplementState ( settings, s, callback) {
var i, ien;
var columns = settings.aoColumns;
- var loaded = function ( s ) {
- if ( ! s || ! s.time ) {
- callback();
- return;
- }
+ settings._bLoadingState = true;
- // Allow custom and plug-in manipulation functions to alter the saved data set and
- // cancelling of loading by returning false
- var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
- if ( $.inArray( false, abStateLoad ) !== -1 ) {
- callback();
- return;
- }
+ // When StateRestore was introduced the state could now be implemented at any time
+ // Not just initialisation. To do this an api instance is required in some places
+ var api = settings._bInitComplete ? new DataTable.Api(settings) : null;
- // Reject old data
- var duration = settings.iStateDuration;
- if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
- callback();
- return;
- }
+ if ( ! s || ! s.time ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
- // Number of columns have changed - all bets are off, no restore of settings
- if ( s.columns && columns.length !== s.columns.length ) {
- callback();
- return;
- }
+ // Allow custom and plug-in manipulation functions to alter the saved data set and
+ // cancelling of loading by returning false
+ var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
+ if ( $.inArray( false, abStateLoad ) !== -1 ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
- // Store the saved state so it might be accessed at any time
- settings.oLoadedState = $.extend( true, {}, s );
+ // Reject old data
+ var duration = settings.iStateDuration;
+ if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
+
+ // Number of columns have changed - all bets are off, no restore of settings
+ if ( s.columns && columns.length !== s.columns.length ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
+
+ // Store the saved state so it might be accessed at any time
+ settings.oLoadedState = $.extend( true, {}, s );
- // Restore key features - todo - for 1.11 this needs to be done by
- // subscribed events
- if ( s.start !== undefined ) {
- settings._iDisplayStart = s.start;
+ // Restore key features - todo - for 1.11 this needs to be done by
+ // subscribed events
+ if ( s.start !== undefined ) {
+ settings._iDisplayStart = s.start;
+ if(api === null) {
settings.iInitDisplayStart = s.start;
}
- if ( s.length !== undefined ) {
- settings._iDisplayLength = s.length;
- }
+ }
+ if ( s.length !== undefined ) {
+ settings._iDisplayLength = s.length;
+ }
- // Order
- if ( s.order !== undefined ) {
- settings.aaSorting = [];
- $.each( s.order, function ( i, col ) {
- settings.aaSorting.push( col[0] >= columns.length ?
- [ 0, col[1] ] :
- col
- );
- } );
- }
+ // Order
+ if ( s.order !== undefined ) {
+ settings.aaSorting = [];
+ $.each( s.order, function ( i, col ) {
+ settings.aaSorting.push( col[0] >= columns.length ?
+ [ 0, col[1] ] :
+ col
+ );
+ } );
+ }
- // Search
- if ( s.search !== undefined ) {
- $.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
- }
+ // Search
+ if ( s.search !== undefined ) {
+ $.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
+ }
- // Columns
- //
- if ( s.columns ) {
- for ( i=0, ien=s.columns.length ; i ').addClass( k );
+ var created = $(' ').addClass( k );
$('td', created)
.addClass( k )
.html( r )
@@ -8267,6 +8393,8 @@
row._detailsShow = undefined;
row._details = undefined;
+ $( row.nTr ).removeClass( 'dt-hasChild' );
+ _fnSaveState( ctx[0] );
}
}
};
@@ -8283,12 +8411,17 @@
if ( show ) {
row._details.insertAfter( row.nTr );
+ $( row.nTr ).addClass( 'dt-hasChild' );
}
else {
row._details.detach();
+ $( row.nTr ).removeClass( 'dt-hasChild' );
}
+ _fnCallbackFire( ctx[0], null, 'childRow', [ show, api.row( api[0] ) ] )
+
__details_events( ctx[0] );
+ _fnSaveState( ctx[0] );
}
}
};
@@ -8726,14 +8859,12 @@
return _selector_first( this.columns( selector, opts ) );
} );
-
-
var __cell_selector = function ( settings, selector, opts )
{
var data = settings.aoData;
var rows = _selector_row_indexes( settings, opts );
var cells = _removeEmpty( _pluck_order( data, rows, 'anCells' ) );
- var allCells = $( [].concat.apply([], cells) );
+ var allCells = $(_flatten( [], cells ));
var row;
var columns = settings.aoColumns.length;
var a, i, ien, j, o, host;
@@ -9005,7 +9136,7 @@
// Simple column / direction passed in
order = [ [ order, dir ] ];
}
- else if ( order.length && ! $.isArray( order[0] ) ) {
+ else if ( order.length && ! Array.isArray( order[0] ) ) {
// Arguments passed in (list of 1D arrays)
order = Array.prototype.slice.call( arguments );
}
@@ -9041,7 +9172,7 @@
ctx[0].aaSortingFixed :
undefined;
- return $.isArray( fixed ) ?
+ return Array.isArray( fixed ) ?
{ pre: fixed } :
fixed;
}
@@ -9501,7 +9632,7 @@
* @type string
* @default Version number
*/
- DataTable.version = "1.10.21";
+ DataTable.version = "1.11.3";
/**
* Private data store, containing all of the settings objects that are
@@ -9561,7 +9692,15 @@
* @type boolean
* @default true
*/
- "bSmart": true
+ "bSmart": true,
+
+ /**
+ * Flag to indicate if DataTables should only trigger a search when
+ * the return key is pressed.
+ * @type boolean
+ * @default false
+ */
+ "return": false
};
@@ -9919,8 +10058,8 @@
* version is still, internally the primary interface, but is is not documented
* - hence the @name tags in each doc comment. This allows a Javascript function
* to create a map from Hungarian notation to camel case (going the other direction
- * would require each property to be listed, which would at around 3K to the size
- * of DataTables, while this method is about a 0.5K hit.
+ * would require each property to be listed, which would add around 3K to the size
+ * of DataTables, while this method is about a 0.5K hit).
*
* Ultimately this does pave the way for Hungarian notation to be dropped
* completely, but that is a massive amount of work and will break current
@@ -12457,7 +12596,7 @@
* "data": function ( source, type, val ) {
* if (type === 'set') {
* source.price = val;
- * // Store the computed dislay and filter values for efficiency
+ * // Store the computed display and filter values for efficiency
* source.price_display = val=="" ? "" : "$"+numberFormat(val);
* source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val;
* return;
@@ -13006,7 +13145,7 @@
* Delay the creation of TR and TD elements until they are actually
* needed by a driven page draw. This can give a significant speed
* increase for Ajax source and Javascript source data, but makes no
- * difference at all fro DOM and server-side processing tables.
+ * difference at all for DOM and server-side processing tables.
* Note that this parameter will be set by the initialisation routine. To
* set a default use {@link DataTable.defaults}.
* @type boolean
@@ -13582,13 +13721,6 @@
*/
"sAjaxDataProp": null,
- /**
- * Note if draw should be blocked while getting data
- * @type boolean
- * @default true
- */
- "bAjaxDataGet": true,
-
/**
* The last jQuery XHR object that was used for server-side data gathering.
* This can be used for working with the XHR information in one of the
@@ -14371,7 +14503,7 @@
//
// Depreciated
- // The following properties are retained for backwards compatiblity only.
+ // The following properties are retained for backwards compatibility only.
// The should not be used in new projects and will be removed in a future
// version
//
@@ -14453,8 +14585,8 @@
"sSortAsc": "sorting_asc",
"sSortDesc": "sorting_desc",
"sSortable": "sorting", /* Sortable in both directions */
- "sSortableAsc": "sorting_asc_disabled",
- "sSortableDesc": "sorting_desc_disabled",
+ "sSortableAsc": "sorting_desc_disabled",
+ "sSortableDesc": "sorting_asc_disabled",
"sSortableNone": "sorting_disabled",
"sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */
@@ -14575,7 +14707,7 @@
for ( i=0, ien=buttons.length ; i ' )
.appendTo( container );
attach( inner, button );
@@ -14620,14 +14752,14 @@
case 'last':
btnDisplay = lang.sLast;
- if ( page === pages-1 ) {
+ if ( pages === 0 || page === pages-1 ) {
tabIndex = -1;
btnClass += ' ' + disabledClass;
}
break;
default:
- btnDisplay = button + 1;
+ btnDisplay = settings.fnFormatNumber( button + 1 );
btnClass = page === button ?
classes.sPageButtonActive : '';
break;
@@ -14895,7 +15027,6 @@
cell
.removeClass(
- column.sSortingClass +' '+
classes.sSortAsc +' '+
classes.sSortDesc
)
@@ -14959,6 +15090,10 @@
*/
var __htmlEscapeEntities = function ( d ) {
+ if (Array.isArray(d)) {
+ d = d.join(',');
+ }
+
return typeof d === 'string' ?
d
.replace(/&/g, '&')
@@ -15020,6 +15155,11 @@
decimal+(d - intPart).toFixed( precision ).substring( 2 ):
'';
+ // If zero, then can't have a negative prefix
+ if (intPart === 0 && parseFloat(floatPart) === 0) {
+ negative = '';
+ }
+
return negative + (prefix||'') +
intPart.toString().replace(
/\B(?=(\d{3})+(?!\d))/g, thousands
@@ -15148,6 +15288,7 @@
_fnSortData: _fnSortData,
_fnSaveState: _fnSaveState,
_fnLoadState: _fnLoadState,
+ _fnImplementState: _fnImplementState,
_fnSettingsFromNode: _fnSettingsFromNode,
_fnLog: _fnLog,
_fnMap: _fnMap,
@@ -15187,168 +15328,5 @@
$.fn.DataTable[ prop ] = val;
} );
-
- // Information about events fired by DataTables - for documentation.
- /**
- * Draw event, fired whenever the table is redrawn on the page, at the same
- * point as fnDrawCallback. This may be useful for binding events or
- * performing calculations when the table is altered at all.
- * @name DataTable#draw.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Search event, fired when the searching applied to the table (using the
- * built-in global search, or column filters) is altered.
- * @name DataTable#search.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Page change event, fired when the paging of the table is altered.
- * @name DataTable#page.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Order event, fired when the ordering applied to the table is altered.
- * @name DataTable#order.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * DataTables initialisation complete event, fired when the table is fully
- * drawn, including Ajax data loaded, if Ajax data is required.
- * @name DataTable#init.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The JSON object request from the server - only
- * present if client-side Ajax sourced data is used
- */
-
- /**
- * State save event, fired when the table has changed state a new state save
- * is required. This event allows modification of the state saving object
- * prior to actually doing the save, including addition or other state
- * properties (for plug-ins) or modification of a DataTables core property.
- * @name DataTable#stateSaveParams.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The state information to be saved
- */
-
- /**
- * State load event, fired when the table is loading state from the stored
- * data, but prior to the settings object being modified by the saved state
- * - allowing modification of the saved state is required or loading of
- * state for a plug-in.
- * @name DataTable#stateLoadParams.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The saved state information
- */
-
- /**
- * State loaded event, fired when state has been loaded from stored data and
- * the settings object has been modified by the loaded data.
- * @name DataTable#stateLoaded.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The saved state information
- */
-
- /**
- * Processing event, fired when DataTables is doing some kind of processing
- * (be it, order, search or anything else). It can be used to indicate to
- * the end user that there is something happening, or that something has
- * finished.
- * @name DataTable#processing.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {boolean} bShow Flag for if DataTables is doing processing or not
- */
-
- /**
- * Ajax (XHR) event, fired whenever an Ajax request is completed from a
- * request to made to the server for new data. This event is called before
- * DataTables processed the returned data, so it can also be used to pre-
- * process the data returned from the server, if needed.
- *
- * Note that this trigger is called in `fnServerData`, if you override
- * `fnServerData` and which to use this event, you need to trigger it in you
- * success function.
- * @name DataTable#xhr.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- * @param {object} json JSON returned from the server
- *
- * @example
- * // Use a custom property returned from the server in another DOM element
- * $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
- * $('#status').html( json.status );
- * } );
- *
- * @example
- * // Pre-process the data returned from the server
- * $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
- * for ( var i=0, ien=json.aaData.length ; i=1.10.25"
+ jquery ">=1.7"
+
+datatables.net@>=1.10.25:
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4"
+ integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ==
dependencies:
- datatables.net "1.10.21"
jquery ">=1.7"
-datatables.net@1.10.21, datatables.net@^1.10.21:
+datatables.net@^1.10.21:
version "1.10.21"
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103"
integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw==
diff --git a/src/EventHub.Web.Theme/EventHub.Web.Theme.csproj b/src/EventHub.Web.Theme/EventHub.Web.Theme.csproj
index f303528..8d2f08e 100644
--- a/src/EventHub.Web.Theme/EventHub.Web.Theme.csproj
+++ b/src/EventHub.Web.Theme/EventHub.Web.Theme.csproj
@@ -30,12 +30,12 @@
-
-
+
+
-
+
diff --git a/src/EventHub.Web/EventHub.Web.csproj b/src/EventHub.Web/EventHub.Web.csproj
index 053a64b..09f802d 100644
--- a/src/EventHub.Web/EventHub.Web.csproj
+++ b/src/EventHub.Web/EventHub.Web.csproj
@@ -23,19 +23,19 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/EventHub.Web/Pages/EventHubPageModel.cs b/src/EventHub.Web/Pages/EventHubPageModel.cs
index 22920eb..95f2c06 100644
--- a/src/EventHub.Web/Pages/EventHubPageModel.cs
+++ b/src/EventHub.Web/Pages/EventHubPageModel.cs
@@ -17,7 +17,11 @@ namespace EventHub.Web.Pages
{
Logger.LogException(exception);
var errorInfoConverter = LazyServiceProvider.LazyGetRequiredService();
- var errorInfo = errorInfoConverter.Convert(exception, false);
+ var errorInfo = errorInfoConverter.Convert(exception, options =>
+ {
+ options.SendExceptionsDetailsToClients = false;
+ options.SendStackTraceToClients = false;
+ });
Alerts.Danger(errorInfo.Message);
}
}
diff --git a/src/EventHub.Web/package.json b/src/EventHub.Web/package.json
index 515bb2c..1e79505 100644
--- a/src/EventHub.Web/package.json
+++ b/src/EventHub.Web/package.json
@@ -3,7 +3,7 @@
"name": "my-app",
"private": true,
"dependencies": {
- "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-beta.3",
+ "@abp/aspnetcore.mvc.ui.theme.basic": "~5.0.0-rc.1",
"daterangepicker": "^3.1.0",
"owl.carousel": "^2.3.4"
}
diff --git a/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css b/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css
deleted file mode 100644
index e54d564..0000000
--- a/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/css/dataTables.bootstrap4.css
+++ /dev/null
@@ -1,212 +0,0 @@
-table.dataTable {
- clear: both;
- margin-top: 6px !important;
- margin-bottom: 6px !important;
- max-width: none !important;
- border-collapse: separate !important;
- border-spacing: 0;
-}
-table.dataTable td,
-table.dataTable th {
- -webkit-box-sizing: content-box;
- box-sizing: content-box;
-}
-table.dataTable td.dataTables_empty,
-table.dataTable th.dataTables_empty {
- text-align: center;
-}
-table.dataTable.nowrap th,
-table.dataTable.nowrap td {
- white-space: nowrap;
-}
-
-div.dataTables_wrapper div.dataTables_length label {
- font-weight: normal;
- text-align: left;
- white-space: nowrap;
-}
-div.dataTables_wrapper div.dataTables_length select {
- width: auto;
- display: inline-block;
-}
-div.dataTables_wrapper div.dataTables_filter {
- text-align: right;
-}
-div.dataTables_wrapper div.dataTables_filter label {
- font-weight: normal;
- white-space: nowrap;
- text-align: left;
-}
-div.dataTables_wrapper div.dataTables_filter input {
- margin-left: 0.5em;
- display: inline-block;
- width: auto;
-}
-div.dataTables_wrapper div.dataTables_info {
- padding-top: 0.85em;
- white-space: nowrap;
-}
-div.dataTables_wrapper div.dataTables_paginate {
- margin: 0;
- white-space: nowrap;
- text-align: right;
-}
-div.dataTables_wrapper div.dataTables_paginate ul.pagination {
- margin: 2px 0;
- white-space: nowrap;
- justify-content: flex-end;
-}
-div.dataTables_wrapper div.dataTables_processing {
- position: absolute;
- top: 50%;
- left: 50%;
- width: 200px;
- margin-left: -100px;
- margin-top: -26px;
- text-align: center;
- padding: 1em 0;
-}
-
-table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting,
-table.dataTable thead > tr > td.sorting_asc,
-table.dataTable thead > tr > td.sorting_desc,
-table.dataTable thead > tr > td.sorting {
- padding-right: 30px;
-}
-table.dataTable thead > tr > th:active,
-table.dataTable thead > tr > td:active {
- outline: none;
-}
-table.dataTable thead .sorting,
-table.dataTable thead .sorting_asc,
-table.dataTable thead .sorting_desc,
-table.dataTable thead .sorting_asc_disabled,
-table.dataTable thead .sorting_desc_disabled {
- cursor: pointer;
- position: relative;
-}
-table.dataTable thead .sorting:before, table.dataTable thead .sorting:after,
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_asc:after,
-table.dataTable thead .sorting_desc:before,
-table.dataTable thead .sorting_desc:after,
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_asc_disabled:after,
-table.dataTable thead .sorting_desc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:after {
- position: absolute;
- bottom: 0.9em;
- display: block;
- opacity: 0.3;
-}
-table.dataTable thead .sorting:before,
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_desc:before,
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:before {
- right: 1em;
- content: "\2191";
-}
-table.dataTable thead .sorting:after,
-table.dataTable thead .sorting_asc:after,
-table.dataTable thead .sorting_desc:after,
-table.dataTable thead .sorting_asc_disabled:after,
-table.dataTable thead .sorting_desc_disabled:after {
- right: 0.5em;
- content: "\2193";
-}
-table.dataTable thead .sorting_asc:before,
-table.dataTable thead .sorting_desc:after {
- opacity: 1;
-}
-table.dataTable thead .sorting_asc_disabled:before,
-table.dataTable thead .sorting_desc_disabled:after {
- opacity: 0;
-}
-
-div.dataTables_scrollHead table.dataTable {
- margin-bottom: 0 !important;
-}
-
-div.dataTables_scrollBody table {
- border-top: none;
- margin-top: 0 !important;
- margin-bottom: 0 !important;
-}
-div.dataTables_scrollBody table thead .sorting:before,
-div.dataTables_scrollBody table thead .sorting_asc:before,
-div.dataTables_scrollBody table thead .sorting_desc:before,
-div.dataTables_scrollBody table thead .sorting:after,
-div.dataTables_scrollBody table thead .sorting_asc:after,
-div.dataTables_scrollBody table thead .sorting_desc:after {
- display: none;
-}
-div.dataTables_scrollBody table tbody tr:first-child th,
-div.dataTables_scrollBody table tbody tr:first-child td {
- border-top: none;
-}
-
-div.dataTables_scrollFoot > .dataTables_scrollFootInner {
- box-sizing: content-box;
-}
-div.dataTables_scrollFoot > .dataTables_scrollFootInner > table {
- margin-top: 0 !important;
- border-top: none;
-}
-
-@media screen and (max-width: 767px) {
- div.dataTables_wrapper div.dataTables_length,
- div.dataTables_wrapper div.dataTables_filter,
- div.dataTables_wrapper div.dataTables_info,
- div.dataTables_wrapper div.dataTables_paginate {
- text-align: center;
- }
- div.dataTables_wrapper div.dataTables_paginate ul.pagination {
- justify-content: center !important;
- }
-}
-table.dataTable.table-sm > thead > tr > th :not(.sorting_disabled) {
- padding-right: 20px;
-}
-table.dataTable.table-sm .sorting:before,
-table.dataTable.table-sm .sorting_asc:before,
-table.dataTable.table-sm .sorting_desc:before {
- top: 5px;
- right: 0.85em;
-}
-table.dataTable.table-sm .sorting:after,
-table.dataTable.table-sm .sorting_asc:after,
-table.dataTable.table-sm .sorting_desc:after {
- top: 5px;
-}
-
-table.table-bordered.dataTable {
- border-right-width: 0;
-}
-table.table-bordered.dataTable th,
-table.table-bordered.dataTable td {
- border-left-width: 0;
-}
-table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child,
-table.table-bordered.dataTable td:last-child,
-table.table-bordered.dataTable td:last-child {
- border-right-width: 1px;
-}
-table.table-bordered.dataTable tbody th,
-table.table-bordered.dataTable tbody td {
- border-bottom-width: 0;
-}
-
-div.dataTables_scrollHead table.table-bordered {
- border-bottom-width: 0;
-}
-
-div.table-responsive > div.dataTables_wrapper > div.row {
- margin: 0;
-}
-div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child {
- padding-left: 0;
-}
-div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child {
- padding-right: 0;
-}
diff --git a/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js b/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js
deleted file mode 100644
index 1db1139..0000000
--- a/src/EventHub.Web/wwwroot/libs/datatables.net-bs4/js/dataTables.bootstrap4.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*! DataTables Bootstrap 4 integration
- * ©2011-2017 SpryMedia Ltd - datatables.net/license
- */
-
-/**
- * DataTables integration for Bootstrap 4. This requires Bootstrap 4 and
- * DataTables 1.10 or newer.
- *
- * This file sets the defaults and adds options to DataTables to style its
- * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap
- * for further information.
- */
-(function( factory ){
- if ( typeof define === 'function' && define.amd ) {
- // AMD
- define( ['jquery', 'datatables.net'], function ( $ ) {
- return factory( $, window, document );
- } );
- }
- else if ( typeof exports === 'object' ) {
- // CommonJS
- module.exports = function (root, $) {
- if ( ! root ) {
- root = window;
- }
-
- if ( ! $ || ! $.fn.dataTable ) {
- // Require DataTables, which attaches to jQuery, including
- // jQuery if needed and have a $ property so we can access the
- // jQuery object that is used
- $ = require('datatables.net')(root, $).$;
- }
-
- return factory( $, root, root.document );
- };
- }
- else {
- // Browser
- factory( jQuery, window, document );
- }
-}(function( $, window, document, undefined ) {
-'use strict';
-var DataTable = $.fn.dataTable;
-
-
-/* Set the defaults for DataTables initialisation */
-$.extend( true, DataTable.defaults, {
- dom:
- "<'row'<'col-sm-12 col-md-6'l><'col-sm-12 col-md-6'f>>" +
- "<'row'<'col-sm-12'tr>>" +
- "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
- renderer: 'bootstrap'
-} );
-
-
-/* Default class modification */
-$.extend( DataTable.ext.classes, {
- sWrapper: "dataTables_wrapper dt-bootstrap4",
- sFilterInput: "form-control form-control-sm",
- sLengthSelect: "custom-select custom-select-sm form-control form-control-sm",
- sProcessing: "dataTables_processing card",
- sPageButton: "paginate_button page-item"
-} );
-
-
-/* Bootstrap paging button renderer */
-DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) {
- var api = new DataTable.Api( settings );
- var classes = settings.oClasses;
- var lang = settings.oLanguage.oPaginate;
- var aria = settings.oLanguage.oAria.paginate || {};
- var btnDisplay, btnClass, counter=0;
-
- var attach = function( container, buttons ) {
- var i, ien, node, button;
- var clickHandler = function ( e ) {
- e.preventDefault();
- if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) {
- api.page( e.data.action ).draw( 'page' );
- }
- };
-
- for ( i=0, ien=buttons.length ; i 0 ?
- '' : ' disabled');
- break;
-
- case 'previous':
- btnDisplay = lang.sPrevious;
- btnClass = button + (page > 0 ?
- '' : ' disabled');
- break;
-
- case 'next':
- btnDisplay = lang.sNext;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- case 'last':
- btnDisplay = lang.sLast;
- btnClass = button + (page < pages-1 ?
- '' : ' disabled');
- break;
-
- default:
- btnDisplay = button + 1;
- btnClass = page === button ?
- 'active' : '';
- break;
- }
-
- if ( btnDisplay ) {
- node = $('', {
- 'class': classes.sPageButton+' '+btnClass,
- 'id': idx === 0 && typeof button === 'string' ?
- settings.sTableId +'_'+ button :
- null
- } )
- .append( $('', {
- 'href': '#',
- 'aria-controls': settings.sTableId,
- 'aria-label': aria[ button ],
- 'data-dt-idx': counter,
- 'tabindex': settings.iTabIndex,
- 'class': 'page-link'
- } )
- .html( btnDisplay )
- )
- .appendTo( container );
-
- settings.oApi._fnBindAction(
- node, {action: button}, clickHandler
- );
-
- counter++;
- }
- }
- }
- };
-
- // IE9 throws an 'unknown error' if document.activeElement is used
- // inside an iframe or frame.
- var activeEl;
-
- try {
- // Because this approach is destroying and recreating the paging
- // elements, focus is lost on the select button which is bad for
- // accessibility. So we want to restore focus once the draw has
- // completed
- activeEl = $(host).find(document.activeElement).data('dt-idx');
- }
- catch (e) {}
-
- attach(
- $(host).empty().html('').children('ul'),
- buttons
- );
-
- if ( activeEl !== undefined ) {
- $(host).find( '[data-dt-idx='+activeEl+']' ).trigger('focus');
- }
-};
-
-
-return DataTable;
-}));
diff --git a/src/EventHub.Web/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css b/src/EventHub.Web/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
index 4a38ffa..3b84bef 100644
--- a/src/EventHub.Web/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
+++ b/src/EventHub.Web/wwwroot/libs/datatables.net-bs5/css/dataTables.bootstrap5.css
@@ -1,4 +1,85 @@
@charset "UTF-8";
+td.dt-control {
+ background: url("https://www.datatables.net/examples/resources/details_open.png") no-repeat center center;
+ cursor: pointer;
+}
+
+tr.dt-hasChild td.dt-control {
+ background: url("https://www.datatables.net/examples/resources/details_close.png") no-repeat center center;
+}
+
+table.dataTable th.dt-left,
+table.dataTable td.dt-left {
+ text-align: left;
+}
+table.dataTable th.dt-center,
+table.dataTable td.dt-center,
+table.dataTable td.dataTables_empty {
+ text-align: center;
+}
+table.dataTable th.dt-right,
+table.dataTable td.dt-right {
+ text-align: right;
+}
+table.dataTable th.dt-justify,
+table.dataTable td.dt-justify {
+ text-align: justify;
+}
+table.dataTable th.dt-nowrap,
+table.dataTable td.dt-nowrap {
+ white-space: nowrap;
+}
+table.dataTable thead th.dt-head-left,
+table.dataTable thead td.dt-head-left,
+table.dataTable tfoot th.dt-head-left,
+table.dataTable tfoot td.dt-head-left {
+ text-align: left;
+}
+table.dataTable thead th.dt-head-center,
+table.dataTable thead td.dt-head-center,
+table.dataTable tfoot th.dt-head-center,
+table.dataTable tfoot td.dt-head-center {
+ text-align: center;
+}
+table.dataTable thead th.dt-head-right,
+table.dataTable thead td.dt-head-right,
+table.dataTable tfoot th.dt-head-right,
+table.dataTable tfoot td.dt-head-right {
+ text-align: right;
+}
+table.dataTable thead th.dt-head-justify,
+table.dataTable thead td.dt-head-justify,
+table.dataTable tfoot th.dt-head-justify,
+table.dataTable tfoot td.dt-head-justify {
+ text-align: justify;
+}
+table.dataTable thead th.dt-head-nowrap,
+table.dataTable thead td.dt-head-nowrap,
+table.dataTable tfoot th.dt-head-nowrap,
+table.dataTable tfoot td.dt-head-nowrap {
+ white-space: nowrap;
+}
+table.dataTable tbody th.dt-body-left,
+table.dataTable tbody td.dt-body-left {
+ text-align: left;
+}
+table.dataTable tbody th.dt-body-center,
+table.dataTable tbody td.dt-body-center {
+ text-align: center;
+}
+table.dataTable tbody th.dt-body-right,
+table.dataTable tbody td.dt-body-right {
+ text-align: right;
+}
+table.dataTable tbody th.dt-body-justify,
+table.dataTable tbody td.dt-body-justify {
+ text-align: justify;
+}
+table.dataTable tbody th.dt-body-nowrap,
+table.dataTable tbody td.dt-body-nowrap {
+ white-space: nowrap;
+}
+
/*! Bootstrap 5 integration for DataTables
*
* ©2020 SpryMedia Ltd, all rights reserved.
@@ -131,21 +212,21 @@ div.dataTables_scrollHead table.dataTable {
margin-bottom: 0 !important;
}
-div.dataTables_scrollBody table {
+div.dataTables_scrollBody > table {
border-top: none;
margin-top: 0 !important;
margin-bottom: 0 !important;
}
-div.dataTables_scrollBody table thead .sorting:before,
-div.dataTables_scrollBody table thead .sorting_asc:before,
-div.dataTables_scrollBody table thead .sorting_desc:before,
-div.dataTables_scrollBody table thead .sorting:after,
-div.dataTables_scrollBody table thead .sorting_asc:after,
-div.dataTables_scrollBody table thead .sorting_desc:after {
+div.dataTables_scrollBody > table > thead .sorting:before,
+div.dataTables_scrollBody > table > thead .sorting_asc:before,
+div.dataTables_scrollBody > table > thead .sorting_desc:before,
+div.dataTables_scrollBody > table > thead .sorting:after,
+div.dataTables_scrollBody > table > thead .sorting_asc:after,
+div.dataTables_scrollBody > table > thead .sorting_desc:after {
display: none;
}
-div.dataTables_scrollBody table tbody tr:first-child th,
-div.dataTables_scrollBody table tbody tr:first-child td {
+div.dataTables_scrollBody > table > tbody tr:first-child th,
+div.dataTables_scrollBody > table > tbody tr:first-child td {
border-top: none;
}
@@ -222,3 +303,10 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first
div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child {
padding-right: 0;
}
+
+table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) {
+ --bs-table-accent-bg: transparent;
+}
+table.dataTable.table-striped > tbody > tr.odd {
+ --bs-table-accent-bg: var(--bs-table-striped-bg);
+}
diff --git a/src/EventHub.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js b/src/EventHub.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js
index aeb7fb9..dad445e 100644
--- a/src/EventHub.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js
+++ b/src/EventHub.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js
@@ -1,15 +1,15 @@
-/*! DataTables 1.10.21
- * ©2008-2020 SpryMedia Ltd - datatables.net/license
+/*! DataTables 1.11.3
+ * ©2008-2021 SpryMedia Ltd - datatables.net/license
*/
/**
* @summary DataTables
* @description Paginate, search and order HTML tables
- * @version 1.10.21
+ * @version 1.11.3
* @file jquery.dataTables.js
* @author SpryMedia Ltd
* @contact www.datatables.net
- * @copyright Copyright 2008-2020 SpryMedia Ltd.
+ * @copyright Copyright 2008-2021 SpryMedia Ltd.
*
* This source file is free software, available under the following license:
* MIT license - http://datatables.net/license
@@ -53,7 +53,7 @@
}
else {
// Browser
- factory( jQuery, window, document );
+ window.DataTable = factory( jQuery, window, document );
}
}
(function( $, window, document, undefined ) {
@@ -91,8 +91,17 @@
* } );
* } );
*/
- var DataTable = function ( options )
+ var DataTable = function ( selector, options )
{
+ // When creating with `new`, create a new DataTable, returning the API instance
+ if (this instanceof DataTable) {
+ return $(selector).DataTable(options);
+ }
+ else {
+ // Argument switching
+ options = selector;
+ }
+
/**
* Perform a jQuery selector action on the table's TR elements (from the tbody) and
* return the resulting jQuery object.
@@ -251,7 +260,7 @@
var api = this.api( true );
/* Check if we want to add multiple rows or not */
- var rows = $.isArray(data) && ( $.isArray(data[0]) || $.isPlainObject(data[0]) ) ?
+ var rows = Array.isArray(data) && ( Array.isArray(data[0]) || $.isPlainObject(data[0]) ) ?
api.rows.add( data ) :
api.row.add( data );
@@ -975,7 +984,7 @@
// If the length menu is given, but the init display length is not, use the length menu
if ( oInit.aLengthMenu && ! oInit.iDisplayLength )
{
- oInit.iDisplayLength = $.isArray( oInit.aLengthMenu[0] ) ?
+ oInit.iDisplayLength = Array.isArray( oInit.aLengthMenu[0] ) ?
oInit.aLengthMenu[0][0] : oInit.aLengthMenu[0];
}
@@ -1066,7 +1075,7 @@
if ( oInit.iDeferLoading !== null )
{
oSettings.bDeferLoading = true;
- var tmp = $.isArray( oInit.iDeferLoading );
+ var tmp = Array.isArray( oInit.iDeferLoading );
oSettings._iRecordsDisplay = tmp ? oInit.iDeferLoading[0] : oInit.iDeferLoading;
oSettings._iRecordsTotal = tmp ? oInit.iDeferLoading[1] : oInit.iDeferLoading;
}
@@ -1085,9 +1094,11 @@
dataType: 'json',
url: oLanguage.sUrl,
success: function ( json ) {
- _fnLanguageCompat( json );
_fnCamelToHungarian( defaults.oLanguage, json );
+ _fnLanguageCompat( json );
$.extend( true, oLanguage, json );
+
+ _fnCallbackFire( oSettings, null, 'i18n', [oSettings]);
_fnInitialise( oSettings );
},
error: function () {
@@ -1097,6 +1108,9 @@
} );
bInitHandedOff = true;
}
+ else {
+ _fnCallbackFire( oSettings, null, 'i18n', [oSettings]);
+ }
/*
* Stripes
@@ -1248,7 +1262,7 @@
var tbody = $this.children('tbody');
if ( tbody.length === 0 ) {
- tbody = $(' ').appendTo($this);
+ tbody = $(' ').insertAfter(thead);
}
oSettings.nTBody = tbody[0];
@@ -1296,10 +1310,11 @@
};
/* Must be done after everything which can be overridden by the state saving! */
+ _fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );
+
if ( oInit.bStateSave )
{
features.bStateSave = true;
- _fnCallbackReg( oSettings, 'aoDrawCallback', _fnSaveState, 'state_save' );
_fnLoadState( oSettings, oInit, loadedInit );
}
else {
@@ -1356,7 +1371,7 @@
// - Ƀ - Bitcoin
// - Ξ - Ethereum
// standards as thousands separators.
- var _re_formatted_numeric = /[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi;
+ var _re_formatted_numeric = /['\u00A0,$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi;
var _empty = function ( d ) {
@@ -1584,6 +1599,52 @@
return out;
};
+ // Surprisingly this is faster than [].concat.apply
+ // https://jsperf.com/flatten-an-array-loop-vs-reduce/2
+ var _flatten = function (out, val) {
+ if (Array.isArray(val)) {
+ for (var i=0 ; itr').attr('role', 'row');
/* Deal with the footer - add classes if required */
- $(thead).find('>tr>th, >tr>td').addClass( classes.sHeaderTH );
- $(tfoot).find('>tr>th, >tr>td').addClass( classes.sFooterTH );
+ $(thead).children('tr').children('th, td').addClass( classes.sHeaderTH );
+ $(tfoot).children('tr').children('th, td').addClass( classes.sFooterTH );
// Cache the footer cells. Note that we only take the cells from the first
// row in the footer. If there is more than one row the user wants to
@@ -3378,9 +3445,10 @@
/**
* Insert the required TR nodes into the table for display
* @param {object} oSettings dataTables settings object
+ * @param ajaxComplete true after ajax call to complete rendering
* @memberof DataTable#oApi
*/
- function _fnDraw( oSettings )
+ function _fnDraw( oSettings, ajaxComplete )
{
/* Provide a pre-callback function which can be used to cancel the draw is false is returned */
var aPreDraw = _fnCallbackFire( oSettings, 'aoPreDrawCallback', 'preDraw', [oSettings] );
@@ -3429,8 +3497,9 @@
{
oSettings.iDraw++;
}
- else if ( !oSettings.bDestroying && !_fnAjaxUpdate( oSettings ) )
+ else if ( !oSettings.bDestroying && !ajaxComplete)
{
+ _fnAjaxUpdate( oSettings );
return;
}
@@ -3834,7 +3903,7 @@
// Convert to object based for 1.10+ if using the old array scheme which can
// come from server-side processing or serverParams
- if ( data && $.isArray(data) ) {
+ if ( data && Array.isArray(data) ) {
var tmp = {};
var rbracket = /(.*?)\[\]$/;
@@ -3861,6 +3930,22 @@
var ajax = oSettings.ajax;
var instance = oSettings.oInstance;
var callback = function ( json ) {
+ var status = oSettings.jqXhr
+ ? oSettings.jqXhr.status
+ : null;
+
+ if ( json === null || (typeof status === 'number' && status == 204 ) ) {
+ json = {};
+ _fnAjaxDataSrc( oSettings, json, [] );
+ }
+
+ var error = json.error || json.sError;
+ if ( error ) {
+ _fnLog( oSettings, 0, error );
+ }
+
+ oSettings.json = json;
+
_fnCallbackFire( oSettings, null, 'xhr', [oSettings, json, oSettings.jqXHR] );
fn( json );
};
@@ -3885,15 +3970,7 @@
var baseAjax = {
"data": data,
- "success": function (json) {
- var error = json.error || json.sError;
- if ( error ) {
- _fnLog( oSettings, 0, error );
- }
-
- oSettings.json = json;
- callback( json );
- },
+ "success": callback,
"dataType": "json",
"cache": false,
"type": oSettings.sServerMethod,
@@ -3962,21 +4039,16 @@
*/
function _fnAjaxUpdate( settings )
{
- if ( settings.bAjaxDataGet ) {
- settings.iDraw++;
- _fnProcessingDisplay( settings, true );
-
- _fnBuildAjax(
- settings,
- _fnAjaxParameters( settings ),
- function(json) {
- _fnAjaxUpdateDraw( settings, json );
- }
- );
+ settings.iDraw++;
+ _fnProcessingDisplay( settings, true );
- return false;
- }
- return true;
+ _fnBuildAjax(
+ settings,
+ _fnAjaxParameters( settings ),
+ function(json) {
+ _fnAjaxUpdateDraw( settings, json );
+ }
+ );
}
@@ -4120,6 +4192,11 @@
settings.iDraw = draw * 1;
}
+ // No data in returned object, so rather than an array, we show an empty table
+ if ( ! data ) {
+ data = [];
+ }
+
_fnClearTable( settings );
settings._iRecordsTotal = parseInt(recordsTotal, 10);
settings._iRecordsDisplay = parseInt(recordsFiltered, 10);
@@ -4129,14 +4206,12 @@
}
settings.aiDisplay = settings.aiDisplayMaster.slice();
- settings.bAjaxDataGet = false;
- _fnDraw( settings );
+ _fnDraw( settings, true );
if ( ! settings._bInitComplete ) {
_fnInitComplete( settings, json );
}
- settings.bAjaxDataGet = true;
_fnProcessingDisplay( settings, false );
}
@@ -4149,21 +4224,26 @@
* @param {object} json Data source object / array from the server
* @return {array} Array of data to use
*/
- function _fnAjaxDataSrc ( oSettings, json )
- {
+ function _fnAjaxDataSrc ( oSettings, json, write )
+ {
var dataSrc = $.isPlainObject( oSettings.ajax ) && oSettings.ajax.dataSrc !== undefined ?
oSettings.ajax.dataSrc :
oSettings.sAjaxDataProp; // Compatibility with 1.9-.
- // Compatibility with 1.9-. In order to read from aaData, check if the
- // default has been changed, if not, check for aaData
- if ( dataSrc === 'data' ) {
- return json.aaData || json[dataSrc];
+ if ( ! write ) {
+ if ( dataSrc === 'data' ) {
+ // If the default, then we still want to support the old style, and safely ignore
+ // it if possible
+ return json.aaData || json[dataSrc];
+ }
+
+ return dataSrc !== "" ?
+ _fnGetObjectDataFn( dataSrc )( json ) :
+ json;
}
- return dataSrc !== "" ?
- _fnGetObjectDataFn( dataSrc )( json ) :
- json;
+ // set
+ _fnSetObjectDataFn( dataSrc )( json, write );
}
/**
@@ -4192,18 +4272,21 @@
} )
.append( $(' ' ).append( str ) );
- var searchFn = function() {
+ var searchFn = function(event) {
/* Update all other filter input elements for the new display */
var n = features.f;
var val = !this.value ? "" : this.value; // mental IE8 fix :-(
-
+ if(previousSearch.return && event.key !== "Enter") {
+ return;
+ }
/* Now do the filter */
if ( val != previousSearch.sSearch ) {
_fnFilterComplete( settings, {
"sSearch": val,
"bRegex": previousSearch.bRegex,
"bSmart": previousSearch.bSmart ,
- "bCaseInsensitive": previousSearch.bCaseInsensitive
+ "bCaseInsensitive": previousSearch.bCaseInsensitive,
+ "return": previousSearch.return
} );
// Need to redraw, without resorting
@@ -4232,7 +4315,7 @@
// on the clear icon (Edge bug 17584515). This is safe in other browsers as `searchFn`
// checks the value to see if it has changed. In other browsers it won't have.
setTimeout( function () {
- searchFn.call(jqFilter[0]);
+ searchFn.call(jqFilter[0], e);
}, 10);
} )
.on( 'keypress.DT', function(e) {
@@ -4278,6 +4361,7 @@
oPrevSearch.bRegex = oFilter.bRegex;
oPrevSearch.bSmart = oFilter.bSmart;
oPrevSearch.bCaseInsensitive = oFilter.bCaseInsensitive;
+ oPrevSearch.return = oFilter.return;
};
var fnRegex = function ( o ) {
// Backwards compatibility with the bEscapeRegex option
@@ -4292,7 +4376,7 @@
if ( _fnDataSource( oSettings ) != 'ssp' )
{
/* Global filter */
- _fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive );
+ _fnFilter( oSettings, oInput.sSearch, iForce, fnRegex(oInput), oInput.bSmart, oInput.bCaseInsensitive, oInput.return );
fnSaveFilter( oInput );
/* Now do the individual column filter */
@@ -4355,7 +4439,7 @@
* @param {int} iColumn column to filter
* @param {bool} bRegex treat search string as a regular expression or not
* @param {bool} bSmart use smart filtering or not
- * @param {bool} bCaseInsensitive Do case insenstive matching or not
+ * @param {bool} bCaseInsensitive Do case insensitive matching or not
* @memberof DataTable#oApi
*/
function _fnFilterColumn ( settings, searchStr, colIdx, regex, smart, caseInsensitive )
@@ -4388,7 +4472,7 @@
* @param {int} force optional - force a research of the master array (1) or not (undefined or 0)
* @param {bool} regex treat as a regular expression or not
* @param {bool} smart perform smart filtering or not
- * @param {bool} caseInsensitive Do case insenstive matching or not
+ * @param {bool} caseInsensitive Do case insensitive matching or not
* @memberof DataTable#oApi
*/
function _fnFilter( settings, input, force, regex, smart, caseInsensitive )
@@ -4494,7 +4578,6 @@
var columns = settings.aoColumns;
var column;
var i, j, ien, jen, filterData, cellData, row;
- var fomatters = DataTable.ext.type.search;
var wasInvalidated = false;
for ( i=0, ien=settings.aoData.length ; i/g, "" );
+ var sTitle = col.ariaTitle || col.sTitle.replace( /<.*?>/g, "" );
var th = col.nTh;
// IE7 is throwing an error when setting these properties with jQuery's
@@ -6306,8 +6382,7 @@
*/
function _fnSaveState ( settings )
{
- if ( !settings.oFeatures.bStateSave || settings.bDestroying )
- {
+ if (settings._bLoadingState) {
return;
}
@@ -6326,10 +6401,13 @@
} )
};
- _fnCallbackFire( settings, "aoStateSaveParams", 'stateSaveParams', [settings, state] );
-
settings.oSavedState = state;
- settings.fnStateSaveCallback.call( settings.oInstance, settings, state );
+ _fnCallbackFire( settings, "aoStateSaveParams", 'stateSaveParams', [settings, state] );
+
+ if ( settings.oFeatures.bStateSave && !settings.bDestroying )
+ {
+ settings.fnStateSaveCallback.call( settings.oInstance, settings, state );
+ }
}
@@ -6342,98 +6420,128 @@
*/
function _fnLoadState ( settings, oInit, callback )
{
+ if ( ! settings.oFeatures.bStateSave ) {
+ callback();
+ return;
+ }
+
+ var loaded = function(state) {
+ _fnImplementState(settings, state, callback);
+ }
+
+ var state = settings.fnStateLoadCallback.call( settings.oInstance, settings, loaded );
+
+ if ( state !== undefined ) {
+ _fnImplementState( settings, state, callback );
+ }
+ // otherwise, wait for the loaded callback to be executed
+
+ return true;
+ }
+
+ function _fnImplementState ( settings, s, callback) {
var i, ien;
var columns = settings.aoColumns;
- var loaded = function ( s ) {
- if ( ! s || ! s.time ) {
- callback();
- return;
- }
+ settings._bLoadingState = true;
- // Allow custom and plug-in manipulation functions to alter the saved data set and
- // cancelling of loading by returning false
- var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
- if ( $.inArray( false, abStateLoad ) !== -1 ) {
- callback();
- return;
- }
+ // When StateRestore was introduced the state could now be implemented at any time
+ // Not just initialisation. To do this an api instance is required in some places
+ var api = settings._bInitComplete ? new DataTable.Api(settings) : null;
- // Reject old data
- var duration = settings.iStateDuration;
- if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
- callback();
- return;
- }
+ if ( ! s || ! s.time ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
- // Number of columns have changed - all bets are off, no restore of settings
- if ( s.columns && columns.length !== s.columns.length ) {
- callback();
- return;
- }
+ // Allow custom and plug-in manipulation functions to alter the saved data set and
+ // cancelling of loading by returning false
+ var abStateLoad = _fnCallbackFire( settings, 'aoStateLoadParams', 'stateLoadParams', [settings, s] );
+ if ( $.inArray( false, abStateLoad ) !== -1 ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
- // Store the saved state so it might be accessed at any time
- settings.oLoadedState = $.extend( true, {}, s );
+ // Reject old data
+ var duration = settings.iStateDuration;
+ if ( duration > 0 && s.time < +new Date() - (duration*1000) ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
+
+ // Number of columns have changed - all bets are off, no restore of settings
+ if ( s.columns && columns.length !== s.columns.length ) {
+ settings._bLoadingState = false;
+ callback();
+ return;
+ }
+
+ // Store the saved state so it might be accessed at any time
+ settings.oLoadedState = $.extend( true, {}, s );
- // Restore key features - todo - for 1.11 this needs to be done by
- // subscribed events
- if ( s.start !== undefined ) {
- settings._iDisplayStart = s.start;
+ // Restore key features - todo - for 1.11 this needs to be done by
+ // subscribed events
+ if ( s.start !== undefined ) {
+ settings._iDisplayStart = s.start;
+ if(api === null) {
settings.iInitDisplayStart = s.start;
}
- if ( s.length !== undefined ) {
- settings._iDisplayLength = s.length;
- }
+ }
+ if ( s.length !== undefined ) {
+ settings._iDisplayLength = s.length;
+ }
- // Order
- if ( s.order !== undefined ) {
- settings.aaSorting = [];
- $.each( s.order, function ( i, col ) {
- settings.aaSorting.push( col[0] >= columns.length ?
- [ 0, col[1] ] :
- col
- );
- } );
- }
+ // Order
+ if ( s.order !== undefined ) {
+ settings.aaSorting = [];
+ $.each( s.order, function ( i, col ) {
+ settings.aaSorting.push( col[0] >= columns.length ?
+ [ 0, col[1] ] :
+ col
+ );
+ } );
+ }
- // Search
- if ( s.search !== undefined ) {
- $.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
- }
+ // Search
+ if ( s.search !== undefined ) {
+ $.extend( settings.oPreviousSearch, _fnSearchToHung( s.search ) );
+ }
- // Columns
- //
- if ( s.columns ) {
- for ( i=0, ien=s.columns.length ; i ').addClass( k );
+ var created = $(' ').addClass( k );
$('td', created)
.addClass( k )
.html( r )
@@ -8267,6 +8393,8 @@
row._detailsShow = undefined;
row._details = undefined;
+ $( row.nTr ).removeClass( 'dt-hasChild' );
+ _fnSaveState( ctx[0] );
}
}
};
@@ -8283,12 +8411,17 @@
if ( show ) {
row._details.insertAfter( row.nTr );
+ $( row.nTr ).addClass( 'dt-hasChild' );
}
else {
row._details.detach();
+ $( row.nTr ).removeClass( 'dt-hasChild' );
}
+ _fnCallbackFire( ctx[0], null, 'childRow', [ show, api.row( api[0] ) ] )
+
__details_events( ctx[0] );
+ _fnSaveState( ctx[0] );
}
}
};
@@ -8726,14 +8859,12 @@
return _selector_first( this.columns( selector, opts ) );
} );
-
-
var __cell_selector = function ( settings, selector, opts )
{
var data = settings.aoData;
var rows = _selector_row_indexes( settings, opts );
var cells = _removeEmpty( _pluck_order( data, rows, 'anCells' ) );
- var allCells = $( [].concat.apply([], cells) );
+ var allCells = $(_flatten( [], cells ));
var row;
var columns = settings.aoColumns.length;
var a, i, ien, j, o, host;
@@ -9005,7 +9136,7 @@
// Simple column / direction passed in
order = [ [ order, dir ] ];
}
- else if ( order.length && ! $.isArray( order[0] ) ) {
+ else if ( order.length && ! Array.isArray( order[0] ) ) {
// Arguments passed in (list of 1D arrays)
order = Array.prototype.slice.call( arguments );
}
@@ -9041,7 +9172,7 @@
ctx[0].aaSortingFixed :
undefined;
- return $.isArray( fixed ) ?
+ return Array.isArray( fixed ) ?
{ pre: fixed } :
fixed;
}
@@ -9501,7 +9632,7 @@
* @type string
* @default Version number
*/
- DataTable.version = "1.10.21";
+ DataTable.version = "1.11.3";
/**
* Private data store, containing all of the settings objects that are
@@ -9561,7 +9692,15 @@
* @type boolean
* @default true
*/
- "bSmart": true
+ "bSmart": true,
+
+ /**
+ * Flag to indicate if DataTables should only trigger a search when
+ * the return key is pressed.
+ * @type boolean
+ * @default false
+ */
+ "return": false
};
@@ -9919,8 +10058,8 @@
* version is still, internally the primary interface, but is is not documented
* - hence the @name tags in each doc comment. This allows a Javascript function
* to create a map from Hungarian notation to camel case (going the other direction
- * would require each property to be listed, which would at around 3K to the size
- * of DataTables, while this method is about a 0.5K hit.
+ * would require each property to be listed, which would add around 3K to the size
+ * of DataTables, while this method is about a 0.5K hit).
*
* Ultimately this does pave the way for Hungarian notation to be dropped
* completely, but that is a massive amount of work and will break current
@@ -12457,7 +12596,7 @@
* "data": function ( source, type, val ) {
* if (type === 'set') {
* source.price = val;
- * // Store the computed dislay and filter values for efficiency
+ * // Store the computed display and filter values for efficiency
* source.price_display = val=="" ? "" : "$"+numberFormat(val);
* source.price_filter = val=="" ? "" : "$"+numberFormat(val)+" "+val;
* return;
@@ -13006,7 +13145,7 @@
* Delay the creation of TR and TD elements until they are actually
* needed by a driven page draw. This can give a significant speed
* increase for Ajax source and Javascript source data, but makes no
- * difference at all fro DOM and server-side processing tables.
+ * difference at all for DOM and server-side processing tables.
* Note that this parameter will be set by the initialisation routine. To
* set a default use {@link DataTable.defaults}.
* @type boolean
@@ -13582,13 +13721,6 @@
*/
"sAjaxDataProp": null,
- /**
- * Note if draw should be blocked while getting data
- * @type boolean
- * @default true
- */
- "bAjaxDataGet": true,
-
/**
* The last jQuery XHR object that was used for server-side data gathering.
* This can be used for working with the XHR information in one of the
@@ -14371,7 +14503,7 @@
//
// Depreciated
- // The following properties are retained for backwards compatiblity only.
+ // The following properties are retained for backwards compatibility only.
// The should not be used in new projects and will be removed in a future
// version
//
@@ -14453,8 +14585,8 @@
"sSortAsc": "sorting_asc",
"sSortDesc": "sorting_desc",
"sSortable": "sorting", /* Sortable in both directions */
- "sSortableAsc": "sorting_asc_disabled",
- "sSortableDesc": "sorting_desc_disabled",
+ "sSortableAsc": "sorting_desc_disabled",
+ "sSortableDesc": "sorting_asc_disabled",
"sSortableNone": "sorting_disabled",
"sSortColumn": "sorting_", /* Note that an int is postfixed for the sorting order */
@@ -14575,7 +14707,7 @@
for ( i=0, ien=buttons.length ; i ' )
.appendTo( container );
attach( inner, button );
@@ -14620,14 +14752,14 @@
case 'last':
btnDisplay = lang.sLast;
- if ( page === pages-1 ) {
+ if ( pages === 0 || page === pages-1 ) {
tabIndex = -1;
btnClass += ' ' + disabledClass;
}
break;
default:
- btnDisplay = button + 1;
+ btnDisplay = settings.fnFormatNumber( button + 1 );
btnClass = page === button ?
classes.sPageButtonActive : '';
break;
@@ -14895,7 +15027,6 @@
cell
.removeClass(
- column.sSortingClass +' '+
classes.sSortAsc +' '+
classes.sSortDesc
)
@@ -14959,6 +15090,10 @@
*/
var __htmlEscapeEntities = function ( d ) {
+ if (Array.isArray(d)) {
+ d = d.join(',');
+ }
+
return typeof d === 'string' ?
d
.replace(/&/g, '&')
@@ -15020,6 +15155,11 @@
decimal+(d - intPart).toFixed( precision ).substring( 2 ):
'';
+ // If zero, then can't have a negative prefix
+ if (intPart === 0 && parseFloat(floatPart) === 0) {
+ negative = '';
+ }
+
return negative + (prefix||'') +
intPart.toString().replace(
/\B(?=(\d{3})+(?!\d))/g, thousands
@@ -15148,6 +15288,7 @@
_fnSortData: _fnSortData,
_fnSaveState: _fnSaveState,
_fnLoadState: _fnLoadState,
+ _fnImplementState: _fnImplementState,
_fnSettingsFromNode: _fnSettingsFromNode,
_fnLog: _fnLog,
_fnMap: _fnMap,
@@ -15187,168 +15328,5 @@
$.fn.DataTable[ prop ] = val;
} );
-
- // Information about events fired by DataTables - for documentation.
- /**
- * Draw event, fired whenever the table is redrawn on the page, at the same
- * point as fnDrawCallback. This may be useful for binding events or
- * performing calculations when the table is altered at all.
- * @name DataTable#draw.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Search event, fired when the searching applied to the table (using the
- * built-in global search, or column filters) is altered.
- * @name DataTable#search.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Page change event, fired when the paging of the table is altered.
- * @name DataTable#page.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * Order event, fired when the ordering applied to the table is altered.
- * @name DataTable#order.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- */
-
- /**
- * DataTables initialisation complete event, fired when the table is fully
- * drawn, including Ajax data loaded, if Ajax data is required.
- * @name DataTable#init.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The JSON object request from the server - only
- * present if client-side Ajax sourced data is used
- */
-
- /**
- * State save event, fired when the table has changed state a new state save
- * is required. This event allows modification of the state saving object
- * prior to actually doing the save, including addition or other state
- * properties (for plug-ins) or modification of a DataTables core property.
- * @name DataTable#stateSaveParams.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The state information to be saved
- */
-
- /**
- * State load event, fired when the table is loading state from the stored
- * data, but prior to the settings object being modified by the saved state
- * - allowing modification of the saved state is required or loading of
- * state for a plug-in.
- * @name DataTable#stateLoadParams.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The saved state information
- */
-
- /**
- * State loaded event, fired when state has been loaded from stored data and
- * the settings object has been modified by the loaded data.
- * @name DataTable#stateLoaded.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {object} json The saved state information
- */
-
- /**
- * Processing event, fired when DataTables is doing some kind of processing
- * (be it, order, search or anything else). It can be used to indicate to
- * the end user that there is something happening, or that something has
- * finished.
- * @name DataTable#processing.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} oSettings DataTables settings object
- * @param {boolean} bShow Flag for if DataTables is doing processing or not
- */
-
- /**
- * Ajax (XHR) event, fired whenever an Ajax request is completed from a
- * request to made to the server for new data. This event is called before
- * DataTables processed the returned data, so it can also be used to pre-
- * process the data returned from the server, if needed.
- *
- * Note that this trigger is called in `fnServerData`, if you override
- * `fnServerData` and which to use this event, you need to trigger it in you
- * success function.
- * @name DataTable#xhr.dt
- * @event
- * @param {event} e jQuery event object
- * @param {object} o DataTables settings object {@link DataTable.models.oSettings}
- * @param {object} json JSON returned from the server
- *
- * @example
- * // Use a custom property returned from the server in another DOM element
- * $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
- * $('#status').html( json.status );
- * } );
- *
- * @example
- * // Pre-process the data returned from the server
- * $('#table').dataTable().on('xhr.dt', function (e, settings, json) {
- * for ( var i=0, ien=json.aaData.length ; i=1.10.25"
+ jquery ">=1.7"
+
+datatables.net@>=1.10.25:
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4"
+ integrity sha512-VMj5qEaTebpNurySkM6jy6sGpl+s6onPK8xJhYr296R/vUBnz1+id16NVqNf9z5aR076OGcpGHCuiTuy4E05oQ==
dependencies:
- datatables.net "1.10.21"
jquery ">=1.7"
-datatables.net@1.10.21, datatables.net@^1.10.21:
+datatables.net@^1.10.21:
version "1.10.21"
resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103"
integrity sha512-/bSZtxmf3GTpYcvEmwZ8q26I1yhSx8qklR2B+s1K8+/51UW/zc2zTYwJMqr/Z+iCYixAc00ildj4g2x0Qamolw==
diff --git a/test/EventHub.EntityFrameworkCore.Tests/EventHub.EntityFrameworkCore.Tests.csproj b/test/EventHub.EntityFrameworkCore.Tests/EventHub.EntityFrameworkCore.Tests.csproj
index 58ac93d..c49b385 100644
--- a/test/EventHub.EntityFrameworkCore.Tests/EventHub.EntityFrameworkCore.Tests.csproj
+++ b/test/EventHub.EntityFrameworkCore.Tests/EventHub.EntityFrameworkCore.Tests.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/test/EventHub.TestBase/EventHub.TestBase.csproj b/test/EventHub.TestBase/EventHub.TestBase.csproj
index 85606b6..cd30f58 100644
--- a/test/EventHub.TestBase/EventHub.TestBase.csproj
+++ b/test/EventHub.TestBase/EventHub.TestBase.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+