This commit is contained in:
5
ayanova/devdocs/changelog.txt
Normal file
5
ayanova/devdocs/changelog.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
a.72
|
||||
removed lodash dependency
|
||||
maybe fixed report double deletion error joyce found
|
||||
report direct view via url now correctly opens even if user it already logged into AyaNova
|
||||
http://localhost:8080/viewreport?oid=20&rid=1
|
||||
@@ -3,41 +3,7 @@
|
||||
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||
|
||||
|
||||
todo: Joyce issue report:
|
||||
can't delete second report template
|
||||
FYI - still getting same server log error when try to delete report templates - CAN NOT DELETE more than one report template per loaded instance of servers
|
||||
|
||||
1. via Administration -> Report Templates -> open a report template, select menu delete.
|
||||
2. First instance of selecting to delete since server was loaded - DOES delete.
|
||||
3. BUT if servers have been up since last deleted, when attempting to delete a second report template () will get the error message and rpot is not deleted.
|
||||
3.b only way to delete rpt template is to shut down servers, reload, then perform the above steps to delete. THEN have to shut down servers again, load again, then can delete third rpt. And so on. - CAN NOT DELETE more than one report template per loaded instance of servers
|
||||
|
||||
xo
|
||||
|
||||
2020-09-28 11:15:48.9309|ERROR|NotifyEventProcessor|Ops problem notification: "Server API internal error, see log for more details"=>System.InvalidOperationException: A second operation started on this context before a previous operation completed. This is usually caused by different threads using the same instance of DbContext. For more information on how to avoid threading issues with DbContext, see https://go.microsoft.com/fwlink/?linkid=2097913.
|
||||
at Microsoft.EntityFrameworkCore.Internal.ConcurrencyDetector.EnterCriticalSection()
|
||||
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(DbContext _, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
|
||||
at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
|
||||
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
|
||||
at AyaNova.Biz.ReportBiz.DeleteAsync(Int64 id) in C:\data\code\raven\server\AyaNova\biz\ReportBiz.cs:line 213
|
||||
at AyaNova.Api.Controllers.ReportController.DeleteReport(Int64 id) in C:\data\code\raven\server\AyaNova\Controllers\ReportController.cs:line 153
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Logged|12_1(ControllerActionInvoker invoker)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
|
||||
|
||||
|
||||
todo: duplicate renaming code just keeps adding -1 to the end in consecutive duplicates so you get name-1-1-1-1 Is this kosher?
|
||||
|
||||
todo: Direct report view URL doesn't work if already logged in due to code only being in login form
|
||||
need to hijack the router before navigation to intercept special urls
|
||||
https://test.helloayanova.com/widgets/499
|
||||
localhost:8080/viewreport?oid=20000&rid=9
|
||||
|
||||
todo: attachment control drag and drop should work on both file list and also attach side of things
|
||||
todo: wiki drag and drop image should automatically attach the image and do the linkup etc
|
||||
|
||||
@@ -656,7 +656,7 @@ export default {
|
||||
// RENDER REPORT DIRECTLY
|
||||
//
|
||||
//
|
||||
async renderReport(objectid, reportid) {
|
||||
async renderReport(objectid, reportid, redirectNotPopup) {
|
||||
let reportDataOptions = {
|
||||
ReportId: reportid,
|
||||
SelectedRowIds: [objectid],
|
||||
@@ -668,10 +668,15 @@ export default {
|
||||
throw new Error(res.error);
|
||||
} else {
|
||||
let reportUrl = window.$gz.api.reportDownloadUrl(res.data);
|
||||
if (window.open(reportUrl, "Report") == null) {
|
||||
throw new Error(
|
||||
"Problem displaying report in new window. Browser must allow pop-ups to view reports; check your browser setting"
|
||||
);
|
||||
if (redirectNotPopup) {
|
||||
//used for direct report open from direct report view url
|
||||
window.location.replace(reportUrl);
|
||||
} else {
|
||||
if (window.open(reportUrl, "Report") == null) {
|
||||
throw new Error(
|
||||
"Problem displaying report in new window. Browser must allow pop-ups to view reports; check your browser setting"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,9 +522,23 @@ export default new Router({
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "ay-common" */ "./views/ay-history.vue")
|
||||
},
|
||||
//SPECIAL ROUTES
|
||||
{
|
||||
//REPORT VIEW FROM URL
|
||||
path: "/viewreport",
|
||||
beforeEnter: (to, from, next) => {
|
||||
(async function() {
|
||||
//open report links have a query string /viewreport?oid=[objectid]&rid=[reportid]
|
||||
let objectId = parseInt(to.query.oid);
|
||||
let reportId = parseInt(to.query.rid);
|
||||
await window.$gz.api.renderReport(objectId, reportId, true);
|
||||
})();
|
||||
|
||||
next(false);
|
||||
}
|
||||
},
|
||||
|
||||
//TEST TEST TEST TEST TEST
|
||||
|
||||
{
|
||||
//NEW TEST GZ DATA TABLE
|
||||
path: "/widgets",
|
||||
|
||||
Reference in New Issue
Block a user