From add4234635dfe4a0cbb010a7efd45d955c024dd3 Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 7 Jul 2023 20:55:19 +0800 Subject: [PATCH 1/3] RRegister `ajax.reloadEx()` method to Datatables. --- .../datatables/datatables-extensions.js | 33 +++++++++++++------ .../Pages/Blogging/Admin/Blogs/index.js | 8 ++--- .../Pages/CmsKit/BlogPosts/index.js | 12 +++---- .../Pages/CmsKit/Blogs/index.js | 6 ++-- .../Pages/CmsKit/Comments/details.js | 6 ++-- .../Pages/CmsKit/Comments/index.js | 6 ++-- .../Pages/CmsKit/Pages/index.js | 6 ++-- .../Pages/CmsKit/Tags/Index.js | 6 ++-- .../Pages/Docs/Admin/Documents/index.js | 8 ++--- .../Pages/Docs/Admin/Projects/index.js | 8 ++--- .../Pages/Identity/Roles/index.js | 6 ++-- .../Pages/Identity/Users/index.js | 6 ++-- .../Pages/TenantManagement/Tenants/Index.js | 6 ++-- 13 files changed, 65 insertions(+), 52 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index 745d4f4258..06af884905 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -72,7 +72,7 @@ var abp = abp || {}; }; var _createButtonDropdown = function (record, field, tableInstance) { - if(field.items.length === 1) { + if (field.items.length === 1) { var firstItem = field.items[0]; if (!getVisibilityValue(firstItem.visible, record, tableInstance)) { return ""; @@ -174,7 +174,7 @@ var abp = abp || {}; $dropdownButton.prependTo($container); - if(bootstrap){ + if (bootstrap) { new bootstrap.Dropdown($dropdownButton, { popperConfig(defaultBsPopperConfig) { defaultBsPopperConfig.strategy = "fixed"; @@ -329,6 +329,19 @@ var abp = abp || {}; } }); + $.fn.dataTable.Api.register('ajax.reloadEx()', function (callback, resetPaging) { + var table = this; + if (callback || resetPaging) { + table.ajax.reload(callback, resetPaging); + return; + } + table.ajax.reload(function (data) { + if (data.data.length <= 0) { + table.page(0).draw(false); + } + }, false); + }); + })(); /************************************************************************ @@ -336,7 +349,7 @@ var abp = abp || {}; *************************************************************************/ (function () { datatables.createAjax = function (serverMethod, inputAction, responseCallback, cancelPreviousRequest) { - responseCallback = responseCallback || function(result) { + responseCallback = responseCallback || function (result) { return { recordsTotal: result.totalCount, recordsFiltered: result.totalCount, @@ -374,7 +387,7 @@ var abp = abp || {}; } //Text filter - if(settings.oInit.searching !== false){ + if (settings.oInit.searching !== false) { if (requestData.search && requestData.search.value !== "") { input.filter = requestData.search.value; } else { @@ -383,7 +396,7 @@ var abp = abp || {}; } if (callback) { - if(cancelPreviousRequest && promise && promise.jqXHR) { + if (cancelPreviousRequest && promise && promise.jqXHR) { promise.jqXHR.abort(); } promise = serverMethod(input); @@ -440,7 +453,7 @@ var abp = abp || {}; configuration.language = datatables.defaultConfigurations.language(); - if(!configuration.dom){ + if (!configuration.dom) { configuration.dom = datatables.defaultConfigurations.dom; } @@ -454,7 +467,7 @@ var abp = abp || {}; datatables.defaultRenderers = datatables.defaultRenderers || {}; - datatables.defaultRenderers['boolean'] = function(value) { + datatables.defaultRenderers['boolean'] = function (value) { if (value) { return ''; } else { @@ -463,7 +476,7 @@ var abp = abp || {}; }; var ISOStringToDateTimeLocaleString = function (format) { - return function(data) { + return function (data) { var date = luxon .DateTime .fromISO(data, { @@ -474,7 +487,7 @@ var abp = abp || {}; }; datatables.defaultRenderers['date'] = function (value) { - if(!value) { + if (!value) { return value; } else { return (ISOStringToDateTimeLocaleString())(value); @@ -482,7 +495,7 @@ var abp = abp || {}; }; datatables.defaultRenderers['datetime'] = function (value) { - if(!value) { + if (!value) { return value; } else { return (ISOStringToDateTimeLocaleString(luxon.DateTime.DATETIME_SHORT))(value); diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js index 5c75af8dd0..de70a0ba55 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/index.js @@ -48,7 +48,7 @@ $(function () { volo.blogging.admin.blogManagement .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); }, @@ -65,7 +65,7 @@ $(function () { volo.blogging.admin.blogManagement .clearCache(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }) } } @@ -98,10 +98,10 @@ $(function () { }); _createModal.onClose(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); _editModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); }); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js index 764a56f713..164ec2d2ae 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js @@ -58,7 +58,7 @@ $(function () { blogsService .publish(data.record.id) .then(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyPublished')); checkHasBlogPostWaitingForReview(); }); @@ -77,7 +77,7 @@ $(function () { blogsService .sendToReview(data.record.id) .then(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); abp.notify.success(l('BlogPostSendToReviewSuccessMessage', data.record.title)); }); } @@ -94,7 +94,7 @@ $(function () { blogsService .draft(data.record.id) .then(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullySaved')); checkHasBlogPostWaitingForReview(); }); @@ -110,7 +110,7 @@ $(function () { blogsService .delete(data.record.id) .then(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); } @@ -152,7 +152,7 @@ $(function () { $('#CmsKitBlogPostsWrapper form.page-search-form').submit(function (e) { e.preventDefault(); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=CreateBlogPost]').on('click', function (e) { @@ -163,7 +163,7 @@ $(function () { $('#button-show-waiting-for-review').on('click', function (e) { e.preventDefault(); $statusFilter.val(blogPostStatus.SendToReview); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); function checkHasBlogPostWaitingForReview(){ diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js index be42901967..68595651af 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Blogs/index.js @@ -48,7 +48,7 @@ $(function () { blogsService .delete(data.record.id) .then(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); } @@ -75,10 +75,10 @@ $(function () { }); createModal.onResult(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); updateModal.onResult(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); }); \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js index 6d211ec636..5bcb664846 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js @@ -74,7 +74,7 @@ $(function (){ commentsService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); } @@ -137,11 +137,11 @@ $(function (){ $(inputSelector).val(value); - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); filterForm.submit(function (e){ e.preventDefault(); - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); }); \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js index e9180736dd..f8a40598d2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js @@ -82,7 +82,7 @@ $(function (){ commentsService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); } @@ -167,11 +167,11 @@ $(function (){ $(inputSelector).val(value); - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); filterForm.submit(function (e){ e.preventDefault(); - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); }); \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js index 730c9b6b30..a2792ec069 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Pages/index.js @@ -42,7 +42,7 @@ $(function () { pagesService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); } @@ -55,7 +55,7 @@ $(function () { .setAsHomePage(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); data.record.isHomePage ? abp.notify.warn(l('RemovedSettingAsHomePage')) : abp.notify.success(l('CompletedSettingAsHomePage')); @@ -97,7 +97,7 @@ $(function () { $('#CmsKitPagesWrapper form.page-search-form').submit(function (e) { e.preventDefault(); - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=CreatePage]').on('click', function (e) { diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Index.js index 25f4fd7b57..8a7234d0e3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Tags/Index.js @@ -63,7 +63,7 @@ $(function () { $('#CmsKitTagsWrapper form.page-search-form').on('submit', function (e) { e.preventDefault(); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=NewButton]').on('click', function (e) { @@ -72,10 +72,10 @@ $(function () { }); createModal.onResult(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); updateModal.onResult(function () { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); }); \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js index e70086b133..395ef8587e 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js @@ -182,7 +182,7 @@ $(function () { .removeFromCache(data.record.id) .then(function () { abp.notify.success(l('RemovedFromCache')); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); }, }, @@ -200,7 +200,7 @@ $(function () { .reindex(data.record.id) .then(function () { abp.message.success(l('ReindexCompleted')); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); }, } @@ -281,13 +281,13 @@ $(function () { $("#FilterForm input[type='text']").keypress(function (e) { if (e.which === 13) { - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); } }); $('#SearchButton').click(function (e) { e.preventDefault(); - dataTable.ajax.reload(); + dataTable.ajax.reloadEx(); }); $("#AdvancedFilterSectionToggler").click(function (e) { diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js index 463fd60f50..578c2ca95c 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js @@ -56,7 +56,7 @@ $(function () { volo.docs.admin.projectsAdmin .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); }, @@ -89,7 +89,7 @@ $(function () { projectId: data.record.id, }) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); }, }, @@ -168,10 +168,10 @@ $(function () { }); _createModal.onClose(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); _editModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); }); diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js index b2093e1e4e..4d92d3d2d3 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Roles/index.js @@ -62,7 +62,7 @@ _identityRoleAppService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); }, @@ -128,11 +128,11 @@ ); _createModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); _editModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=CreateRole]').click(function (e) { diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js index 26b2e1ce36..4ec050bf18 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js +++ b/modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/index.js @@ -96,7 +96,7 @@ _identityUserAppService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); }, @@ -163,11 +163,11 @@ ); _createModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); _editModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=CreateUser]').click(function (e) { diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js index d1cbbf6bdc..2dc527e8e0 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Pages/TenantManagement/Tenants/Index.js @@ -56,7 +56,7 @@ _tenantAppService .delete(data.record.id) .then(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); abp.notify.success(l('SuccessfullyDeleted')); }); }, @@ -102,11 +102,11 @@ ); _createModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); _editModal.onResult(function () { - _dataTable.ajax.reload(); + _dataTable.ajax.reloadEx(); }); $('#AbpContentToolbar button[name=CreateTenant]').click(function (e) { From 51335418e11af674261956ba13b653b4d2e8d6dc Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 9 Jul 2023 15:32:03 +0800 Subject: [PATCH 2/3] Go to previous page if current page is empty. --- .../datatables/datatables-extensions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js index 06af884905..19a109b884 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/wwwroot/libs/abp/aspnetcore-mvc-ui-theme-shared/datatables/datatables-extensions.js @@ -336,8 +336,8 @@ var abp = abp || {}; return; } table.ajax.reload(function (data) { - if (data.data.length <= 0) { - table.page(0).draw(false); + if (data.data.length <= 0 && table.page.info().pages > 0) { + table.page(table.page.info().pages - 1).draw(false); } }, false); }); From 1a348b165fa6db7e34f1bc1ba28c6957f603e850 Mon Sep 17 00:00:00 2001 From: Enis Necipoglu Date: Tue, 11 Jul 2023 08:24:46 +0300 Subject: [PATCH 3/3] Fix code section visibility on PageHeader documentation --- docs/en/UI/AspNetCore/Page-Header.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/en/UI/AspNetCore/Page-Header.md b/docs/en/UI/AspNetCore/Page-Header.md index 8b045c89ab..e8c045cf08 100644 --- a/docs/en/UI/AspNetCore/Page-Header.md +++ b/docs/en/UI/AspNetCore/Page-Header.md @@ -10,12 +10,12 @@ Page Title can be set as shown in the example below: -````csharp +```csharp @inject IPageLayout PageLayout @{ PageLayout.Content.Title = "Book List"; } -```` +``` * The Page Title is set to the HTML `title` tag (in addition to the [brand/application name](Branding.md)). * The theme may render the Page Title before the Page Content (not implemented by the Basic Theme). @@ -30,9 +30,9 @@ Breadcrumb items can be added to the `PageLayout.Content.BreadCrumb`. **Example: Add Language Management to the breadcrumb items.** -```` +``` PageLayout.Content.BreadCrumb.Add("Language Management"); -```` +``` The theme then renders the breadcrumb. An example render result can be: @@ -59,4 +59,4 @@ You can set the Menu Item name related to this page: PageLayout.Content.MenuItemName = "BookStore.Books"; ``` -Menu item name should match a unique menu item name defined using the [Navigation / Menu](Navigation-Menu.md) system. In this case, it is expected from the theme to make the menu item "active" in the main menu. \ No newline at end of file +Menu item name should match a unique menu item name defined using the [Navigation / Menu](Navigation-Menu.md) system. In this case, it is expected from the theme to make the menu item "active" in the main menu.