feat(saved): saved, shared, starred, scheduled and widget analyses, export, SQL handoff
Extension 1.4.0: saved analyses of every kind re-run as the viewer (fields they cannot analyze are dropped), owner-or-shared READ through core record locks with owner-only writes (and a database CHECK so a private row can never lose its read owner), personal stars, schedules that run as the owner and mail only recipients who could run the analysis themselves, CSV/XLSX export, the SQL Workbench handoff, an analysis dashboard widget, and an Analyses home built from standard widgets. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43c7571864
commit
d2c9871d98
42 files changed
+3786
-296
No files matched your search
@@ -351,4 +351,29 @@ public class DataAnalysisService
|
||||
return (new com.kingsrook.qbits.dataanalysis.watch.WatchSeries(security, configs.resolve(table), table)
|
||||
.preview(definition, com.kingsrook.qbits.dataanalysis.watch.WatchRecords.filter(resolved), now));
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
** Saved definitions drop selected fields using the same FULL access resolver.
|
||||
*******************************************************************************/
|
||||
public boolean isAvailableField(String table, String field)
|
||||
{
|
||||
try
|
||||
{
|
||||
if(field.contains("."))
|
||||
{
|
||||
String[] parts = field.split("\\.", 2);
|
||||
security.joinedField(parts[0], parts[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
security.field(table, field);
|
||||
}
|
||||
return (true);
|
||||
}
|
||||
catch(QException e)
|
||||
{
|
||||
return (false);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user